Python 为什么我的代码不工作(错误:str对象不可调用)

Python 为什么我的代码不工作(错误:str对象不可调用),python,Python,你有一项任务要解决(数学)。 -解决方案低于零的无TAK -没有包含小数位解决方案的任务 当循环第一次运行时,一切正常。但在第一个任务之后,它会发送以下错误: 文件“\Task Generator.py”,第43行,在 输入=输入() TypeError:“str”对象不可调用 用户输入有什么问题 我试图重组整个输入部分。但是整个代码都不起作用 随机导入 分数=0 #环路 循环=真 while loop==True: tasksolution=None #任务生成 badtask=True 当b

你有一项任务要解决(数学)。 -解决方案低于零的无TAK -没有包含小数位解决方案的任务

当循环第一次运行时,一切正常。但在第一个任务之后,它会发送以下错误:

文件“\Task Generator.py”,第43行,在 输入=输入() TypeError:“str”对象不可调用

用户输入有什么问题

我试图重组整个输入部分。但是整个代码都不起作用

随机导入
分数=0
#环路
循环=真
while loop==True:
tasksolution=None
#任务生成
badtask=True
当badtask==True时:
nums=列表(范围(1011))
ops=[“+”、“-”、“/”、“x”]
num1=str(随机选择(nums))
num2=str(随机选择(nums))
运算符=随机选择(ops)
task=str(num1+operator+num2)
#任务解决方案
def添加(x,y):
返回x+y
def减法(x,y):
返回x-y
def倍增(x,y):
返回x*y
def除法(x,y):
返回x/y
如果运算符==“+”:
tasksolution=round(加(int(num1),int(num2)),1)
elif运算符==“-”:
任务解决方案=四舍五入(减去(整数(num1),整数(num2)),1)
elif运算符==“x”:
tasksolution=round(乘法(int(num1),int(num2)),1)
elif运算符==“/”:
tasksolution=round(除法(int(num1),int(num2)),1)
如果tasksolution>=0且(tasksolution%2==0或tasksolution%3==0):
badtask=False
#用户输入
打印(“任务:+任务)
输入=输入()
#输入检查
如果str.isdigit(输入):
如果int(输入)=任务解决方案:
打印(“正确!”)
得分+1
elif not int(输入)=任务解决方案:
打印(“错误!”)
打印(“正确的解决方案:+str(任务解决方案))
打印(“您已解决”+str(分数)+“任务!”)
打破
其他:
打印(“出错:(”)
其他:
打印(“请输入一个数字!”)
打破

循环应在不中断的情况下运行,除非您输入了错误的解决方案。

您在不知不觉中覆盖了内置函数
input
。将该行更改为类似以下内容:

user_input = input()

…以及将来对该变量的所有引用。

您不小心用变量名隐藏了内置命令
input
。请非常小心如何命名变量,因为这样做非常简单。请将字符串重命名为输入以外的内容,如my_input。您已覆盖内置函数
input()
。请为变量使用不同的名称,如
my\u input
或其他名称。否则,您将重新定义内置的
input
函数。