我有一个想法在 python 中创建一个控制台选择菜单,如下所示:
Choose an option:
> 1. Do something 1 <
2. Do something 2
3. Do something 3
4. Do something 4
如果我按向上箭头键,什么也不会发生。如果我按下一个,小于号和大于号会像这样上下移动:
Choose an option:
1. Do something 1
> 2. Do something 2 <
3. Do something 3
4. Do something 4
但我不知道哪个 Python 3 模块可以帮助我捕捉按键而不是 input()
,我不知道如何正确对齐它。
我的对齐解决方案是打印空格(也许?),当按键事件被捕获时,控制台将被清除并再次打印选择菜单而不是更改/修改字符串。
此外,选项将从列表中获取,这意味着此菜单是可扩展的
原文由 minhperry 发布,翻译遵循 CC BY-SA 4.0 许可协议
你必须检测键盘键。因为这个 检测 python 中的按键? 提到的答案,Python 有一个 键盘 模块。
您可以使用这些命令安装它
这是它的工作原理
selected = 1
def show_menu(): global selected print(”\n” * 30) print(“Choose an option:”) for i in range(1, 5): print(“{1} {0}. Do something {0} {2}”.format(i, “>” if selected == i else “ “, “<” if selected == i else “ “))
def up(): global selected if selected == 1: return selected -= 1 show_menu()
def down(): global selected if selected == 4: return selected += 1 show_menu()
show_menu() keyboard.add_hotkey(‘up’, up) keyboard.add_hotkey(‘down’, down) keyboard.wait() “`