【问题标题】:While can't work in a form that Pycharm tell's my to simplify虽然不能以 Pycharm 告诉我要简化的形式工作
【发布时间】:2022-12-13 10:19:54
【问题描述】:

很多天前我就有这个问题,今天我有勇气在这个页面上问我的问题。 我做了一个奇怪的 while 语句,但它不起作用......我已经研究了几天,但我无法理解。

那是代码,我要求用户输入 1 到 5 之间的数字

num = int(input("Num? (1-5) : "))

while 1 > num > 5:
    num = int(input("Num? (1-5) : "))
print(f"El numero introduit: {num}")

理论上,如果 num 大于 5 或​​小于 1 while 语句开始,但我有这个结果......

Num? (1-5) : 7
El numero introduit: 7

但是如果我用这个...

num = int(input("Num? (1-5) : "))

while num < 1 or num > 5:
    num = int(input("Num? (1-5) : "))
print(f"El numero introduit: {num}")

我有我想要的...

Num? (1-5) : 7
Num? (1-5) :

当我将第二个代码放入 Pycharm 时,它告诉我可以用第一个代码的形式简化它,但它不起作用,但为什么???

这是因为第一个代码就像一个“和”,而第二个代码有“或”??

对不起,如果我打错了,我来自西班牙。

非常感谢你。

【问题讨论】:

  • 当您使用链接条件时,它们与 and 连接,而不是 or1 &gt; num and num &gt; 5 永远不可能是真的。

标签: python while-loop pycharm


【解决方案1】:

链式条件使用and组合条件,所以

while 1 > num > 5:

相当于

while 1 > num and num > 5:

这永远不可能是真的。

您可以通过使用条件跳出循环来简化代码。

while True:
    num = int(input("Num? (1-5) : "))
    if 1 <= num <= 5:
        break

【讨论】:

    猜你喜欢
    • 2015-04-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多