Python kbhit()问题

我正在尝试编写一个非常简单的程序,它将等待x秒,然后检查它是否已经按下了一个键,这取决于这个结果将进入代码中的另一个循环.我有这个代码:

import msvcrt
import time
import sys

time.sleep(1)
if msvcrt.kbhit():
    sys.stdout.write('y')
else:
    sys.stdout.write('n')

所以我在第一次启动时按任意键(使kbhit == true)但它总是落到第二个语句并打印’n’.
我有什么错误吗?

{使用Python 2.7和IDLE}

谢谢

最佳答案 msvcrt.kbhit()函数仅在其所在的程序已从Windows命令行运行时才会起作用(或者,如果双击其.py文件时为其输入和输出打开控制台窗口).

如果从IDLE运行或使用pythonw.exe解释器,程序将不会连接到控制台窗口,并且msvcrt中的console-IO commands将不起作用.

点赞