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

2024-10-01 00:29:58 发布

您现在位置:Python中文网/ 问答频道 /正文

你有一个任务要解决(数学)。 -没有低于零的解 -没有带小数位数的解决方案的任务

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

文件“.\任务”发电机.py“,第43行,in 输入=输入() TypeError:“str”对象不可调用

用户输入有什么问题?你知道吗

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

import random
score = 0

#Loop
loop = True
while loop == True:

    tasksolution = None

    #Task generation
    badtask = True
    while badtask == True:
        nums = list(range(1, 101))
        ops = ["+", "-", "/", "x"]
        num1 = str(random.choice(nums))
        num2 = str(random.choice(nums))
        operator = random.choice(ops)
        task = str(num1 + operator + num2)

        #Tasksolution
        def add(x, y):
           return x + y
        def subtract(x, y):
           return x - y
        def multiply(x, y):
           return x * y
        def divide(x, y):
           return x / y
        if operator == "+":
            tasksolution = round(add(int(num1), int(num2)), 1)
        elif operator == "-":
            tasksolution = round(subtract(int(num1), int(num2)), 1)
        elif operator == "x":
            tasksolution = round(multiply(int(num1), int(num2)), 1)
        elif operator == "/":
            tasksolution = round(divide(int(num1), int(num2)), 1)
        if tasksolution >= 0 and (tasksolution % 2 == 0 or tasksolution % 3 == 0):
            badtask = False

    #User input
    print("Task: " + task)
    input = input()


    #Input check
    if str.isdigit(input):
        if int(input) ==  tasksolution:
            print("Correct!")
            score + 1
        elif not int(input) == tasksolution:
            print("Wrong!")
            print("The correct solution: " + str(tasksolution))
            print("You´ve solved " + str(score) + " tasks!")
            break
        else:
            print("Something went wrong :(")
    else:
        print("Please enter a number!")
        break

循环应该在不中断的情况下运行,除非输入错误的解决方案。你知道吗


Tags: trueinputreturnifdefrandomoperatorint
1条回答
网友
1楼 · 发布于 2024-10-01 00:29:58

您不知不觉地重写了内置函数input。将该行更改为:

user_input = input()

。。。以及所有未来对该变量的引用。你知道吗

相关问题 更多 >