1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 | #!/usr/bin/env python 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 ) ans = ops[op]( * nums) pr = '%d %s %s = ' % (nums[ 0 ], op, nums[ 1 ]) oops = 0 while True : try : if int ( raw_input (pr)) = = ans: ##只有正确作答才跳出循环 print 'correct' break if oops = = MAXTRIES: ##第二次给出正确答案,但是依然是这道题目 print 'sorry... the answer is\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 = raw_input ( 'Again? [y] ' ).lower() if opt and opt[ 0 ] = = 'n' : break except (KeyboardInterrupt, EOFError): break if __name__ = = '__main__' : main() |
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步