【问题标题】:The if statement isn't working correctly, and I don't know why [duplicate]if 语句不能正常工作,我不知道为什么 [重复]
【发布时间】:2023-02-03 20:41:53
【问题描述】:

if 语句不起作用!当我输入 4 时,即使这个 if 语句部分为假,第一部分也会被触发,因为数字是 4,而不是 1、3、5 或其他。

这是完整的代码:

number = input("Choose number between 0 and 20 (you can use 0 and 20, too) ")
int(number)

if number == 1 or 3 or 5 or 7 or 9 or 11 or 13 or 15 or 17 or 19:
    number = int(number) * 3 + 1
    print(number)
elif number == 0 or 2 or 4 or 6 or 8 or 10 or 12 or 14 or 16 or 18 or 20:
    number = int(number) / 2
    print(number)
else:
    print("Run Code Again")

【问题讨论】:

  • 例如,尝试使用 number in (1, 3, 5, 7, 9, 11, 13, 15, 17, 19)。或者更好,number % 2 == 1。您可能还想使用 // 而不是 /。第二行也没有做任何事情。 (嗯,它做了一些事情,但你把输出扔掉了。)

标签: python


【解决方案1】:

您的条件语句需要分开:

if number == 1 or number == 3 or number == 5, ... or number == 19:

使用模数检查奇数可能更容易:

if number % 2 == 1:

【讨论】:

    【解决方案2】:

    您滥用了“或”运算符。

    例如:

    print (1==2 or 3 or 5)
    

    给出 3,而不是 False。

    print (1==(2 or 3 or 5))
    

    会更接近你想要的,但这实际上只是评估为 1==2 并且即使 1 在 or 列表中,只要它不是第一个非零项,它仍然是错误的。

    【讨论】:

      【解决方案3】:

      是因为有条件

      3 or 5 or 7 or 9 or 11 or 13 or 15 or 17 or 19
      

      始终为真,因为您没有使用 number 进行检查。

      为了使其在逻辑上正确,您应该做的是将它们与您的 number 进行比较,就像 Martin 的回答一样。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2021-01-14
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-03-14
        • 2017-11-25
        • 1970-01-01
        相关资源
        最近更新 更多