相关文章推荐
眉毛粗的电梯  ·  python ...·  1 月前    · 
想出国的拐杖  ·  python dataframe ...·  4 周前    · 
文武双全的自行车  ·  python ...·  2 周前    · 
销魂的香菜  ·  DefaultModelBindingMes ...·  7 月前    · 
# -*- coding: UTF-8 -*-
from operator import add, sub #从 operator 和 random 模块中,导入我们会用到的函数 from random import randint, choice ops = { '+' : add, '-' : sub} #定义全局变量 一个包含了运算符和与其相关联的函数的集合(字典) maxtaries = 3 #定义全局变量 用户有多少次机会尝试给出答案的整型变量 def doprob(): #定义此程序的核心程序 op = choice( '+-' ) #随机选择一个操作 nums = [randint( 1 , 10 ) for i in range ( 2 )] #随机生成两个操作数 nums.sort(reverse = True ) #为了避免减法问题中的负数问题,将这两个操作数按大到下进行排序 ans = ops[op]( * nums) #调用一个数学函数计算出正确的解 pr = '%d %s %d =' % (nums[ 0 ], op, nums[ 1 ]) #生成 提示用户计算的等式 oops = 1 #定义 用户尝试机会的计数器 while True : try : if int ( raw_input (pr)) = = ans: #判断 用户输入的答案和 正确答案比较 print 'correct' #输出提示信息 break #退出循环 if oops = = maxtaries: #当用户尝试次数等于用户最大尝试次数时 print 'answer\n%s%d' % (pr,ans) #将等式和 正确的答案输出 break else : #在其他情况下 print 'incorrect... try again' #输出提示信息 oops + = 1 #用户尝试机会的计数器加一 except (KeyboardInterrupt, EOFError, ValueError): #捕捉用户的错误输出 print 'invalid input... try again' #输出提示信息