Тест ввода, как сохранить ввод при нажатии пробела

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

for i in range(num_words):
  print(final_sentence)
  print("")
  typed_word = input("Type>")
  words_to_list(typed_word)
  os.system('clear')
# python-3.x
Источник
  • 1
    Вероятно, вы захотите использовать модуль, который считывает нажатия клавиш напрямую, а не input (который считывает только полные строки из стандартного ввода).
Codelisting
за 0 против
Лучший ответ

Вероятно, вам следует использовать другие модули, такие как клавиатура или 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 и добавляет его к словам, пока не будет нажат пробел. При нажатии пробела сценарий останавливает слушателя и печатает набранное предложение.

Codelisting
Популярные категории
На заметку программисту