我正在尝试编写一个非常简单的程序,在检查之前会等待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}
由于
答案 0 :(得分:7)
msvcrt.kbhit()
函数仅在其所在的程序已从Windows命令行运行时才会起作用(或者当双击其{{1}时打开控制台窗口输入和输出时}文件)。
如果您从IDLE运行或使用.py
解释程序,该程序将不会连接到控制台窗口,而pythonw.exe
中的console-IO commands将无效。