大川1234 发表于 2020-5-17 18:04:21

一个问题

大佬们,快帮我改进一下我的代码为什么有这个错误

from random import*

i = int(input("你需要出几题?"))

while True:
    oneadd = str(randint(0, 1000))
    twoadd = str(randint(0, 1000))
    zs = int(oneadd + twoadd)
    wt = input(oneadd + "+" + twoadd + "等于几:")
    if wt == zs:
      print("对了")
    else :
      print("错了,正确答案是:" + int(zs))
    i-=1   

:File "C:/Users/DELL/AppData/Local/Programs/Python/Python39/出题.py", line 13, in <module>
    print("错了,正确答案是:" + int(zs))
TypeError: can only concatenate str (not "int") to str
很急,在线等

wp231957 发表于 2020-5-17 20:37:56

python对于不同数据类型,是不能执行+操作的
你这里str    int   这俩函数你用的是天马行空
我都看迷糊了

老八秘制 发表于 2020-5-17 21:00:03

本帖最后由 老八秘制 于 2020-5-17 21:16 编辑

不能对字符串和整型进行运算
没有退出循环语句
int和str比较……
帮你改改:
from random import *

num = int(input("你需要出几题?"))

while True:
    oneadd = randint(0, 1000)
    twoadd = randint(0, 1000)
    right_answer = int(oneadd + twoadd)
    usr_answer = int(input("%d+%d等于几:" % (oneadd, twoadd)))
    if usr_answer == right_answer:
      print("对了")
    else :
      print("错了,正确答案是:%d" % right_answer)
    num-=1
    if num == 0:
      break

页: [1]
查看完整版本: 一个问题