首页 > 解决方案 > 我的 python 计算器返回异常

问题描述

每当我尝试运行它时,我都会遇到“只能将 str(而不是“float”)连接到 str 的异常。我已经尝试过除块之外的尝试,但它只是给了我一个不同的例外。

num1 = float(input("Please enter the first number: "))
operator = input("Please choose the operator (+) for addition, (-) for subtraction, (*) for multiplication, (/) for division: ")
num2 = float(input("Please enter the second number: "))
result = float()
while result == float():
        if operator == '+':
            result = float(num1 + num2)
            print("The result is " + float(result))
            print("All done.")
        elif operator == '-':
            result = float(num1 - num2)
            print("The result is " + float(result))
            print("All done.")
        elif operator == '*':
            result = float(num1 * num2)
            print("The result is " + float(result))
            print("All done.")
        elif operator == '/':
            if num2 == 0:
                print("You can't divide anything by 0.")
            else:
                result = float(num1 / num2)
                print("The result is " + float(result))
                print("All done.")

标签: pythonpython-3.x

解决方案


这里的问题是您试图将浮点值与字符串值连接起来。

为了修复此值,您应该执行以下操作:

if operator == '+':
        result = float(num1 + num2)
        print("The result is " + str(result))
        print("All done.")
    elif operator == '-':
        result = float(num1 - num2)
        print("The result is " + str(result))
        print("All done.")
    elif operator == '*':
        result = float(num1 * num2)
        print("The result is " + str(result))
        print("All done.")
    elif operator == '/':
        if num2 == 0:
            print("You can't divide anything by 0.")
        else:
            result = float(num1 / num2)
            print("The result is " + str(result))
            print("All done.")

推荐阅读