当前位置: 首页 > 面试题库 >

Python Windows`msvcrt.getch()`仅检测到每3次按键?

湛鸿雪
2023-03-14
问题内容

我的代码如下:

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()

这段代码就是基于这个问题;我用它来熟悉自己getch

我已经注意到,按3键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)


 类似资料:
  • 我是Android新手。我正在尝试制作一个应用程序,它将在后台运行,并检测三次快速按下电源按钮。我查阅了很多资料,但无法澄清我的困惑。谁能给我一些建议吗?蒂亚。

  • 运行在Mojarra 2.1.13、PrimeFaces 3.5、JDK 1.6.x上。和Apache Tomcat 7.0.27,谢谢! 多谢了。

  • 假设有几个以编程方式创建的按钮,并且有一个通用的按钮处理程序。 如何理解处理器内部哪个按钮被按下? 而不在函数调用中传递一些特殊的东西。那不行:< code > onButtonClicked(" button " I); 例如,在JavaScript中,在处理程序内部有< code>$(this),它可以立即“理解”按下了哪个按钮。 也许在颤振中也有类似的机制?我想在按钮上挂起属性(事先不知道哪

  • 问题内容: 我正在使用WOW.js和animate.css,现在我正在将CSS运行到Infinite。我想知道如何让我的课程在3秒钟内停止运行并再次开始无限运行? 我的html: 我的CSS类: 解决方案可以是JS或CSS3。 问题答案: 对于纯CSS3动画,在动画的每个单次迭代之间添加延迟的一种方法是修改关键帧设置,以使其产生所需的延迟。 在以下代码段中,正在执行以下操作: 动画的整个持续时间为

  • 问题 你希望能够在特定的情况下检测出在数组中的每个元素。 解决方案 使用 Array.every (ECMAScript 5): evens = (x for x in [0..10] by 2) evens.every (x)-> x % 2 == 0 # => true Array.every 被加入到 Mozilla 的 Javascript 1.6 ,ECMAScript 5 标准。如果

  • 问题内容: 我正在尝试通过使用以下代码来检测我的应用程序之前是否已运行: (这是我的默认Android活动) 当我第一次运行该应用程序时,它表示是第一次,当我第二次,第一次,第三次,第一次运行时…。 我使用的是实际的Android设备,而并非每次都使用运行按钮。我使用Eclipse运行按钮运行该应用程序一次,然后关闭该应用程序并在手机上按其图标。 我的代码有问题吗? 问题答案: 更像是在状态之间进