Python 3中更简单的文本菜单
我必须为一个学校项目制作一个基于文本的菜单系统程序。它包括一个主菜单和多个子菜单。我制作了当前版本的菜单,其中包含大量的if语句、打印和输入。但这既不是一个优雅也不容易的解决方案。我希望有一种更简单/更好的方法来创建菜单 更准确地说,我需要一种调用菜单(显示菜单)的方法,然后我可以选择一个选项,然后执行一些代码 结构如下所示Python 3中更简单的文本菜单,python,python-3.x,input,menu,text-based,Python,Python 3.x,Input,Menu,Text Based,我必须为一个学校项目制作一个基于文本的菜单系统程序。它包括一个主菜单和多个子菜单。我制作了当前版本的菜单,其中包含大量的if语句、打印和输入。但这既不是一个优雅也不容易的解决方案。我希望有一种更简单/更好的方法来创建菜单 更准确地说,我需要一种调用菜单(显示菜单)的方法,然后我可以选择一个选项,然后执行一些代码 结构如下所示 输入数据过滤器 过滤器 添加过滤器 类型1 类型2 类型3 卸下过滤器 编辑过滤器 计算 卑鄙 标准差 等等 创建绘图 出口 处理此类问题的最简单方法是递归。
- 输入数据过滤器
- 过滤器
- 添加过滤器
- 类型1
- 类型2
- 类型3
- 卸下过滤器
- 编辑过滤器
- 添加过滤器
- 计算
- 卑鄙
- 标准差
- 等等
- 创建绘图
- 出口
- 处理此类问题的最简单方法是递归。一旦你
建立一个有用的数据结构,它可以很容易地递归处理,因为创建子菜单的工作与创建菜单基本相同
在下面的解决方案中,我将菜单定义为元组。菜单中的项目可以是命令(表示为字符串),也可以是子菜单(表示为嵌套元组)
menu_data = (
"Input data filters",
("Filters",
("Type 1",
"Type 2",
"Type 3"),
"Remove Filter",
"Edit Filter"),
"Do Calculations",
("Mean",
"Std Deviation",
"etc"),
"Create Plot",
"Exit"
)
def make_menu(menu, indent=0):
for item in menu:
if type(item) == tuple:
make_menu(item, indent+1)
else:
print(" "*indent+item)
make_menu(menu_data)
这将打印所需的结构。使用打印功能打印菜单。您可以导入已经制作好的菜单,然后对其进行修改,使其符合您的需要。绘图窗口可以与鼠标和键盘交互,在菜单中移动并选择其中的位置。你们可以使它看起来像一个文本菜单,唯一的区别是它在一个窗口而不是一个外壳中。 图书馆“pygame”有很多这样的内容
我希望这能有所帮助。这不是我想要的。这不是菜单的过程,而是与菜单交互的过程。侧注只有菜单的当前层应该可见。我有一个想法,类是一种方式,但绝对不知道它将/应该如何实现。当你说“与它交互”时,你是指如何确保特定菜单项的选择运行特定的代码段,还是指显示顶级项,如果是子菜单,则与菜单项关联的子菜单?在问题中添加更多细节可能是个好主意,否则你将永远无法得到你需要的答案。添加一些细节,希望足够了。