用Python实现一个简单的算术游戏
来源:http://blog.csdn.net/buaa_shang/article/details/8315829
#!/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()