2017-04-20 17 views
0

私はこの単純なコードを書きました。スレッディング中にPythonでユーザ入力を無視するには?

import time 
from threading import Thread 

counter=0 
input_var=0 

class inputprogram: 
    def __init__(self): 
     self._running = True 

    def terminate(self): 
     self._running = False 

    def take(self): 
     global input_var 
     while self._running: 
      time.sleep(1) 
      input_var = input("Enter something: ") 

avaliable= inputprogram() 
avaliableinput = Thread(target=avaliable.take) 
avaliableinput.start() 




while input_var!= 'exit': 

    counter=counter+1 
    time.sleep(0.2) 
    print (counter) 



avaliable.terminate() 

私はこのコードをRPiで実行します。私は、ユーザーが入力を入力したり何も入力していない間、カウンターを止めないようにしたい。それはスレッドを待ってから続行します。この問題を解決するユーザー入力方法はありますか?それとも私は別のものを試すべきですか?意図したとおりに

+0

私はカウンタが停止しないことを言うでしょう。あなたは何を見ますか? –

+0

カウンタが4に達すると停止し、ユーザーが入力を開始してから9までカウントし、再び停止してから...に進みます。 – Bcan

+0

カウンターは私のために決して止まらない... –

答えて

0

実行 - > IDLEエディタ画面または

exec(open('filename.py').read()) 

からIDLEシェルから実行モジュールは動作しません。

、この問題を解決すると、端末上の.pyファイルを実行するには、次の(のpython3が使用されている場合)

python3 filename.py 
関連する問題