一点沙 发表于 2023-3-8 21:43:17

我这个程序为什么会报错

写了半个多小时程序,可一运行一片红,傻了{:10_266:} {:10_266:}

歌者文明清理员 发表于 2023-3-8 21:46:50

呃代码放上来ok?

dolly_yos2 发表于 2023-3-9 09:01:41

出了错就看看报错信息,别光顾着傻,看了没准就能解决问题了
b 里存储的是什么?int(b) 怎么操作?

wiselin 发表于 2023-3-9 09:38:44

报错信息显示你的问题在那个“+”号里

一点沙 发表于 2023-3-9 20:25:08

歌者文明清理员 发表于 2023-3-8 21:46
呃代码放上来ok?

好的import random as r
time = int(input("请输入题目数量(单位:道)"))
scope_1 = int(input("请输入起始范围:"))
scope_2 = int(input("请输入截止范围:"))
score = time
print("温馨提示:因除法运算采用地板除除法防止小数,所以请在运算时省略余数!")
for i in range(time):
    operator = ["+","-","×","÷"]
    a = str(r.randint(scope_1,scope_2))
    b = r.choice(operator)
    c = str(r.randint(scope_1,scope_2))
    if b == "÷":
      if a < b:
            del a
            a = str(r.randint(b,scope_2))
      else:
            pass
    if b == "-":
      if a < b:
            del a
            a = str(r.randint(b,scope_2))
      else:
            pass
    d = a + b + c
    e = input(d + "=")
    if b == "+":
      if int(e) != int(a) + int(b):
            print("填写错误,扣一分!")
            score -= 1
    if b == "-":
      if int(e) != int(a) - int(b):
            print("填写错误,扣一分!")
            score -= 1
    if b == "×":
      if int(e) != int(a) * int(b):
            print("填写错误,扣一分!")
            score -= 1
    if b == "÷":
      if int(e) != int(a) // int(b):
            print("填写错误,扣一分!")
            score -= 1
print(f"题目已结束,你的得分为{score}。")

一点沙 发表于 2023-3-9 20:25:48

wiselin 发表于 2023-3-9 09:38
报错信息显示你的问题在那个“+”号里

没有啦,其实是除号

歌者文明清理员 发表于 2023-3-9 20:27:32

一点沙 发表于 2023-3-9 20:25
好的

b是运算符不是第二个运算数

一点沙 发表于 2023-3-9 20:28:30

dolly_yos2 发表于 2023-3-9 09:01
出了错就看看报错信息,别光顾着傻,看了没准就能解决问题了
b 里存储的是什么?int(b) 怎么操作?

b里存的是运算符
所以意思是说我要把int(b)换成int(c)?

一点沙 发表于 2023-3-9 20:29:21

歌者文明清理员 发表于 2023-3-9 20:27
b是运算符不是第二个运算数

哦,懂了,晚上太赶敲错了,谢{:10_254:}

歌者文明清理员 发表于 2023-3-9 20:34:52

本帖最后由 歌者文明清理员 于 2023-3-9 21:01 编辑

一点沙 发表于 2023-3-9 20:29
哦,懂了,晚上太赶敲错了,谢

还会报错,我研究研究
研究完毕,又改了改你的代码,结果如下
import random as r
time = int(input("请输入题目数量(单位:道)"))
scope_1 = int(input("请输入起始范围:"))
scope_2 = int(input("请输入截止范围:"))
score = time
print("温馨提示:因除法运算采用地板除除法防止小数,所以请在运算时省略余数!")
for i in range(time):
    operator = ["+","-","×","÷"]
    a = str(r.randint(scope_1,scope_2))
    b = r.choice(operator)
    c = str(r.randint(scope_1,scope_2))
    if b == "÷":
      if a < c:
            del a
            a = str(r.randint(int(c),scope_2))
      else:
            pass
    if b == "-":
      if a < c:
            del a
            a = str(r.randint(int(c),scope_2))
      else:
            pass
    d = a + b + c
    e = input(d + "=")
    if b == "+":
      if int(e) != int(a) + int(c):
            print("填写错误,扣一分!")
            score -= 1
    if b == "-":
      if int(e) != int(a) - int(c):
            print("填写错误,扣一分!")
            score -= 1
    if b == "×":
      if int(e) != int(a) * int(c):
            print("填写错误,扣一分!")
            score -= 1
    if b == "÷":
      if int(e) != int(a) // int(c):
            print("填写错误,扣一分!")
            score -= 1
print(f"题目已结束,你的得分为{score}。")
@一点沙

一点沙 发表于 2023-3-9 20:49:40

歌者文明清理员 发表于 2023-3-9 20:34
还会报错,我研究研究
研究完毕,又改了改你的代码,结果如下



谢谢{:10_254:}

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

一点沙 发表于 2023-3-9 20:49
谢谢

确实错了,我改改

一点沙 发表于 2023-3-9 21:12:35

歌者文明清理员 发表于 2023-3-9 21:01
确实错了,我改改

页: [1]
查看完整版本: 我这个程序为什么会报错