如何在if语句中覆盖函数?

时间:2019-04-21 00:50:36

标签: python function if-statement

我是Python的新手,我只是尝试创建一个简单的计算器,由于某种原因,函数不会被覆盖。无论我输入什么运算符,结果都将保持在3125。

我尝试使用百分比符号,但是它仍然停留在一个输出上。

num1 = float(input("First Number: "))
op = input("Operator: ")
num2 = float(input("Second Number: "))

if op == "^" or "**":
    result = float(num1) ** float(num2)
    print("Result: %s" % result)
elif op == "/"or "÷":
    result = float(num1) / float(num2)
    print("Result: %s" % result)
elif op == "x" or "*" or ".":
    result = float(num1) * float(num2)
    print("Result: %s" % result)
elif op == "+":
    result = float(num1) + float(num2)
    print("Result: %s" % result)
elif op == "-":
    result = float(num1) - float(num2)
    print("Result: %s" % result)

为什么它卡住了,为什么在3125上?这让我感到困惑,因为我查看了其他计算器代码,而我的代码看起来也一样。

1 个答案:

答案 0 :(得分:1)

您的问题是您正在使用或作为符号,但是or的每一侧都需要一个布尔运算符。

# change this
if op == "^" or "**":
# to this
if op == "^" or op == "**":

更好的方法是将in运算符与可能的选项结合使用。

if op in ['^', '**']:

如下更新代码,您应该一切顺利!我还删除了多余的线。因此,如果您想稍后进行更新,则只需更新一次,而不是5次。

if op in ["^" , "**"]:
    result = float(num1) ** float(num2)
elif op in ["/", "÷"]:
    result = float(num1) / float(num2)
elif op in ["x" , "*" , "."]:
    result = float(num1) * float(num2)
elif op in ["+"]:
    result = float(num1) + float(num2)
elif op in ["-"]:
    result = float(num1) - float(num2)

print("Result: %s" % result)