所以我一直在做關於如何退出用戶while循環按下回車鍵讀了一點點,我想出了以下內容:按enter鍵退出while循環而不阻塞。我該如何改進這種方法?
import sys, select, os
switch = 1
i = 1
while switch == 1:
os.system('cls' if os.name == 'nt' else 'clear')
print "I'm doing stuff. Press Enter to stop me!"
print i
while sys.stdin in select.select([sys.stdin], [], [], 0)[0]:
line = raw_input()
if not line:
print "Finished! =]"
switch = 0
else:
print "Finished! =]"
switch = 0
i = i+1
有沒有一種辦法整理這個?特別是「如果不行」和下面的「其他」看起來很混亂。他們可以合併成一個嗎?使用「開關」更好的選擇?
最初,如果我鍵入了一串字符,然後按回車,它並沒有停止循環。我將不得不再次按下輸入。 if not和else組件用於設置它,以便在第一次輸入時退出。
爲什麼不擺脫'if',因爲它以相同的方式?另外,「True」和「break」比標誌更乾淨 – jonrsharpe
這是否確實適用於Windows?該文檔說select.select只支持Windows上的套接字:http://docs.python.org/2/library/select.html – Weeble
@Weeble我認爲這應該適用於Windows? http://code.activestate.com/recipes/146066-exiting-a-loop-with-a-single-key-press/我在Ubuntu上編碼,親自。 – user3394391