Python 输入验证



我有一个简单的输入验证代码,要求用户输入 ACT 或 SAT。

test=input("Are you taking SAT or ACT?..")
while test!=("SAT" or "ACT"):
    print("error")
    test=input("Are you taking SAT or ACT?..")

它似乎适用于第 2 行前面的"SAT",但不适用于 ACT!当我在模块中输入 ACT 时,它会打印"错误",就像它是假的一样。我的缺点是什么?逻辑?语法?语义?我能做些什么来修复它?

谢谢。

我认为这种说法是无效的:

test!=("SAT" or "ACT")

您可以使用

test != "SAT" and test != "ACT"

或者使用in运算符:

test=input("Are you taking SAT or ACT?..")
while test not in ("SAT", "ACT"):
    print("error")
    test=input("Are you taking SAT or ACT?..")
表达式

("SAT" or "ACT")的计算结果为"SAT",因为它基本上计算两个字符串上的OR操作。为了解决此问题,您可以执行以下操作:

while(1):
    test = input("Are you taking SAT or ACT")
    if test in ("SAT", "ACT"):
        break
    print("Error")

条件从test!=("SAT" or "ACT") test==("SAT" or "ACT")或者您可以使用Kshitij Saraogi解释的IN

相关内容

  • 没有找到相关文章

最新更新