Python 如何覆盖if语句中的函数?

Python 如何覆盖if语句中的函数?,python,function,if-statement,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

我是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上?当我查看其他计算器代码时,这让我感到困惑,我的代码看起来也一样

您的问题是使用或作为符号之一,但是
两边都需要一个布尔运算符

# change this
if op == "^" or "**":
# to this
if op == "^" or op == "**":
更好的方法是使用中的
操作符和潜在选项列表

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)

欢迎来到堆栈溢出!提问时,请确保包括您正在使用的输入以及预期的输出。您希望
op in('^','**')
,否则您的第一个
if
始终采用
True
分支。