Python 当条件为false时,为什么打印最后一个if语句

Python 当条件为false时,为什么打印最后一个if语句,python,Python,为什么当if语句为false时打印“Invalid Operator”?我可以使用elif语句使其工作吗 num1 = float(input("Enter the first number: ")) operator = input("Enter your operator here: ") num2 = float(input("Enter your second number here: ")) if operator ==

为什么当if语句为false时打印“Invalid Operator”?我可以使用elif语句使其工作吗

num1 = float(input("Enter the first number: "))
operator = input("Enter your operator here: ")
num2 = float(input("Enter your second number here: "))


if operator == "+":
    print(num1 + num2)

if operator == "-":
    print(num1 - num2)
if operator == "*":
    print(num1 * num2)
if operator == "/":
    print(num1 / num2)
if operator != ("+", "-", "*", "/"):
    print("Invalid Operator.")



您正在将
运算符
与元组进行比较。相反,您可以检查元组中是否有
运算符
,如下所示:

if operator not in ("+", "-", "*", "/"):
    print("Invalid Operator.")

您正在将
运算符
与元组进行比较。相反,您可以检查元组中是否有
运算符
,如下所示:

if operator not in ("+", "-", "*", "/"):
    print("Invalid Operator.")

另一种选择是
elif
s:

if operator == "+":
    print(num1 + num2)
elif operator == "-":
    print(num1 - num2)
elif operator == "*":
    print(num1 * num2)
elif operator == "/":
    print(num1 / num2)
else:
    print("Invalid Operator.")

这样,当您添加一个新的操作符时,您不需要修改不处于(…)状态的

替代方法是
elif
s:

if operator == "+":
    print(num1 + num2)
elif operator == "-":
    print(num1 - num2)
elif operator == "*":
    print(num1 * num2)
elif operator == "/":
    print(num1 / num2)
else:
    print("Invalid Operator.")

这样,当您添加一个新操作符时,您不需要修改
不在(…)
状态。

最后一个if语句不正确。现在它检查它是否等于整个元组。您可以检查操作员是否不在列表中

num1 = float(input("Enter the first number: "))
operator = input("Enter your operator here: ")
num2 = float(input("Enter your second number here: "))


if operator == "+":
    print(num1 + num2)
if operator == "-":
    print(num1 - num2)
if operator == "*":
    print(num1 * num2)
if operator == "/":
    print(num1 / num2)
if operator not in ("+", "-", "*", "/"):
    print("Invalid Operator.")
另一种选择是使用elif和else。如果它不是第一个for选项,那么in将是一个无效的运算符(else)


编辑:如果不在…
中,则将
从列表更改为元组。元组在这种情况下更有效。

最后一个if语句不正确。现在它检查它是否等于整个元组。您可以检查操作员是否不在列表中

num1 = float(input("Enter the first number: "))
operator = input("Enter your operator here: ")
num2 = float(input("Enter your second number here: "))


if operator == "+":
    print(num1 + num2)
if operator == "-":
    print(num1 - num2)
if operator == "*":
    print(num1 * num2)
if operator == "/":
    print(num1 / num2)
if operator not in ("+", "-", "*", "/"):
    print("Invalid Operator.")
另一种选择是使用elif和else。如果它不是第一个for选项,那么in将是一个无效的运算符(else)

编辑:如果不在…
中,则将
从列表更改为元组。在这种情况下,元组更有效

其中,
运算符
是一个字符串对象,其中as
(“+”、“-”、“*”、“/”)是一个元组,因此两者不相等,因此上述条件将导致
为真
,如果执行块
,则最后一个
。
可以使用if/elif/else语句,也可以像这样正确地更改最后一个条件

operator not in ("+", "-", "*", "/") # itemwise ckech takeplace 
operator not in "+-*/" # string is also a iterable object
其中,
运算符
是一个字符串对象,其中as
(“+”、“-”、“*”、“/”)是一个元组,因此两者不相等,因此上述条件将导致
为真
,如果执行块
,则最后一个
。
可以使用if/elif/else语句,也可以像这样正确地更改最后一个条件

operator not in ("+", "-", "*", "/") # itemwise ckech takeplace 
operator not in "+-*/" # string is also a iterable object

你觉得话务员怎么样(“+”、“-”、“*”、“/”
表示为什么?
运算符不等于该元组,这就是为什么。您可能打算在
中使用
而不是
=。(但是一个
if/elif/else
链在这里可能是最正常的。)最后一个条件可能是
if运算符不在'+-*/'中:
What
else
语句?试着用'not in'代替。你认为
运算符如何!=(“+”、“-”、“*”、“/”
表示为什么?
运算符不等于该元组,这就是为什么。您可能打算在
中使用
而不是
=。(但是,
if/elif/else
链在这里可能是最正常的。)最后一个条件可能是
if运算符不在'+-*/'中:
什么
else
语句?试着用'not in'代替。[]
中的
不是正确的方法。你的权利。我测试了这两种方法,使用tuble代替list的速度大约是前者的两倍。谢谢。[]
中的
不是正确的方法。你的权利。我测试了这两种方法,使用tuble代替list的速度大约是前者的两倍。谢谢