2017-05-27 59 views
-2

任何人都可以給出一個解決方案,打破python3中基於時間的循環。我花了幾個小時,嘗試了不同的方法來解決這個問題,但沒有爲我工作。這裏是python3代碼,我想在沒有控制的「C」運行期間打破循環。所以作爲急停。任何鍵盤的使用都會非常麻煩。如何在Python中打破基於時間的循環

from time import sleep 
 

 
def blink(): 
 
    print('Hit enter to quite') 
 
    sleep(1) 
 
    
 
while 1: blink()

不時進口睡眠

高清閃爍(): 打印( '重災區進入到相當') 睡眠(1)

,而1:閃爍( )

回答

0

如果你想退出鍵盤輸入(例如輸入),那麼你需要實際得到輸入使用input()用戶:

while True: 
    user_input = input("Press enter to quit") 
    if user_input == "": 
     break 

這將等待用戶和突破,如果他們只投中enter。如果你想從一個方法去做,你應該有一個方法返回一個值:如果你想非阻塞輸入(例如,對於腳本打印「按Enter鍵退出」每一秒,直到進入

def blink(): 
    user_input = input("Press enter to quit") 
    if user_input == "": 
     return True 
    return False 

done = False 

while not done: 
    done = blink() 

(「\ r」)時,你可以使用msvcrt(僅Windows):

from time import sleep 

import msvcrt 

def blink(): 
    print('Hit enter to quit') 
    if msvcrt.kbhit(): 
     if msvcrt.getch() == "\r": 
      return True 
    return False 

done = False 

while not done: 
    done = blink() 
    sleep(1) 

但是,請記住時間,非阻塞(稱爲異步)的行爲可能會導致奇怪的錯誤,應該避免,除非你真的瞭解你的代碼

+0

感謝您的回覆。不能打破循環。 – PythonLearner