Определить "конец: нажатие клавиши в python3 - PullRequest
0 голосов
/ 17 мая 2018

Я пытаюсь бесконечно принимать ввод от пользователя, пока пользователь не нажмет клавишу завершения на клавиатуре. Ввод может быть любого типа данных. например, код ниже, я хочу выйти из цикла while, когда на клавиатуре нажата клавиша end.

    l = []
while 1:
    v = input("Enter the list element")
    l.append(v)
    if int(v)==1:  # instead of checking 1 I want to check for "end" key press 
        break

print("the list is %s" %(l))

Было бы замечательно, если бы кто-то мог предложить выход из комбинации клавиш, таких как Ctrl + E и т. Д.

Ответы [ 2 ]

0 голосов
/ 18 мая 2018

Вы можете использовать обработку исключений.

try:
     While 1:
           # your code

except KeyboardInterrupt:
      print("Exit")
      exit()

Этот код будет зацикливаться до тех пор, пока вы не дадите прерывание клавиатуры (ctrl + c). Для получения дополнительной информации см .: https://www.python -course.eu /exception_handling.php

0 голосов
/ 17 мая 2018

Вы можете использовать pynput библиотека , чтобы определить, какая клавиша была нажата
Я полагаю, Input() не может обнаружить функциональные клавиши (кроме enter или backspace и т. Д.)

У них есть pynput.keyboard.Listener для прослушивания клавиш

Дополнительная информация

...