from operator import add,sub
from random import randint,choice ops={'+':add,'-':sub} TRYTIMES=2 def dopbox(): op=choice('+-') nums=[randint(1,10) for i in range(2)] nums.sort(reverse=True) ans=ops[op](*nums) user_data='%d %s %d='%(nums[0],op,nums[1]) oops=0 while True: try: if int(input(user_data))==ans: // 3.x版本没有raw_input(),用input()代替 print ('correct') break if oops==TRYTIMES: print('answer\n%s%d'%(user_data,ans)) else: print('incorrect... try again') oops+=1 except (KeyboardInterrupt,EOFError,ValueError): print("invalid input...try again") def main(): while True: dopbox() try: opt=input('try again? [y]').lower() if opt and opt[0]=='n': break except: (KeyboardInterrupt,EOFError) break if __name__=='__main__': main()