我的代码如下:

import msvcrt
while True:
    if msvcrt.getch() == 'q':
       print "Q was pressed"
    elif msvcrt.getch() == 'x':
       sys.exit()
    else:
       print "Key Pressed:" + str(msvcrt.getch()

此代码基于 this question ;我用它来熟悉 getch

我注意到需要 3 次按键 3 次才能输出一次文本。为什么是这样?我正在尝试将它用作事件循环,这太滞后了......

即使我输入 3 个不同的键,它也只输出第三个按键。

我怎样才能强制它走得更快?有没有更好的方法来实现我想要实现的目标?

谢谢!

万维网

最佳答案

您在循环中调用该函数 3 次。尝试像这样只调用一次:

import msvcrt
while True:
    pressedKey = msvcrt.getch()
    if pressedKey == 'q':
       print "Q was pressed"
    elif pressedKey == 'x':
       sys.exit()
    else:
       print "Key Pressed:" + str(pressedKey)

关于Python Windows `msvcrt.getch()` 只检测每 3 次按键?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/22365473/

10-11 08:34