|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
本帖最后由 JasonChencCjj 于 2023-7-22 17:48 编辑
Python + easygui 制作四则运算出题器
这是eazygui版:
注意:easygui库要下载哦!
- import time
- import random
- import easygui as e
- countT = 0 #答对题的数量
- count = 0 #答了多少题
- symbolstr = ["+","-","×","÷"]#显示的符号
- questionsize = 3#生成多少道题----------------(可更改)
- close = False#是否点击关闭
- if e.msgbox("点击‘开始做题’开始计时","四则运算","开始做题") == None:
- close = True
- timestart = time.time()#开始计时
- while questionsize > 0:
- if close == True:
- break
- a = random.randint(1,9)#a数字的范围,生成数字a
- b = random.randint(1,9)#b数字的范围,生成数字b
- symbollist = [a + b, a - b, a * b, [a // b,a % b]] # 计算符号
- choice = random.randint(0,3)#随机选择一种符号
- #运算出结果
- if choice != 3:#如果不是除法
- result = symbollist[choice]
- if result < 0:#如果答案小于0,就再来一遍
- continue
- else:
- result = str(result)#一切正常生成答案
- else:#其他可能(是除法)
- result = symbollist[3][0]
- if a / b == result:#如果没有余数(普通除的答案等于地板除答案)
- result = str(result)
- else:#如果有余数
- result = "%d余%d" % (symbollist[3][0],symbollist[3][1])
- #判断对错
- inputresult = e.enterbox("%d%s%d%s" % (a, symbolstr[choice], b,"="),"四则运算")#输入答案
- if inputresult == result:#答对啦
- if e.msgbox("你答对了!") == None:
- close = True
- countT += 1
- elif inputresult == None:
- close = True
- break
- else:#答错啦,显示答案
- if e.msgbox(("结果貌似不太对!\n答案是:%s" % result),"四则运算") == None:
- close = True
- count += 1#做的题数量加一
- questionsize -= 1 #计数器减一
- timeend = time.time()#计时结束
- #答题汇总
- if close == False:
- e.msgbox("计算结束!\n \n答题结果汇总:共%d题,答对了%d道,正确率:%.1f%% \n 总共用时:%.2f秒,平均每题%.2f秒"
- % (count,countT,(countT/count*100),(timeend - timestart),(timeend - timestart)/count),"四则运算")
复制代码
我还准备了一个没有easygui的 纯python版,给没有easygui库的同学
- import time
- import random
- countT = 0 #答对题的数量
- count = 0 #答了多少题
- symbolstr = ["+","-","×","÷"]#显示的符号
- questionsize = 3#生成多少道题
- print("计时开始!")
- timestart = time.time()#开始计时
- while questionsize > 0:
- a = random.randint(1,9)#a数字的范围,生成数字a
- b = random.randint(1,9)#b数字的范围,生成数字b
- symbollist = [a + b, a - b, a * b, [a // b,a % b]] # 计算符号
- choice = random.randint(0,3)#随机选择一种符号
- #运算出结果
- if choice != 3:#如果不是除法
- result = symbollist[choice]
- if result < 0:#如果答案小于0,就再来一遍
- continue
- else:
- result = str(result)#一切正常生成答案
- else:#其他可能(是除法)
- result = symbollist[3][0]
- if a / b == result:#如果没有余数(普通除的答案等于地板除答案)
- result = str(result)
- else:#如果有余数
- result = "%d余%d" % (symbollist[3][0],symbollist[3][1])
- #判断对错
- inputresult = input("%d%s%d%s" % (a, symbolstr[choice], b,"="))#输入答案
- if inputresult == result:#答对啦
- print("你答对了!")
- countT += 1
- else:#答错啦,显示答案
- print("结果貌似不太对!")
- print("答案是:",result)
- count += 1#做的题数量加一
- questionsize -= 1 #计数器减一
- timeend = time.time()#计时结束
- print("计时结束!")
- #答题汇总
- print("答题结果汇总:共%d题,答对了%d道,正确率:%d%%" % (count,countT,countT/count*100))
- print(" 总共用时:%.2f秒,平均每题%.2f秒" % (timeend - timestart,(timeend - timestart)/count))
复制代码
新人,求 评分!
|
评分
-
查看全部评分
|