2013-09-07 3 views
1

Я пытаюсь написать очень простую программу, которая будет ждать x секунд, прежде чем проверять ее нажатие клавиши, тогда, в зависимости от этого результата, вы перейдете в другой цикл дальше по коду , У меня есть этот код:Проблемы с Python kbhit()

import msvcrt 
import time 
import sys 

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

Так что нажать любую клавишу, когда он сначала начинает (что делает kbhit == TRUE), но он всегда просто падает на второе утверждение и печатает «п». Любые предложения, что я делаю неправильно?

{Использование Python 2.7 и IDLE}

Благодаря

+0

Вы читали: [По теме на другом сайте StackExchange автоматически задают вопрос вне темы для StackOverflow?] (Http://stackoverflow.com/q/510357/510937)? – Bakuriu

+0

Хорошая ссылка, но текст ее в смущает меня –

ответ

4

msvcrt.kbhit() функция будет работать, только если программа его в была запущена из командной строки окна (или, если окно консоли открывается для его ввод и вывод при двойном щелчке по файлу .py).

Если вы используете IDLE или используете интерпретатор pythonw.exe, программа не будет подключена к окну консоли, а console-IO commands от msvcrt не будет работать.