繁体   English   中英

Python输入验证?

[英]Python input validation?

我有一个简单的输入验证代码,要求用户输入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时,它将显示“错误”,就像它是错误的一样。 我的缺点是什么? 逻辑? 句法? 语义? 我该如何解决?

谢谢。

我认为此陈述无效:

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM