2016-07-13 13 views
0

私はwhileループでいくつかの単語を入力しなければならないPythonプログラム(OS X/Linux上)を書いています。特定の文字が入力されたときにPythonの入力を停止する

i = 0 
array = [] 
while (i < 10): 
    array.append(raw_input("Prompt: ")) 
    i = i + 1 

ただし、ユーザーがスペースを入力するとすぐに入力を停止したい場合は、Enterキーを押す必要はありません。

私はraw_inputを使ってこれを行うことはできませんが、私がやろうとしていることを達成する方法はありませんでした。基本的には、次の単語を入力するために、ENTERの代わりにSPACEボタンを使用して、ある単語を他の単語の後に入力できるようにしたいと思います。

ご存知ですか?前もって感謝します。

+0

他の入力方法を使用する必要があります。 raw_inputは、eol/eodが検出される(例えば、ユーザーヒットが戻る)まで待機する。すべてのキーストロークを処理し、スペースをチェックする必要があります。 –

+0

'raw_input'、' input'、 'sys.stdin.read(1)'のどちらでもできません。すべてのオペレーティングシステムで動作する汎用ソリューションはありません。 – pts

+0

これはプラットフォーム固有のものです。 [参照してください](http://stackoverflow.com/questions/510357/python-read-a-single-character-from-the-user) - あなたはまた、そのようなイベントやリマッピングのためのtkinterのようなものの使用を検討することができます入力プロセス中にスペースバーにEnterキーを押してください - しかし、おそらくあなたが探しているよりも関与していて、さまざまなキーボードレイアウトのために必要な/必要があります。 – sytech

答えて

0

raw_input,inputまたはsys.stdin.read(1)では不可能です。すべてのオペレーティングシステムで動作する汎用ソリューションはありません。ここで

は、Enterキーを押しせずに、Pythonでユーザーからの単一の文字を読み取る方法です:Python read a single character from the user

次にあなたがforループ内の各文字を処理する必要があります。

関連する問題