我是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上?这让我感到困惑,因为我查看了其他计算器代码,而我的代码看起来也一样。
答案 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)