2017-05-30 83 views
1

我沒有得到這個Python代碼所需的結果。需要幫忙。雖然循環測試

當您輸入滿足條件的字符串時,while循環應該停止。

代碼:

x = input("Enter input: ") 

while (int(x[3]) != 1 or int(x[3]) != 2): 
    print("The fourth character must be a 1 or 2") 
    x = input("Enter input again: ") 
+1

看起來''或'應該是'和'。 – Carcigenicate

+0

您輸入的任何數字總是不等於1或2,因此條件總是成功。 – alexis

回答

4

一個數量總是不等於1或2,您可能需要使用and:使用not in

x = input("Enter input: ") 

while int(x[3]) != 1 and int(x[3]) != 2: 
    print("The fourth character must be a 1 or 2") 
    x = input("Enter input again: ") 

是更具可讀性:

x = input("Enter input: ") 

while int(x[3]) not in (1, 2): 
    print("The fourth character must be a 1 or 2") 
    x = input("Enter input again: ") 

如果您想要更容錯的方式,請與字符串比較:

while True: 
    x = input("Enter input: ") 
    if x[3:4] in ('1', '2'): 
     break 
    print("The fourth character must be a 1 or 2.") 
+0

謝謝!你的解釋是有道理的 – user3323799