簡體   English   中英

While循環條件中的變量應退出循環,但不退出

[英]Variable in While Loop condition should exit loop, but doesn't

我不知道為什么這個while循環無法正常工作。

bday = input("Has your birthday already passed? (y|n) : ")

print(bday)

while True:
    if (bday != 'y' or bday != 'Y' or bday != 'n' or bday != 'N'):
        print("Invalid input, please enter Y or N.")
        print(bday)
        bday = input("Has your birthday already passed? (y|n) : ")
    else:
        break

根據我的打印聲明,我的“ bday”值正確地視為“ y”,“ Y”,“ n”或“ N”。 但是,由於某種原因,條件的作用好像是錯誤的值。

最初編碼為:

while (bday != 'y' or bday != 'Y' or bday != 'n' or bday != 'N'):
   print("Invalid input, please enter Y or N.")
   print(bday)
   bday = input("Has your birthday already passed? (y|n) : ")

謝謝你的幫助。

您的if陳述式必須為and not or 雖然我建議使用not inlist並將其檢查到bday.lower()

bday = input("Has your birthday already passed? (y|n) : ")

print(bday)

while True:
    if bday.lower() not in ['y', 'n']:
        print("Invalid input, please enter Y or N.")
        print(bday)
        bday = input("Has your birthday already passed? (y|n) : ")
    else:
        break

邏輯上有錯誤。 如果要讓程序再次詢問用戶輸入的內容是否不是(“ y”或“ Y”或“ n”或“ N”),則必須使用“ and”而不是“ or”

嘗試:

while True:
    bday = input("Has your birthday already passed? (y|n) : ")
    if ((bday != 'y') and (bday != 'Y') and (bday != 'n') and (bday != 'Y')):
        print("Invalid input, please enter Y or N.")
    else:
        break

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM