鱼C论坛

 找回密码
 立即注册
查看: 1147|回复: 40

[原创] 使用python制作的出题器

[复制链接]
发表于 2023-3-9 21:43:55 | 显示全部楼层 |阅读模式
购买主题 已有 9 人购买  本主题需向作者支付 2 鱼币 才能浏览
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2023-3-9 21:50:11 | 显示全部楼层
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-3-9 21:53:15 | 显示全部楼层
还不是我帮你改的…等会儿帮你改个更简便的

叫人啦@KeyError @学习编程中的Ben @wyhpylc @额外减小 @zhangjinxuan

评分

参与人数 1鱼币 +5 收起 理由
一点沙 + 5 谢谢叫人

查看全部评分

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2023-3-9 21:54:39 | 显示全部楼层
歌者文明清理员 发表于 2023-3-9 21:53
还不是我帮你改的…等会儿帮你改个更简便的

透露:其实你该的时候我已经想好方案了,只不过看你的代码量少才用的
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-3-9 21:55:31 | 显示全部楼层
一点沙 发表于 2023-3-9 21:54
透露:其实你该的时候我已经想好方案了,只不过看你的代码量少才用的

没事我等会儿继续改你代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2023-3-9 21:56:08 | 显示全部楼层
歌者文明清理员 发表于 2023-3-9 21:55
没事我等会儿继续改你代码

没等会儿了,我9分钟后就去睡觉了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-3-9 22:01:21 | 显示全部楼层
一次方程:
  1. import random
  2. score = 0
  3. def chuti():
  4.     global score
  5.     a = random.randint(0, 100)
  6.     x = random.randint(0, 100)
  7.     yun = random.choice(["+", "-", "*"])
  8.     b = eval(f"a{yun}x")
  9.     ix = input(f"{a} {yun} x = {b}, x=")
  10.     if ix == str(x):
  11.         print("正确")
  12.         score += 1
  13.     else:
  14.         print("错误,x =", x)
  15. def main():
  16.     print("-----欢迎使用算数练习-----")
  17.     for i in range(10):
  18.         chuti()
  19.     print("你的分数是",  score, "分", sep="")
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2023-3-9 22:02:37 | 显示全部楼层

牛,我只会解方程,都不知道方程还能这么用
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-3-9 22:17:43 | 显示全部楼层
魔鬼加强版(我就不信有人心算能得10分)
  1. from random import randint
  2. score = 0
  3. def chuti():
  4.     global score
  5.     a = randint(-50, 50)/10
  6.     b = randint(-50, 50)/10
  7.     c = randint(-50, 50)/10
  8.     x = randint(-50, 50)/10
  9.     c = eval("0 - a * x ** 2 - b * x")
  10.     ix = input(f"{a}x2+{b}x+{c}=0,x=")
  11.     if ix == x:
  12.         print("正确")
  13.         score += 1
  14.     else:
  15.         print("错误, x=", x, sep="")
  16. def main():
  17.     print("-----欢迎使用算数练习-----")
  18.     for i in range(10):
  19.         chuti()
  20.     print("你的分数是",  score, "分", sep="")
复制代码

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-3-9 22:52:44 | 显示全部楼层
本帖最后由 歌者文明清理员 于 2023-3-9 23:01 编辑
  1. import random as r
  2. time = int(input("请输入题目数量(单位:道)"))
  3. scope_1 = int(input("请输入起始范围:"))
  4. scope_2 = int(input("请输入截止范围:"))
  5. score = time
  6. print("温馨提示:因除法运算采用地板除除法防止小数,所以请在运算时省略余数!")
  7. for i in range(time):
  8.     a = str(r.randint(scope_1,scope_2))
  9.     b = r.choice('+-×÷')
  10.     c = str(r.randint(scope_1,scope_2))
  11.     if b == "÷":
  12.         if a < c:
  13.             a = str(r.randint(int(c),scope_2))
  14.     if b == "-":
  15.         if a < c:
  16.             a = str(r.randint(int(c),scope_2))
  17.     d = a + b + c
  18.     e = input(d + "=")
  19.     if int(e) != eval(d.replace('×', '*').replace('÷', '//')):
  20.         print("填写错误,扣一分!")
  21.         score -= 1
  22.     else:
  23.         print("答对了!")
复制代码

改动:
1. 可以让程序自己识别语句并计算,用eval
2. 删除了else:pass
3. 随机运算符用了字符串

改编指南:
情况一 人类运算符与机器运算符一样(比如加减)
    直接在r.choice里加就行了
情况二 不一样(比如乘除)
    step01 在r.choice里加上运算符
    step02 在if eval(d 注意不在eval函数外面!后面加上.replace(人类运算符, 机器运算符)
ps
    1 人类运算符指+-×÷
    2 机器运算符是+-*/
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-3-10 06:58:00 From FishC Mobile | 显示全部楼层
6666
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2023-3-10 07:20:20 From FishC Mobile | 显示全部楼层
毫不犹豫 买了~
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2023-3-10 07:22:36 | 显示全部楼层
KeyError 发表于 2023-3-9 22:17
魔鬼加强版(我就不信有人心算能得10分)

真有意思
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-3-10 07:28:00 From FishC Mobile | 显示全部楼层
歌者文明清理员 发表于 2023-3-9 22:52
改动:
1. 可以让程序自己识别语句并计算,用eval
2. 删除了else:pass

打人类运算符也许更麻烦一点,毕竟键盘 ..
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-3-10 07:29:49 From FishC Mobile | 显示全部楼层
KeyError 发表于 2023-3-9 22:17
魔鬼加强版(我就不信有人心算能得10分)

小学看了惊讶,初三看了沉默,高三看了直呼我***
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-3-10 07:32:59 From FishC Mobile | 显示全部楼层
我有一个关于除法的解决办法:
1. 随机出商,也就是先确定结果
2. 确定除数,但这里的上限是要计算才能的出来
3. 商x除数=被除数
对于怎么才能让被除数在范围以内,我就不说了,需要在确定除数这一块下功夫
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2023-3-10 07:39:42 | 显示全部楼层
zhangjinxuan 发表于 2023-3-10 07:32
我有一个关于除法的解决办法:
1. 随机出商,也就是先确定结果
2. 确定除数,但这里的上限是要计算才能的 ...

回头我有空去试一下
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-3-10 08:20:34 | 显示全部楼层
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2023-3-10 08:48:19 | 显示全部楼层
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2023-3-10 15:51:07 | 显示全部楼层
嫖了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-4-20 16:34

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表