Python Windows`msvcrt.getch()`仅检测每个第三个按键?

eva*_*vid 4 python msvcrt getch event-loop python-2.7

我的代码如下:

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()
Run Code Online (Sandbox Code Playgroud)

此代码基于此问题 ; 我用它来熟悉自己getch.

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

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

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

谢谢!

evamvid

小智 10

你在循环中调用该函数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)
Run Code Online (Sandbox Code Playgroud)