[英]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 in
和list
並將其檢查到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.