python字符串表达式游戏
《Python核心编程》中第11章中一个示例:算术游戏(easyMath.py)
from operator import add, sub
from random import randint, choice
ops = {'+': add, '-': sub}
MAXTRIES = 2
def doprob():
op = choice('+-')
nums = [randint(1, 10) for i in range(2)]
nums.sort(reverse = True) # reverse nums by sorted
ans = ops[op](*nums) # calculate the right result
pr = '%d %s %d = ' % (nums[0], op, nums[1])
oops = 0 # record calculate times
while True:
try:
if int(input(pr)) == ans:
print('Correct!')
break
if oops == MAXTRIES:
print('answer\n%s%d' % (pr, ans))
else:
print('incorrect... try again')
oops += 1
except (KeyboardInterrupt, EOFError, ValueError):
print('invalid input... try again')
def main():
while True:
doprob()
try:
opt = input('Again? [y|n]').lower()
if opt and opt[0] == 'n':
break
except (KeyboardInterrupt, EOFError):
break
if __name__ == '__main__':
main()
浙公网安备 33010602011771号