當我輸入joe
或Joe
時,爲什麼我不能跳出第一個while循環?輸入正確的參數不會讓我跳出while循環
joe = ''
password = ''
while joe != 'Joe' or 'joe':
print('Who are you?')
joe = input()
while password != 'swordfish' or 'Swordfish':
if joe == 'joe' or 'Joe':
print('What is the password? (Hint: its a fish)')
password = input()
if joe == 'Joe' or 'joe' and password == 'swordfish' or 'Swordfish':
print('Access Granted')
else:
print('Access Denied')
這個'如果joe == '喬' 或「Joe''並不意味着你認爲這意味着什麼。它意味着'if(joe =='joe')或bool('Joe')'和'bool('Joe')'總是評估爲'True',這意味着if語句總是通過。你可能的意思是「如果喬(喬','喬')'。或者甚至更好'如果joe.lower()=='joe''。 –
對於'while'循環中的條件,請嘗試'joe!='Joe'或joe!='joe''。現在,while循環將繼續運行,而「joe」不等於「Joe」或簡單地「joe」。 ''joe''是一個字符串,它的布爾值總是'True'。因此,無論「joe」是否等於「Joe」,字符串「joe」將始終評估爲「真」,而「while」循環永遠不會中斷。 – victor
嘿!感謝您的幫助。在我發佈這篇文章之後,我看了一下我又有了什麼。 (我想休息的時候頭腦不錯),我看到我沒有兩次寫變量。你是對的'喬'沒有喬=='喬'在while循環中沒有意義。 我也使用了錯誤的操作符。它應該是一個「和」運算符,而不是一個或。感謝.lower()提示,這會縮短代碼並使其更高效! :) –