首页 > 解决方案 > 我的代码有什么问题?它不允许我用箭头键增加和减少心率

问题描述

我正在尝试制作一个程序,您可以在其中使用向上和向下箭头键来增加一个人显示的心率。

import curses
running = True
heart_rate = 1
key = curses.KEY_RIGHT
print(heart_rate)
if key == curses.KEY_UP:
    heart_rate += 1
    print(heart_rate)
elif key == curses.KEY_DOWN:
    heart_rate -= 1
    print(heart_rate)
while heart_rate != 200:
    if heart_rate == 200 or heart_rate == 0:
        quit()

它只是打印 1 然后不响应按箭头键。

标签: pythonpython-curses

解决方案


永远不会设置代码中的变量key

您还应该考虑阅读Python curses 文档以完全理解为什么不能print()在 curses 上下文中使用。

这是您的算法的功能修订:

import curses


def test(stdscr):
    heart_rate = 1

    while heart_rate != 200:
        stdscr.clear()
        stdscr.addstr(2, 2, str(heart_rate))
        stdscr.refresh()

        key = stdscr.getch()

        if key == curses.KEY_UP:
            heart_rate += 1
        elif key == curses.KEY_DOWN:
            heart_rate -= 1

        if not heart_rate:
            break

if __name__ == "__main__":
    curses.wrapper(test)


推荐阅读