鱼C论坛

 找回密码
 立即注册
查看: 4754|回复: 51

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

[复制链接]
发表于 2023-3-9 21:43:55 | 显示全部楼层 |阅读模式
购买主题 已有 10 人购买  本主题需向作者支付 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 | 显示全部楼层
一次方程:
import random
score = 0
def chuti():
    global score
    a = random.randint(0, 100)
    x = random.randint(0, 100)
    yun = random.choice(["+", "-", "*"])
    b = eval(f"a{yun}x")
    ix = input(f"{a} {yun} x = {b}, x=")
    if ix == str(x):
        print("正确")
        score += 1
    else:
        print("错误,x =", x)
def main():
    print("-----欢迎使用算数练习-----")
    for i in range(10):
        chuti()
    print("你的分数是",  score, "分", sep="")
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

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

使用道具 举报

发表于 2023-3-9 22:17:43 | 显示全部楼层
魔鬼加强版(我就不信有人心算能得10分)
from random import randint
score = 0
def chuti():
    global score
    a = randint(-50, 50)/10
    b = randint(-50, 50)/10
    c = randint(-50, 50)/10
    x = randint(-50, 50)/10
    c = eval("0 - a * x ** 2 - b * x")
    ix = input(f"{a}x2+{b}x+{c}=0,x=")
    if ix == x:
        print("正确")
        score += 1
    else:
        print("错误, x=", x, sep="")
def main():
    print("-----欢迎使用算数练习-----")
    for i in range(10):
        chuti()
    print("你的分数是",  score, "分", sep="")
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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