我的程序包含一個簡單的'Y/N'輸入。我在代碼中放置了一個while循環,當輸入的輸入不是'Y/N'或其任何變化時,它應該會響應。雖然循環打印響應時,它不應該 - Python
import time
count_d = 10
load = input('Import modules? Y/N')
if load == 'Y' or load == 'y' or load == ' Y' or load == ' y':
print('Modules loading...')
while count_d >0:
print(count_d)
count_d = count_d-1
time.sleep(1)
print('Modules loaded')
elif load == 'N' or load == 'n' or load == ' N' or load == ' n':
print('Shutdown initiated.')
sys.exit()
while load != 'Y' or load != 'y' or load != ' Y' or load != ' y' and load != 'N' or load != 'n' or load != ' N' or load != ' n':
print('This answer does not correspond with the desired output')
load = input('Import modules? Y/N')
if load == 'Y' or load == 'y' or load == ' Y' or load == ' y':
print('Modules loading...')
while count_d >0:
print(count_d)
count_d = count_d-1
time.sleep(1)
print('Modules loaded')
break
elif load == 'N' or load == 'n' or load == ' N' or load == ' n':
print('Shutdown initiated.')
break
當我進入一個接受輸入,該程序響應它需要的地方,而且打印while循環,在那裏它被設計成只與一個接受的輸入識別它的響應。我做了什麼錯誤,所以在我做對了的時候它會釋放錯誤的輸出?
將while循環放在一個'''else'''塊中,所以它不會被輸入如果第一個條件中的任何一個是真的。由於while循環中的'''或'''條件,它會進入它。你會希望所有的''和''是。除非我誤解你的意圖... – mgarey
@mgarey謝謝,它現在有效。你能否進一步解釋爲什麼你需要把它放在另一個塊? –
@ matt-333,請參閱我的回答,https://stackoverflow.com/a/44637757/2306662 – nikpod