Уведомления

Группа в Telegram: @pythonsu

#1 Апрель 19, 2021 16:48:31

MagentaIceberg
Зарегистрирован: 2021-03-18
Сообщения: 28
Репутация: +  0  -
Профиль   Отправить e-mail  

Как запустить проверку с кнопкой Enter

Есть задачка с такими условиями:

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

Хотел использовать проверку нажатия кнопки Enter.
Написал:

 import keyboard
a = input()
if a == keyboard.is_pressed('enter'):
    print('egg') #это просто для проверки

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

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

Как правильно проверку использовать?

Офлайн

#2 Апрель 19, 2021 17:37:22

PEHDOM
Зарегистрирован: 2016-11-28
Сообщения: 2196
Репутация: +  294  -
Профиль   Отправить e-mail  

Как запустить проверку с кнопкой Enter

MagentaIceberg оно не так работает.

 import keyboard
while True:
    if keyboard.is_pressed('enter'):
        print('egg') #это просто для проверки
запускать в консоли, выходить контрол+с



==============================
Помещайте код в теги:
[code python][/code]
Бериегите свое и чужое время.

Отредактировано PEHDOM (Апрель 19, 2021 17:37:56)

Офлайн

#3 Апрель 20, 2021 14:24:59

MagentaIceberg
Зарегистрирован: 2021-03-18
Сообщения: 28
Репутация: +  0  -
Профиль   Отправить e-mail  

Как запустить проверку с кнопкой Enter

PEHDOM
MagentaIceberg оно не так работает.
о, спасибо!) как всегда признателен!) Единственно вот это предложение не понял:
PEHDOM
запускать в консоли, выходить контрол+с
И момент с бесконечным циклом не понял, ведь если ввести один раз enter - он сразу выдаёт бесконечно print. Вот так:
egg

Отредактировано MagentaIceberg (Апрель 20, 2021 14:25:30)

Офлайн

#4 Апрель 20, 2021 16:51:46

PEHDOM
Зарегистрирован: 2016-11-28
Сообщения: 2196
Репутация: +  294  -
Профиль   Отправить e-mail  

Как запустить проверку с кнопкой Enter

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



==============================
Помещайте код в теги:
[code python][/code]
Бериегите свое и чужое время.

Отредактировано PEHDOM (Апрель 20, 2021 16:54:31)

Офлайн

#5 Апрель 20, 2021 17:39:27

MagentaIceberg
Зарегистрирован: 2021-03-18
Сообщения: 28
Репутация: +  0  -
Профиль   Отправить e-mail  

Как запустить проверку с кнопкой Enter

PEHDOM
спасибо! НО всё равно почему-то у меня в Atom я нажал один раз на скрине, а он мне такой результат в интерпретаторе/

Офлайн

#6 Апрель 20, 2021 18:07:49

PEHDOM
Зарегистрирован: 2016-11-28
Сообщения: 2196
Репутация: +  294  -
Профиль   Отправить e-mail  

Как запустить проверку с кнопкой Enter

MagentaIceberg
в Atom я нажал один раз на скрине, а он мне такой результат в интерпретаторе/
компутер он тупой, он не знает что такое “нажал один раз”, Мы в цикле условно миллион раз в секунду спрашиваем “нажата ли кнопка ентер”, соответственно компутер нам чесно миллион раз в секунду отвечает. Это для вас вы ее один раз нажали и отпустили, для компутера она была в состоянии “нажата” пару сотен микросекунд, соовтевенно каждую миросекунду, пока кнпка в состоянии “нажата” он вам согласно вашей прогрмме и печатает “egg”.



==============================
Помещайте код в теги:
[code python][/code]
Бериегите свое и чужое время.

Офлайн

#7 Апрель 21, 2021 20:37:13

MagentaIceberg
Зарегистрирован: 2021-03-18
Сообщения: 28
Репутация: +  0  -
Профиль   Отправить e-mail  

Как запустить проверку с кнопкой Enter

PEHDOM
кайф, спасибо за объяснение!

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version