名称错误:名称“”未使用多个define函数定义

2024-03-29 08:03:24 发布

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

我只想说我知道这个代码是错误的,我只是在测试

这是一个计算器,正如你可以看到的代码,我正在努力使他们的数字结束,例如。 10+10=20,他们会保留数字20,并且可以继续使用20,我想继续重复这个选项

代码:

def add(num1, num2):
    return num1 + num2

def mul(num1, num2):
    return num1 * num2

def sub(num1, num2):
    return num1 - num2

def div(num1, num2):
    return num1 / num2

def main():
    operation = input("Do you want to(+,-,*,/):  ")
    if(operation != "+" and operation != "-" and operation != "*" and operation != "/"):
        print("That is an invalid operation")
    else:
        num1 = float(input("choose a number:  "))
        num2 = float(input("Choose another number:  "))
        if(operation == "+"):
            answer = (add(num1, num2))
            print(answer)
        elif(operation == "-"):
            answer = (sub(num1, num2))
            print(answer)
        elif(operation == "*"):
            answer = (mul(num1, num2))
            print(answer)
        elif(operation == "/"):
            answer = (div(num1, num2))
            print(answer)
        else:
            print("Syntax error!")
        def multiple(multiple):
             multiple =  input("would you like to carry the number(Y or N):  ")
            if(multiple == "Y" or multiple == "y"):
                carry = input("(+,-,*,/):  ")
                num3 = int(input("choose a number:  "))
                if(carry == "+"):
                    print(answer + num3)
                elif(carry == "-"):
                    print(answer - num3)
                elif(carry == "*"):
                    print(answer * num3)
                elif(carry == "/"):
                    print(answer / num3)
                else:
                    print("Syntax Error!")
    multiple = True
    while multiple == True:
        multiple()

choice = input("would you like multiple calculations? (Y or N):  ")
while(choice == "y" or choice == "Y"):
    main()
    multiple()
multiple()
main()

error message:

line 56, in <module>
    multiple()
NameError: name 'multiple' is not defined

注:这可能有一些压痕错误,因为它粘贴奇怪


Tags: oranswernumberinputreturnifdefmultiple
2条回答

我对你的代码进行了一点优化并修复了它。它工作得很好,所以看看它。在

def add(num1, num2):
    return num1 + num2

def mul(num1, num2):
    return num1 * num2

def sub(num1, num2):
    return num1 - num2

def div(num1, num2):
    return num1 / num2

def main(carry):
    operation = input("Do you want to (+,-,*,/): ")
    if(operation != "+" and operation != "-" and operation != "*" and operation != "/"):
        print("That is an invalid operation")
    else:
        num1 = float(input("choose a number: "))
        if carry == None:
            num2 = float(input("Choose another number: "))
        else:
            num2 = carry
        if(operation == "+"):
            answer = add(num1, num2)
        elif(operation == "-"):
            answer = sub(num1, num2)
        elif(operation == "*"):
            answer = mul(num1, num2)
        elif(operation == "/"):
            answer = div(num1, num2)
        print(answer)
        return answer

if input("would you like multiple calculations? (Y or N): ") in ("y", "Y"):
    domultiple = True
else:
    domultiple = False

carry = None
while 1:
    carry = main(carry)
    if domultiple:
        if input("would you like to carry the number (Y or N): ") in ("n", "N"):
            break
    else:
        break

您试图在main函数的作用域之外调用函数multiple,而它只在函数中定义。假设您的缩进如这里所示,您需要将multiple的定义移到main之外,以便调用它。在

另外,您定义了一个名为multiple的变量,这可能会产生一些问题。你应该换成别的。在

相关问题 更多 >