Найти - Пользователи
Полная версия: Прерывание цикла по нажатию клавиши
Начало » Python для новичков » Прерывание цикла по нажатию клавиши
1 2 3
pochechyev
Приветствую!

Есть цикл

while 1: 
.....
bla bla bla
....
Нужно сделать так чтобы по нажатию клавиши (можно любой, но лучше какой-то определенной, например Enter) цикл прерывался и происходит дальнейшее выполнение программы.


Спасибо.
sypper-pit
почитай в сторону процедуры continue
pochechyev
sypper-pit
почитай в сторону процедуры continue
вопрос в другом. как определить нажата клавиша или нет без прерывания цикла.

т.е. цикл идет, проходит проверка(если кнопка не нажата ) цикл продолжается
как только нажимается кнопка программа выполняется дальше.


т.е. должно быть что-то типа

while 1: 
print "bla"
if (что здесь писать не знаю):
print "кнопка нажата"
break
lamb
в консоли под Windows можно попробовать что-то типа такого:
import msvcrt

while not msvcrt.kbhit(): # не нажата ли клавиша?
pass
или
import msvcrt

while True:
if msvcrt.kbhit(): # Нажата ли клавиша?
key = ord(msvcrt.getch()) # Какая клавиша нажата?
if key == 13: # если Enter:
break
pochechyev
window не интересует.
будет скрипт под Linux
Rodegast
Читай про raw_input()
pochechyev
raw_input() это понятно. но оно останавливает выполнение программы и ждет нажатия клавиши.
да и в данном случае лучше использовать sys.stdin.read()
igor.kaist
Rodegast
Читай про raw_input()
не прокатит, ибо…
pochechyev
т.е. цикл идет, проходит проверка(если кнопка не нажата ) цикл продолжается
смотри в сторону signal
cutwater
Я такую штуку проделывал. но понадобится перевести терминал в raw режим. И стандартными средствами увы никак.
Конкретно читать man termios
Если найду пример, отпишусь здесь.
PooH
pochechyev
window не интересует.
будет скрипт под Linux
Бросьте этих глупостей. Интерактивщина в терминале не нужна.
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB