Найти - Пользователи
Полная версия: Как запустить проверку с кнопкой Enter
Начало » Python для новичков » Как запустить проверку с кнопкой Enter
1
MagentaIceberg
Есть задачка с такими условиями:

“Давайте создадим гадательный класс!
Ваша задача создать класс (или несколько с классом-родителем и подклассами) так, чтобы можно было получить предсказание как в шаре судьбы (есть такой шар, если его потрясти, в окошке появляется фраза да/нет/возможно/спросите позже/ и т.д.).
Помните, что шар судьбы не может давать ответы сразу, ему нужно несколько секунд на размышления.”

Хотел использовать проверку нажатия кнопки Enter.
Написал:
 import keyboard
a = input()
if a == keyboard.is_pressed('enter'):
    print('egg') #это просто для проверки

При запуске кода получаю это:
Вывод

То есть пустое поле, а не вывод egg.

Как правильно проверку использовать?
PEHDOM
MagentaIceberg оно не так работает.
 import keyboard
while True:
    if keyboard.is_pressed('enter'):
        print('egg') #это просто для проверки
запускать в консоли, выходить контрол+с
MagentaIceberg
PEHDOM
MagentaIceberg оно не так работает.
о, спасибо!) как всегда признателен!) Единственно вот это предложение не понял:
PEHDOM
запускать в консоли, выходить контрол+с
И момент с бесконечным циклом не понял, ведь если ввести один раз enter - он сразу выдаёт бесконечно print. Вот так:
egg
PEHDOM
MagentaIceberg
Единственно вот это предложение не понял:
Ну поскольку там бесконечный цикл,без штатной возможности выхода, то запуск в IDE приведет к тому что для завершения нужно будет завершать процесс python-а
MagentaIceberg
И момент с бесконечным циклом не понял, ведь если ввести один раз enter - он сразу выдаёт бесконечно print. Вот так:
оно не беконечно выдает, а пока ентер нажат, как отпустите так и перестанет. Функция жи называется is_pressed (а_нажат_ли) вот оно и проверяет кадый виток цикла, если нажата то печатает “egg” . Дальше все зависит от логики вашей программы, можете при срабатывании условия вызывать команды\процедуы\функции и выходить из цикла, а можете еще что делать..
Можно пойти другим путем, например вешать каллбек на .on_press_key() или .on_release_key() или использовать блокирующую функцию keyboard.wait()
см. документацию https://github.com/boppreh/keyboard

MagentaIceberg
PEHDOM
спасибо! НО всё равно почему-то у меня в Atom я нажал один раз на скрине, а он мне такой результат в интерпретаторе/
PEHDOM
MagentaIceberg
в Atom я нажал один раз на скрине, а он мне такой результат в интерпретаторе/
компутер он тупой, он не знает что такое “нажал один раз”, Мы в цикле условно миллион раз в секунду спрашиваем “нажата ли кнопка ентер”, соответственно компутер нам чесно миллион раз в секунду отвечает. Это для вас вы ее один раз нажали и отпустили, для компутера она была в состоянии “нажата” пару сотен микросекунд, соовтевенно каждую миросекунду, пока кнпка в состоянии “нажата” он вам согласно вашей прогрмме и печатает “egg”.
MagentaIceberg
PEHDOM
кайф, спасибо за объяснение!
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