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()