如何在 python 中不按回车键从用户那里获取单个密钥
How to get a single key from user without pressing enter in python
我是一个初学者,请原谅我的无知。
我想要做的基本上是从用户那里得到一个输入,它是一个从 1 到 9 的数字或一个 space。我通过浏览这个网站想出了一些代码,我认为这些代码应该可以工作但不能。当我尝试 运行 它时,它什么也没做,没有错误消息或任何东西。
import msvcrt
numInput = 0
while numInput == 0 :
if msvcrt.kbhit():
if msvcrt.getch() == "1":
numInput = "1"
elif (msvcrt.getch() == "2"):
numInput = "2"
elif (msvcrt.getch() == "3"):
numInput = "3"
elif (msvcrt.getch() == "4"):
numInput = "4"
elif (msvcrt.getch() == "5"):
numInput = "5"
elif (msvcrt.getch() == "6"):
numInput = "6"
elif (msvcrt.getch() == "7"):
numInput = "7"
elif (msvcrt.getch() == "8"):
numInput = "8"
elif (msvcrt.getch() == "9"):
numInput = "9"
elif (msvcrt.getch() == " "):
numInput = " "
msvcrt.getch()
读取键。此外,您无需对 numInput
值进行任何操作。
你有:
if msvcrt.getch() == "1":
numInput = "1"
elif (msvcrt.getch() == "2"):
numInput = "2"
....
首先 msvcrt.getch()
读取您使用 msvcrt.kbhit()
检测到的密钥。如果它是“1”,那么它将退出循环。如果不是,它将转到第二个 if 和 BLOCKS,直到您再次按下 key。在您按下 python 键后,将根据“2”检查它。等等。因此,如果您按 1,您的代码将很好地退出循环。如果你想用 2 退出,那么你必须按 2 两次(因为首先你检查 1)......你得到了练习。试试这个:
while numInput == 0 :
if msvcrt.kbhit():
v = msvcrt.getch()
if v == "1":
numInput = "1"
...
print(numInput)
注意:这个循环也会独占处理器的一个核心,但那是另一回事了。
我是一个初学者,请原谅我的无知。
我想要做的基本上是从用户那里得到一个输入,它是一个从 1 到 9 的数字或一个 space。我通过浏览这个网站想出了一些代码,我认为这些代码应该可以工作但不能。当我尝试 运行 它时,它什么也没做,没有错误消息或任何东西。
import msvcrt
numInput = 0
while numInput == 0 :
if msvcrt.kbhit():
if msvcrt.getch() == "1":
numInput = "1"
elif (msvcrt.getch() == "2"):
numInput = "2"
elif (msvcrt.getch() == "3"):
numInput = "3"
elif (msvcrt.getch() == "4"):
numInput = "4"
elif (msvcrt.getch() == "5"):
numInput = "5"
elif (msvcrt.getch() == "6"):
numInput = "6"
elif (msvcrt.getch() == "7"):
numInput = "7"
elif (msvcrt.getch() == "8"):
numInput = "8"
elif (msvcrt.getch() == "9"):
numInput = "9"
elif (msvcrt.getch() == " "):
numInput = " "
msvcrt.getch()
读取键。此外,您无需对 numInput
值进行任何操作。
你有:
if msvcrt.getch() == "1":
numInput = "1"
elif (msvcrt.getch() == "2"):
numInput = "2"
....
首先 msvcrt.getch()
读取您使用 msvcrt.kbhit()
检测到的密钥。如果它是“1”,那么它将退出循环。如果不是,它将转到第二个 if 和 BLOCKS,直到您再次按下 key。在您按下 python 键后,将根据“2”检查它。等等。因此,如果您按 1,您的代码将很好地退出循环。如果你想用 2 退出,那么你必须按 2 两次(因为首先你检查 1)......你得到了练习。试试这个:
while numInput == 0 :
if msvcrt.kbhit():
v = msvcrt.getch()
if v == "1":
numInput = "1"
...
print(numInput)
注意:这个循环也会独占处理器的一个核心,但那是另一回事了。