開発環境
- OS X Mavericks - Apple(OS)
- Emacs (CUI)、BBEdit - Bare Bones Software, Inc. (GUI) (Text Editor)
- Python 3.4 (プログラミング言語)
Head First C ―頭とからだで覚えるCの基本(David Griffiths (著)、Dawn Griffiths (著) 中田 秀基(監訳)(翻訳)、木下 哲也 (翻訳)、オライリージャパン)の10章(プロセス間通信: お話は楽しい)、長いエクササイズ(p.460)をpythonで考えてみる。
長いエクササイズ(p.460)
コード(BBEdit, Emacs)
news_opener.py
#!/usr/bin/env python3
#-*- coding: utf-8 -*-
import os
import sys
import signal
import random
import re
score = 0
def end_game(sig, stack_frame):
print("\n最終得点:{0}".format(score))
sys.exit(0)
def times_up(sig, stack_frame):
print("\n時間切れ!")
os.kill(os.getpid(), signal.SIGINT)
def error(msg):
printf("{0}: {1}".format(msg, err))
sys.exit(1)
signal.signal(signal.SIGALRM, times_up)
signal.signal(signal.SIGINT, end_game)
while True:
a = random.randint(0, 10)
b = random.randint(0, 10)
signal.alarm(5)
answer = input('\n{0}かける{1}はいくつですか? '.format(a, b))
if re.match(r'^\d+$', answer):
answer = int(answer)
if answer == a * b:
score += 1
else:
print('\n間違いです!得点:{0}'.format(score))
入出力結果(Terminal, IPython)
$ ./sample460.py 6かける1はいくつですか? 6 5かける6はいくつですか? 30 6かける1はいくつですか? 6 10かける5はいくつですか? 50 5かける2はいくつですか? 10 6かける2はいくつですか? 時間切れ! 最終得点:5 $ ./sample460.py 0かける2はいくつですか? 10 間違いです!得点:0 0かける8はいくつですか? C-c C-c 最終得点:0 $
0 コメント:
コメントを投稿