用Python實現一個簡單的算術游戲:
#!/usr/bin/env python
from operator import add, sub
from random import randint, choice
ops = {'+': add, '-':sub}
#定義一個字典
MAXTRIES = 2
def doprob():
op = choice('+-')
#用choice從'+-'中隨意選擇操作符
nums = [randint(1,10) for i in range(2)]
#用randint(1,10)隨機生成一個1到10的數,隨機兩次使用range(2)
nums.sort(reverse=True)
#按升序排序
ans = ops[op](*nums)
#利用函數
pr = '%d %s %d = ' % (nums[0], op, nums[1])
oops = 0
#oops用來計算failure測試,當三次時自動給出答案
while True:
try:
if int(raw_input(pr)) == ans:
print 'correct'
break
if oops == MAXTRIES:
print 'answer\n %s%d' % (pr, ans)
break
else:
print 'incorrect... try again'
oops += 1
except (KeyboardInterrupt, EOFError, ValueError):
print 'invalid ipnut... try again'
def main():
while True:
doprob()
try:
opt = raw_input('Again? [y]').lower()
if opt and opt[0] == 'n':
break
except (KeyboardInterrupt, EOFError):
break
if __name__ == '__main__':
main()