2017-04-21 9 views
1

私はしばらく時間を刻むことができますか?キーを押したら真ですか?それが可能であれば、どうすればいいですか?押す場合はxキー(例:intro)?どのようにキーボードの中断で真を破る?

while True:   
    if something is pressed: 
     print("STOP") 
     break 
    do_something() 

私は入力してtryiedしかし、あなたは置くことはできません。

while True: 
    i = input() or None if program wait > 3 seconds. # > = more than 
    if != None: 
     print("STOP") 
     break 
    do_something() 

入力はすべての中で答えを待って停止し、私はそれを望んでいません。
PD:私はwin 10 64-bit、python 32-bit 3.6、terminalを使用します。
PD2 :はポストの前に、私はそれについての詳細を検索し、この質問は、私が見つかりました:

while True: 
    try: 
     do_something() 
    except KeyboardInterrupt: 
     pass 

しかし、これはCtrl + cなく、他のキーと停止します。

+2

Windowsのコンソールでは、 'msvcrt.kbhit()'を使ってキーを押すことができます。それはコンソールだけです。 IDLEシェルなどのGUIプログラムでは機能しません。 – eryksun

+0

@eryksun、私は自分の質問を読み返していましたが、あなたはこのコメントを投稿したことを知りましたが、あなたは質問しませんでした。あなたは答えのように投稿することができた、私はそれを使用し、それは働いた。 –

+0

このためには、おそらく外部ライブラリが必要です。 –

答えて

0

のWindowsでのみ動作:

import msvcrt 
while True: 
    if msvcrt.kbhit(): 
     break 

msvcrtは、プロセスのキー入力の機能の能力を付与のリストを提供します。 msvcrt.kbhit()キーが押されているかどうかをチェックし、それが読み取られるのを待っており、それに基づいてtrueまたはfalseを返します。

関連する問題