当前位置: 首页 > 知识库问答 >
问题:

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

上官斌
2023-03-14

当if语句为假时,为什么“无效运算符”会打印?我可以使用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.")


共有3个答案

施敏达
2023-03-14

最后一个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 operator == "+":
    print(num1 + num2)
elif operator == "-":
    print(num1 - num2)
elif operator == "*":
    print(num1 * num2)
elif operator == "/":
    print(num1 / num2)
else:
    print("Invalid Operator.")

编辑:已更改如果不在 从列表到元组。在这种情况下,元组更有效。

张积厚
2023-03-14

替代方法是elifs:

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

有了这个,当您添加一个新的运算符时,您不需要修改不在(...)条件下的

卜季萌
2023-03-14

您正在将一个运算符编译成一个元组。相反,您可以检查元组中的运算符,如下所示:

if operator not in ("+", "-", "*", "/"):
    print("Invalid Operator.")
 类似资料:
  • 问题内容: 在Java中,我注意到有时在我的代码中,语句先显示在语句之前,尽管后者先出现在语句之前。为什么?我很好奇。 问题答案: 通常,它是缓冲的输出流,因此在将文本刷新到目标位置之前会对其进行累积。由于可以最大程度地减少必须进行的昂贵系统调用的次数,因此可以大大提高打印大量文本的应用程序的性能。但是,这意味着文本并不总是立即显示,并且可能比书写的要晚得多。 另一方面,通常不缓冲,因为需要立即打

  • 我这样问是因为我知道检查列表是否为空的python方法如下: 将打印,等等。因此,这导致我用真值识别;但是,如果我试图“直接”比较[]和False,我会得到以下结果: 等 这到底是怎么回事?我觉得我错过了一些非常明显的东西。

  • 所以我有这个代码,叫我白痴哈哈,但是我不能让它打印7。 代码: 我需要知道如何改变与函数中的参数同名的变量。 任何帮助都将不胜感激,如果你不明白这个问题,我很乐意解释更多。

  • 问题内容: 由于从未声明@A,因此sql server应该抛出错误,但是不会。这是为什么? 谢谢 问题答案: SQL Server没有块级变量作用域。 每批/存储的过程等 从MSDN(我的粗体) 变量的范围是可以引用该变量的Transact-SQL语句的范围。变量的范围从声明的点一直持续到声明它的 批处理 或 存储过程 的末尾。

  • 我对if/elif语句有这个烦人的问题。我是新手,抱歉愚蠢的问题。我试图找到一个修复,但没有人有它的Python。所以,如果两个条件都是True,我希望程序执行子句中的代码。据我所知,只有当两个条件都为True时,子句中的代码才会执行,对吗?不过,这在我的代码中似乎没有发生。 因此,和变量之前就已经设置好了。在这个游戏中,发生的是:用户选择偶数或奇数,并输入一个从0到5的数字。然后,计算机使用从0

  • 当Java if语句同时具有赋值和相等性检查