簡體   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