【问题标题】:while loop with two specific conditions [duplicate]具有两个特定条件的while循环[重复]
【发布时间】:2020-01-07 01:45:38
【问题描述】:

我有一个类似的代码:

list1 = input()

while list1 != "y" or list1 != "n":
  print()
  print("INVALID INPUT")
  print()
  list1 = input()

每当我运行它时,无论输入如何,我都会陷入循环。

如果我输入“y”或“n”,我希望循环结束。

【问题讨论】:

  • 将 or 更改为 and
  • 检查有效答案的更好方法是list1 not in "yn"list1 not in ("y","n")。后一个表达式允许与多字符串进行比较。
  • 这种问题可以通过缩短你的代码(例如条件)来调试,直到不会出错为止。

标签: python


【解决方案1】:

不管list1是什么,它不能同时是“y”和“n”,所以它总是不是其中之一。我认为您的意思是“和”而不是“或”。

【讨论】:

    【解决方案2】:

    一个变量不能有 2 个值,因此拥有 while list1 != "y" or list1 != "n" 是一个无限循环,因为 list1 肯定会与其中至少一个不同。

    你想要的是while list1 != "y" **and** list1 != "n"。这样,对于任何不是yn 的值,循环都会继续。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-05-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-07-06
      • 1970-01-01
      相关资源
      最近更新 更多