JasonChencCjj 发表于 2023-7-22 12:51:25

python + easygui 制作四则运算出题器

本帖最后由 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 = ]# 计算符号


    choice = random.randint(0,3)#随机选择一种符号

    #运算出结果
    if choice != 3:#如果不是除法
      result = symbollist
      if result < 0:#如果答案小于0,就再来一遍
            continue
      else:
            result = str(result)#一切正常生成答案
    else:#其他可能(是除法)
      result = symbollist
      if a / b == result:#如果没有余数(普通除的答案等于地板除答案)
            result = str(result)
      else:#如果有余数
            result = "%d余%d" % (symbollist,symbollist)

    #判断对错
    inputresult = e.enterbox("%d%s%d%s" % (a, symbolstr, 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库的同学{:10_297:}

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 = ]# 计算符号


    choice = random.randint(0,3)#随机选择一种符号

    #运算出结果
    if choice != 3:#如果不是除法
      result = symbollist
      if result < 0:#如果答案小于0,就再来一遍
            continue
      else:
            result = str(result)#一切正常生成答案
    else:#其他可能(是除法)
      result = symbollist
      if a / b == result:#如果没有余数(普通除的答案等于地板除答案)
            result = str(result)
      else:#如果有余数
            result = "%d余%d" % (symbollist,symbollist)

    #判断对错
    inputresult = input("%d%s%d%s" % (a, symbolstr, 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))


新人,求评分!{:10_297:}





JasonChencCjj 发表于 2023-7-22 12:54:47

谢谢支持{:10_257:}

JasonChencCjj 发表于 2023-7-22 17:08:52

上去{:10_282:}

tommyyu 发表于 2023-7-22 17:15:11

这个帖子再小小的加一点格式和鱼币奖励就可以申请精华了{:10_256:}(参考https://fishc.com.cn/thread-229960-1-1.html)

JasonChencCjj 发表于 2023-7-22 17:46:54

tommyyu 发表于 2023-7-22 17:15
这个帖子再小小的加一点格式和鱼币奖励就可以申请精华了(参考https://fishc.com.cn/thread-2299 ...

哇!谢谢大佬支持!{:10_298:}

JasonChencCjj 发表于 2023-7-22 17:55:31

各位大佬多摇点人,等我有评分权限了给每个给我评分的人评分{:10_254:}

zhangjinxuan 发表于 2023-7-22 17:58:15

等一会儿,还差一点点就能评分了{:10_277:}

做得很棒,给我弟弟用很好{:10_256:}

JasonChencCjj 发表于 2023-7-22 17:58:30

zhangjinxuan 发表于 2023-7-22 17:58
等一会儿,还差一点点就能评分了

谢谢大佬

zhangjinxuan 发表于 2023-7-22 18:01:30

你知道吗,有个函数叫做 eval。

eval(表达式) 可以直接返回表达式的结果{:10_256:}


例如:eval("1+1") == 2
eval("") ==

JasonChencCjj 发表于 2023-7-22 18:04:55

zhangjinxuan 发表于 2023-7-22 18:01
你知道吗,有个函数叫做 eval。

eval(表达式) 可以直接返回表达式的结果


学习了!等我有权限给你评分
{:10_257:}
谢谢大佬!

zhangjinxuan 发表于 2023-7-22 18:05:32

JasonChencCjj 发表于 2023-7-22 18:04
学习了!等我有权限给你评分

谢谢大佬!

Python 这方面较深,需要多多学习才能了解其中的奥秘。

JasonChencCjj 发表于 2023-7-22 18:06:07

zhangjinxuan 发表于 2023-7-22 18:05
Python 这方面较深,需要多多学习才能了解其中的奥秘。

好的{:10_298:}

Fxcjcj 发表于 2023-7-24 18:51:46

加油
页: [1]
查看完整版本: python + easygui 制作四则运算出题器