開発環境
- 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 コメント:
コメントを投稿