На официальной странице документации curses его определение:
Модуль curses предоставляет интерфейс для библиотеки curses, фактического стандарта для портативной расширенной обработки терминала.
Вы сказали, что хотите написать программу обучения печатанию , и я думаю, что лучшим решением будет использование библиотеки curses
для такой задачи.
В системах UNIX он поставляется с установленной по умолчанию установкой python, и если вы ориентируетесь на системы Windows, я обнаружил windows-curses , чтобы значительно увеличить поддержку.
В основном выВы можете найти руководство по HOWTO на этой странице из официальных документов .
Вот пример использования для создания виджета для текстового поля
Модуль curses.textpad должен быть очень полезным для вас.
import curses
from curses import wrapper
from curses.textpad import Textbox, rectangle
def main(stdscr):
stdscr.addstr(0, 0, "Enter IM message: (hit Ctrl-G to send)")
editwin = curses.newwin(5,30, 2,1)
rectangle(stdscr, 1,0, 1+5+1, 1+30+1)
stdscr.refresh()
box = Textbox(editwin)
# Let the user edit until Ctrl-G is struck.
box.edit()
# Get resulting contents
message = box.gather()
print(message)
if __name__ == '__main__':
wrapper(main)
Вот как это выглядит при использовании модуля windows-curses
![Curses example screenshot](https://i.stack.imgur.com/iiucF.jpg)
С помощью этой библиотеки вы можете многое сделать, я предлагаю вам продолжить и читать документы по предоставленным мною ссылкам.