2

Enterキーを押さずに任意のキーを押して、Pythonプログラムを終了するにはどうすればよいですか。したがって、ユーザーが「c」と入力すると、Enter キーを押さずにプログラムが自動的に終了するはずです。

これまでの私のコード:

print("Hi everyone! This is just a quick sample code I made")
print("Press anykey to end the program.")
4

1 に答える 1

3

通常、ユーザー コマンドを取得するためにinput('>> ')(またはraw_input('>> ')Python3 と共に) を使用します。ただし、これには、ユーザーがデータを入力した後に送信する必要があります。したがって、あなたの例では、ユーザーは c と入力してから Enter キーを押します。

Windows を使用している場合は、この答えに近いと思います。この例では、( を使用して) キーボード ヒットを検出するために使用できるライブラリmsvcrtmsvcrt.kbhit()をインポートします。したがって、ユーザーが c と入力すると、コードは Enter キーを待たずにそのキーストロークに応答できます。もちろん、目的のコードを実行する (つまり、アプリケーションを終了する) 前に、キーを処理する (つまり、ボタンが実際に AC であったことを確認する) 必要があります。


編集:while()この回答は、何かを実行したり、ユーザー入力を待ったりするループがあることを前提としています。次のような:

import msvcrt

print("Hi everyone! This is just a quick sample code I made")
print("Press anykey to end the program.")

while(True):
    # Do stuff here.
    if msvcrt.kbhit():
        # The user entered a key. Check to see if it was a "c".
        if (msvcrt.getch() == "c"):
            break
        elif (msvcrt.getch() == <some other character>):
            # Do some other thing.

もちろん、キーボードがヒットしたときにプログラムを終了するに、キーが「c」であるかどうかを確認する部分を取り除くだけです。

于 2013-10-20T13:12:06.463 に答える