一点沙 发表于 2023-3-9 21:43:55

已有 10 人购买  本主题需向作者支付 2 鱼币 才能浏览 购买主题

一点沙 发表于 2023-3-9 21:50:11

@sfqxx @歌者文明清理员 @liuhongrun2022 来看看

歌者文明清理员 发表于 2023-3-9 21:53:15

还不是我帮你改的…等会儿帮你改个更简便的

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

一点沙 发表于 2023-3-9 21:54:39

歌者文明清理员 发表于 2023-3-9 21:53
还不是我帮你改的…等会儿帮你改个更简便的

透露:其实你该的时候我已经想好方案了,只不过看你的代码量少才用的{:10_279:}

歌者文明清理员 发表于 2023-3-9 21:55:31

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

没事我等会儿继续改你代码

一点沙 发表于 2023-3-9 21:56:08

歌者文明清理员 发表于 2023-3-9 21:55
没事我等会儿继续改你代码

没等会儿了,我9分钟后就去睡觉了

KeyError 发表于 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="")

一点沙 发表于 2023-3-9 22:02:37

KeyError 发表于 2023-3-9 22:01
一次方程:

牛,我只会解方程,都不知道方程还能这么用

KeyError 发表于 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="")

歌者文明清理员 发表于 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 机器运算符是+-*/

sfqxx 发表于 2023-3-10 06:58:00

6666

myd0313 发表于 2023-3-10 07:20:20

毫不犹豫 买了~

一点沙 发表于 2023-3-10 07:22:36

KeyError 发表于 2023-3-9 22:17
魔鬼加强版(我就不信有人心算能得10分)

真有意思

zhangjinxuan 发表于 2023-3-10 07:28:00

歌者文明清理员 发表于 2023-3-9 22:52
改动:
1. 可以让程序自己识别语句并计算,用eval
2. 删除了else:pass


打人类运算符也许更麻烦一点,毕竟键盘 ..

zhangjinxuan 发表于 2023-3-10 07:29:49

KeyError 发表于 2023-3-9 22:17
魔鬼加强版(我就不信有人心算能得10分)

小学看了惊讶,初三看了沉默,高三看了直呼我***

zhangjinxuan 发表于 2023-3-10 07:32:59

我有一个关于除法的解决办法:
1. 随机出商,也就是先确定结果
2. 确定除数,但这里的上限是要计算才能的出来
3. 商x除数=被除数
对于怎么才能让被除数在范围以内,我就不说了,需要在确定除数这一块下功夫

一点沙 发表于 2023-3-10 07:39:42

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

回头我有空去试一下

tsElim 发表于 2023-3-10 08:20:34

{:5_108:}

in_eden 发表于 2023-3-10 08:48:19

{:5_109:}

Dracis 发表于 2023-3-10 15:51:07

嫖了
页: [1] 2 3
查看完整版本: 使用python制作的出题器