開発環境
- macOS High Sierra - Apple
- Emacs (Text Editor)
- Python 3.6 (プログラミング言語)
Pythonからはじめる数学入門 (Amit Saha (著)、黒川 利明 (翻訳)、オライリージャパン)の5章(集合と確率を操作する)、5.4(プログラミングチャレンジ)、問題5-3(お金がなくなるまで何回硬貨を投げられるか)を取り組んでみる。
コード(Emacs)
Python 3
#!/usr/bin/env python3
import random
import sys
def f(amount):
count = 0
while amount > 0:
count += 1
if random.randrange(2) == 0:
amount += 1
print(f'Head! Current amount: {amount}')
else:
amount -= 1.5
print(f'Tails! Current amount: {amount}')
return amount, count
if __name__ == '__main__':
while True:
while True:
amount = input('Enter your starting amount: ')
if amount == 'q':
sys.exit(0)
try:
amount = int(amount)
except Exception as err:
print(type(err), err)
else:
break
amount, count = f(amount)
print(f'Game over :( Current amount: {amount}. Coin tosses: {count}')
入出力結果(Terminal, Jupyter(IPython))
$ ./sample3.py Enter your starting amount: a <class 'ValueError'> invalid literal for int() with base 10: 'a' Enter your starting amount: 10 Tails! Current amount: 8.5 Tails! Current amount: 7.0 Head! Current amount: 8.0 Head! Current amount: 9.0 Tails! Current amount: 7.5 Tails! Current amount: 6.0 Tails! Current amount: 4.5 Head! Current amount: 5.5 Tails! Current amount: 4.0 Tails! Current amount: 2.5 Head! Current amount: 3.5 Tails! Current amount: 2.0 Tails! Current amount: 0.5 Head! Current amount: 1.5 Tails! Current amount: 0.0 Game over :( Current amount: 0.0. Coin tosses: 15 Enter your starting amount: 10 Head! Current amount: 11 Head! Current amount: 12 Head! Current amount: 13 Head! Current amount: 14 Head! Current amount: 15 Tails! Current amount: 13.5 Head! Current amount: 14.5 Tails! Current amount: 13.0 Tails! Current amount: 11.5 Tails! Current amount: 10.0 Head! Current amount: 11.0 Head! Current amount: 12.0 Head! Current amount: 13.0 Tails! Current amount: 11.5 Tails! Current amount: 10.0 Tails! Current amount: 8.5 Head! Current amount: 9.5 Tails! Current amount: 8.0 Tails! Current amount: 6.5 Tails! Current amount: 5.0 Head! Current amount: 6.0 Tails! Current amount: 4.5 Head! Current amount: 5.5 Tails! Current amount: 4.0 Head! Current amount: 5.0 Tails! Current amount: 3.5 Tails! Current amount: 2.0 Tails! Current amount: 0.5 Head! Current amount: 1.5 Head! Current amount: 2.5 Head! Current amount: 3.5 Head! Current amount: 4.5 Head! Current amount: 5.5 Head! Current amount: 6.5 Head! Current amount: 7.5 Tails! Current amount: 6.0 Head! Current amount: 7.0 Head! Current amount: 8.0 Head! Current amount: 9.0 Head! Current amount: 10.0 Head! Current amount: 11.0 Tails! Current amount: 9.5 Head! Current amount: 10.5 Tails! Current amount: 9.0 Tails! Current amount: 7.5 Head! Current amount: 8.5 Tails! Current amount: 7.0 Tails! Current amount: 5.5 Head! Current amount: 6.5 Head! Current amount: 7.5 Tails! Current amount: 6.0 Tails! Current amount: 4.5 Head! Current amount: 5.5 Tails! Current amount: 4.0 Tails! Current amount: 2.5 Tails! Current amount: 1.0 Head! Current amount: 2.0 Tails! Current amount: 0.5 Tails! Current amount: -1.0 Game over :( Current amount: -1.0. Coin tosses: 59 Enter your starting amount: 5 Tails! Current amount: 3.5 Tails! Current amount: 2.0 Head! Current amount: 3.0 Tails! Current amount: 1.5 Head! Current amount: 2.5 Tails! Current amount: 1.0 Tails! Current amount: -0.5 Game over :( Current amount: -0.5. Coin tosses: 7 Enter your starting amount: -10 Game over :( Current amount: -10. Coin tosses: 0 Enter your starting amount: 0 Game over :( Current amount: 0. Coin tosses: 0 Enter your starting amount: q $
0 コメント:
コメントを投稿