Отображение разных строк на основе ввода

Я пытался заставить этот скрипт работать так, как задумано, но при этом у меня возникли некоторые проблемы. Я пытаюсь изменить строку, отображаемую на экране, в зависимости от переменной pageCount, но пока столкнулся с двумя проблемами.

Я хотел бы, чтобы первая строка (page1) была напечатана перед нажатием клавиши, которого ожидает getkey (), но я не могу этого добиться. Я также не могу заставить экран обновляться / очищаться должным образом, когда на экране печатается новая строка.

Как лучше всего решить эти проблемы?

from curses import wrapper


def main(stdscr):
# Clear screen


pageCount=0
#stdscr.addstr(str(pageCount))
stdscr.clear()
while True:

    key=stdscr.getkey()






    if key == "KEY_LEFT":

        pageCount=pageCount-1
    if key == "KEY_RIGHT":
        pageCount=pageCount+1

    if pageCount < 1:
        pageCount=10
    if pageCount > 10:
        pageCount=1

    if pageCount==1:
        stdscr.addstr("page 1")

    if pageCount==2:
        stdscr.addstr("page 2")

    if pageCount==3:
        stdscr.addstr("page 3")
    if pageCount==4:
        stdscr.addstr("page 4")
    if pageCount==5:
        stdscr.addstr("page 5")
    if pageCount==6:
        stdscr.addstr("page 6")
    if pageCount==7:
        stdscr.addstr("page 7")
    if pageCount==8:
        stdscr.addstr("page 8")
    if pageCount==9:
        stdscr.addstr("page 9")
    if pageCount==10:
        stdscr.addstr("page 10")

    stdscr.refresh()




wrapper(main)
Почему в Python есть оператор "pass"?
Почему в Python есть оператор "pass"?
Оператор pass в Python - это простая концепция, которую могут быстро освоить даже новички без опыта программирования.
Некоторые методы, о которых вы не знали, что они существуют в Python
Некоторые методы, о которых вы не знали, что они существуют в Python
Python - самый известный и самый простой в изучении язык в наши дни. Имея широкий спектр применения в области машинного обучения, Data Science,...
Основы Python Часть I
Основы Python Часть I
Вы когда-нибудь задумывались, почему в программах на Python вы видите приведенный ниже код?
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
Алиса и Боб имеют неориентированный граф из n узлов и трех типов ребер:
Оптимизация кода с помощью тернарного оператора Python
Оптимизация кода с помощью тернарного оператора Python
И последнее, что мы хотели бы показать вам, прежде чем двигаться дальше, это
Советы по эффективной веб-разработке с помощью Python
Советы по эффективной веб-разработке с помощью Python
Как веб-разработчик, Python может стать мощным инструментом для создания эффективных и масштабируемых веб-приложений.
0
0
32
1

Ответы 1

Просто напечатайте имя страницы до того, как getkey () решит вашу проблему. Вы можете действительно упростить свой код, используя свою страницу в качестве переменной в строке, чтобы избежать этого набора if. Что-то вроде этого?

from curses import wrapper

def main(stdscr):
    # Clear screen
    pageCount=1
    #stdscr.addstr(str(pageCount))
    stdscr.clear()
    while True:

        stdscr.addstr("page %d"%(pageCount))

        key=stdscr.getkey()
        if key == "KEY_LEFT":
            pageCount=pageCount-1
        if key == "KEY_RIGHT":
            pageCount=pageCount+1
        if pageCount < 1:
            pageCount=10
        if pageCount > 10:
            pageCount=1

        stdscr.refresh()

wrapper(main)

Другие вопросы по теме