Serviceを読んで理解し、同意したものとみなします。スタック・オーバーフローはプログラマーとプログラミングに熱心な人のためのQ&Aサイトです。票1input()を非ブロック動作にするためにコンソールのモードを変更したりOS依存モジュールの機能を用いたりするとできるかも知れませんが、アプローチを変えて「input()をデーモンスレッドで行わせ結果をキューを通じて主スレッドが取り出したら・・・」と考え以下のような実装を考えてみました。Input.input()はデフォルトでブロックモードで動作しますが、block=Trueにするとその時点で入力があった場合はstrインスタンスを、なかった場合はNoneを返すようにしています。3.5.2で試しました)しかし、cygwin上で動かすと例外発生時のスタックトレースの表示が途中で止まる現象が起きます。何度かENTERを押せば最後まで表示されシェルへ戻りはするのですが。WSLやUbuntuではそういうことは起きませんでした。この実装はコンソールの振る舞いに影響される点があるのだと思います。少々中途半端な実装のままで恐縮ですが、一つのアイデアとしてコメントしてみました。|1この質問は、Pythonのinput()では、入力データを待つ仕様になっているが、C言語のgetchar()と同じ仕様のものが実現できないかという質問だと思います。回答としては、Pythonの標準ライブラリだけだとこの機能を実現するのは無理だということになります。ウィンドウアプリにすれば、容易に実装できます。ウィンドウアプリでは、例えば、ゲームであれば、矢印キーでキャラクターを動かすのは普通にすると思います。ウィンドウアプリでのキーイベントの取得については、下記等を参考にしてください。http://www.geocities.jp/penguinitis2002/computer/programming/Python/PyGTK/03-key.htmlコンソールアプリで、どうしてもやりたければ、キー入力と違って少し手間になりますが、ファイルを使うことで実現できます。console.readable()のかわりに、os.path.isfile('a.txt')としておいて、以下のようにターミナルからファイルに書き込んでやればできます。|1質問者はもうここを訪れていないようですが、ノウハウの例として。いうライブラリがあります。1.0PythonにおけるCursesプログラミングユーザからの入力cursesライブラリ自身は、非常に簡単な入力機構しか提供しません。Pythonでは、この欠点を補うための文字列を入力するウィジェットを追加しています。ウィンドウへの入力を得るもっともよく使われる方法は、ウィンドウのgetch()メソッドを使うことです。これは一時停止し、ユーザのキー入力を待ち、もしecho()が前に呼び出されていたらそれを表示します。あなたは、一時停止する前にカーソルを移動させる座標を追加で指定することもできます。nodelay()メソッドで、この挙動を変更することができます。halfdelay()の引数で指定したミリ秒だけ経過しても入力が得られない場合は、cursesは例外を生成します。戻り値が0から255までの間ならば、それは押されたきーのASCIIコードを表します。カーソルキーといった特殊キーを表します。curses.KEY_LEFTといった定数と比較することができます。これはあなたのコマンドインタプリタの読みやすいテストを書くのに便利です。このクラスはまた、整数か1文字の文字列を引数に取り、相互に変換する関数も提供します。curses.ascii.ctrl()は引数に対応した制御文字を返します。|回答スタック・オーバーフローに参加してくれて、ありがとうございます!質問の回答を共有してください。回答を説明し、自分の検討結果も共有してください。意見を述べること(意見を述べるなら、参照リソース、自分の経験で意見をサポートしてください)さらにサポートが必要な場合このヘルプを参考してください。“回答を投稿”をクリックすることで利用規約、プライバシーポリシー、及びクッキーポリシーに同意したものとみなされます。タグが付いた他の質問を参照するか、自分で質問をする。質問のフィードこのRSSフィードを購読するには、このURLをコピーしてRSSリーダーに貼り付けてください。