Тест ввода, как сохранить ввод при нажатии пробела - PullRequest
0 голосов
/ 05 августа 2020

Мы с другом строили тест по печати. Мы используем функцию input () в python, чтобы получать данные от пользователя. Проблема в том, что мы должны нажать Enter, чтобы сохранить ввод, и мы хотим, чтобы вместо этой кнопки был пробел. Есть ли способ сделать тот или иной модуль, который мы могли бы использовать для решения этой проблемы?

for i in range(num_words):
  print(final_sentence)
  print("")
  typed_word = input("Type>")
  words_to_list(typed_word)
  os.system('clear')

1 Ответ

0 голосов
/ 05 августа 2020

Вероятно, вам следует использовать другие модули, такие как keyboard или pynput , потому что input() обнаруживает целые строки, в то время как эти модули обнаруживают нажатия клавиш. Обнаружение нажатий клавиш, их печать и остановка при нажатии Key.space (в случае pynput). Примерно так:

from pynput.keyboard import Listener
from pynput.keyboard import Key

words=''
def on_press(key):
        if key==Key.space:
            listener.stop()
            print (words)

def on_release(key):
        global words
        typed = str(key).replace("'", "")
        words = words + typed

with Listener(on_press=on_press, on_release=on_release) as listener:
        listener.join()

Этот код определяет нажатие клавиши с помощью удобного слушателя pynput.keyboard и добавляет его к словам, пока не будет нажат пробел. При нажатии пробела сценарий останавливает слушателя и печатает набранное предложение.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...