首页 > 其他分享 >3.26

3.26

时间:2024-06-19 17:42:57浏览次数:23  
标签:菜单 level menu choice current 3.26 print

时长:五十分钟

代码量:

8-4 【Python0036】中文级联菜单 分数 10 作者 doublebest 单位 石家庄铁道大学

编写程序实现中文级联菜单,建议可以使用pypinyin或其它扩展库。

代码:

def display_menu(menu, level=0):
"""递归显示菜单"""

for index, (key, value) in enumerate(menu.items(), start=1):

print(" " * level + f"{index}. {key}")

if isinstance(value, dict): # 如果值是字典,说明还有下一级菜单

display_menu(value, level + 1)


def get_choice(prompt="请选择: "):
"""获取用户选择"""

while True:

try:

choice = int(input(prompt))

return choice

except ValueError:

print("输入无效,请输入数字。")


def navigate_menu(menu):
"""导航菜单"""

while True:

display_menu(menu)

choice = get_choice()

current_level = menu

path = [] # 记录选择的路径

# 根据用户选择遍历菜单

for level in range(len(str(choice))):

digit = int(str(choice)[level]) - 1

if digit < len(current_level):

path.append(list(current_level.keys())[digit])

current_level = list(current_level.values())[digit]

else:

print("无效的选择。")

break

# 检查是否到达叶子节点

if not isinstance(current_level, dict):
print("你选择了:", " -> ".join(path))

print("操作完成或显示信息。") # 这里可以添加具体操作

break


# 示例菜单结构

menu = {

"一级菜单1": {

"二级菜单1-1": "这是二级菜单1-1的操作或信息",

"二级菜单1-2": {

"三级菜单1-2-1": "这是三级菜单1-2-1的操作或信息"

}

},

"一级菜单2": {

"二级菜单2-1": "这是二级菜单2-1的操作或信息"

}

}

navigate_menu(menu)

标签:菜单,level,menu,choice,current,3.26,print
From: https://www.cnblogs.com/szm123/p/18256819

相关文章

  • 2024.3.26(周二)进度
    完成python作业6-2计算素数和本题要求计算输入两个正整数x,y(x<=y,包括x,y)素数和。函数isPrime用以判断一个数是否素数,primeSum函数返回素数和importmathdefprimeSum(x,y):MAX_INT=yMIN_INT=xmarks_bool=[True]*(MAX_INT+1)foriinrange(2,in......
  • 3.26
    所花时间:4h代码行:300博客量:2学到的知识:创建Web服务:在服务器端创建一个Web服务,用于处理Android应用程序发送过来的请求,并与MySQL数据库进行交互。配置网络权限:在Android应用程序的清单文件(AndroidManifest.xml)中添加网络权限,以允许应用程序与Web服务进行通信。示例代码如......
  • 【图论】3.26学习记录 最短路/最长路 次短路
    最短路:SPFA:特点:代码短好写,负权边必备,可以判环,容易被卡成O(nm);code:#include<bits/stdc++.h>usingnamespacestd;#defineintlonglongconstintMAXN=5e5+10;constintinf=2147483647;intdist[MAXN];intvis[MAXN];vector<pair<int,int>>e[MAXN];si......
  • 算法模板收集 (截至2024.3.26)
    准备线下比赛用的模板,会一直更新,但更新频率不高。找个代码托管平台放一下或许更合适,不过暂时没心思做这个。小提示:点击任意标题旁边的“显示目录导航”,再点击右上角的图钉可以固定目录。约定:所有区间操作都是在闭区间上进行的。编译器要支持gnu++11标准基本框......
  • 3.26
    今天老师给了我们组队,所以我需要对接下来的一周做一下规划,我帮扶的对象只连接了本地数据库,所以需要教会他连接远程数据库mysql,因为我自己学的是安卓连接后端连接mysql数据库,但是对于他来说这个似乎更麻烦,不巧的是对于安卓直接连mysql我也不太会,所以我还需要自己学,其实也就是对于为......
  • 3.26博客
    作业根据地域属性实现数据的可视化展示,可以看到省-市-区县三级数据下钻呈现的项目数量name为null的时候value显示为NAN因为地图该区域在数据库中没有匹配的name,所以这里count(*)直接为null,显示NAN; b->namec-<value 之前在select那里判空,没用,后来想起了地图部分在数据库......
  • 3.26毕设
    安装vite之后,”tsconfig.app.json“文件报错 鼠标移动到报错的红色下划线位置,出现错误提示“JSONschemafortheTypeScriptcompiler’sconfigurationfileOption‘–resolveJsonModule’cannotbespecifiedwithout‘node’moduleresolutionstrategy.ts”根据报......
  • 就业班 第二阶段 2401--3.26 day6 Shell初识 连接vscode
    远程连接vs_code可能出现的问题C:\Users\41703\.ssh验证远程主机的身份,如果连不上vscode,可以尝试删除这里面的公钥代码。重新安装那个扩展,排除扩展本身的问题谁连过我,并操作了什么curlhttps://gitea.beyourself.org.cn/newrain001/shell-project/raw/branch/master......
  • 2024.03.26
    周二之醍醐灌顶,前四周被MySQL高版本耽误时间,没能跟上进度。今天和一位王同学结对,经过他的讲解和演示,我完成了基础阶段。之前深受csdn毒害,教程新建项目都是选择EmptyActivity,但是项目目录中却和我的对不上,今天才得知要选择EmptyViewsActivity。代码时间2h,环境配置成功,数据......
  • 2024.03.26【版面编排】8种常见的排版构图样式,这不得多学几种
    在咱们设计之前,对元素的大致位置的构想构思叫做构图而画面的元素往往是由图片、文字和符号充当排版时就需要通过对这些元素的合理编排来达到最好的效果1.居中构图:顾名思义,我们需要将重要的元素以及主要传达的信息放置于此,让它站画面的C位,这样会使信息传达变得高效2.对称构......