增补博客 第四篇 python 中文级联菜单
from pypinyin import pinyin, Style # 定义菜单项和对应的子菜单
menu = {
"文件": {
"新建": {},
"打开": {},
"保存": {}
},
"编辑": {
"撤销": {},
"重做": {},
"剪切": {},
"复制": {},
"粘贴": {}
},
"视图": {
"查看": {
"大图标": {},
"小图标": {},
"列表": {},
"详细信息": {}
}
},
"帮助": {
"查看帮助": {},
"关于": {}
}
} def print_menu(menu, level=0):
for key, value in menu.items():
# 打印菜单项名称
print(" " * level + key) # 打印子菜单
if value:
print_menu(value, level + 1) def print_pinyin_menu(menu, level=0):
for key, value in menu.items():
# 将中文转换成拼音
pinyin_name = ''.join(pinyin(key, style=Style.NORMAL, heteronym=False)[0]) # 打印菜单项名称和拼音
print(" " * level + key + " (" + pinyin_name + ")") # 打印子菜单
if value:
print_pinyin_menu(value, level + 1) print("========= 中文菜单 =========")
print_menu(menu) print("\n========= 拼音菜单 =========")
print_pinyin_menu(menu)

增补博客 第四篇 python 中文级联菜单的更多相关文章
- 一鼓作气 博客--第四篇 note4
1.元祖允许重复数据.只读元组,列表,元祖没有增删改查,比如身份证列表,不允许修改,就存成 元祖. 2. 字典 key-value对 特性: 无顺序 去重 查询速度快,比列表快多了 比list占用内存 ...
- Scrum 冲刺博客第四篇
一.当天站立式会议照片一张 二.每个人的工作 (有work item 的ID),并将其记录在码云项目管理中 昨天已完成的工作 新建立了一个list页面用来显示题目,并且创建了列表用来进行题目的存放,将 ...
- 基于 abp vNext 和 .NET Core 开发博客项目 - 博客接口实战篇(四)
系列文章 基于 abp vNext 和 .NET Core 开发博客项目 - 使用 abp cli 搭建项目 基于 abp vNext 和 .NET Core 开发博客项目 - 给项目瘦身,让它跑起来 ...
- [转]有哪些值得关注的技术博客(Java篇)
有哪些值得关注的技术博客(Java篇) 大部分程序员在自学的道路上不知道走了多少坑,这个视频那个网站搞得自己晕头转向.对我个人来说我平常在学习的过程中喜欢看一些教程式的博客.这些博客的特点: 1. ...
- Django搭建博客网站(四)
Django搭建博客网站(四) 最后一篇主要讲讲在后台文章编辑加入markdown,已经在文章详情页对markdown的解析. Django搭建博客网站(一) Django搭建博客网站(二) Djan ...
- # Do—Now——团队冲刺博客_总结篇
Do-Now--团队冲刺博客_总结篇 目录 博客链接 作者 1. 第一篇(领航篇) @仇夏 2. 第二篇 @侯泽洋 3. 第三篇 @仇夏 4. 第四篇 @周亚杰 5. 第五篇 @唐才铭 6. 第六篇 ...
- Django 系列博客(四)
Django 系列博客(四) 前言 本篇博客介绍 django 如何和数据库进行交互并且通过 model 进行数据的增删查改 ORM简介 ORM全称是:Object Relational Mappin ...
- BUAA_OO_博客作业四
BUAA_OO_博客作业四 1 第四单元两次作业的架构设计 1.1 第13次作业 类图 作业要求:通过实现UmlInteraction这个官方提供的接口,来实现自己的UmlInteraction解 ...
- 第四篇.python的基础
目录 第四篇.python基础01 1. 变量 2. 常量 3. python变量内存管理 4. 变量的三个特征 5. 花式赋值 6. 注释 7. 数据类型基础 8. 数字类型 9. 字符串类型 10 ...
- 基于 abp vNext 和 .NET Core 开发博客项目 - 博客接口实战篇(五)
系列文章 基于 abp vNext 和 .NET Core 开发博客项目 - 使用 abp cli 搭建项目 基于 abp vNext 和 .NET Core 开发博客项目 - 给项目瘦身,让它跑起来 ...
随机推荐
- MaxCompute 公共云多租户设计的技术要点详解及产品实现特色
简介:公共云大数据平台在多租户的设计和实现方式上有所差异.本文主要介绍在公共云大数据平台的多租实现方案中需要考虑的问题和挑战,重点介绍了MaxCompute在计算和存储多租实现上的特点.期望通过这些 ...
- 人人都是 Serverless 架构师 | 现代化 Web 应用开发实战
简介:本篇实战将介绍如何以超低成本构建动态的 Web 站点,并且实现灵活扩展,限流等效果,最后再跟大家聊一聊"现代应用"的相关概念. 相信很多同学都有过想要拥有自己的 Web 站 ...
- 阿里云全站加速DCDN重磅升级
简介:相比传统CDN加速,全站加速DCDN具有更广阔的应用场景.在当下企业全面数字化的进程中,为了更全面地满足广大企业客户的个性化加速需求,全站加速DCDN从简单开通到个性化定制.从内容分发到安全防 ...
- Win32 使用 CreateProcess 方法让任务管理器里的命令行不显示应用文件路径
本文记录一个 Win32 的有趣行为,调用 CreateProcess 方法传入特别的参数,可以让任务管理器里的命令行不显示应用文件路径 开始之前,先看看下面这张有趣的图片 可以看到我编写的 Svca ...
- WPF 优化 EnsureHandle 启动性能
本文将记录一个在 WPF 应用程序启动过程中的性能优化点.如果一个窗口需要设置 WindowStyle 属性,那么在窗口 EnsureHandle 之前,设置 WindowStyle 属性将会比在 E ...
- vue项目上线前优化(路由懒加载的使用,外部CDN的使用)
引 当使用vue做完项目后,接下来当然是要进行线上部署了.但是在上线之前还是可以做很多方面优化的,可以让项目上线后的体验更加哦. 若是使用了vue-cli的话,可以从面板界面直观的看到各项数据,控制台 ...
- 深入了解 Java 字节码
1.1 什么是字节码? Java 在刚刚诞生之时曾经提出过一个非常著名的口号: "一次编写,到处运行(write once,run anywhere)",这句话充分表达了软件开发人 ...
- kali 的 vim 中不能粘贴复制
kali 的 vim 中不能粘贴复制 进入 vim 命令行模式,输入 :set mouse=c 之后可以正常粘贴复制
- 抛砖系列之文本处理工具-awk
AWK是一个优良的文本处理工具,Linux及Unix环境中现有的功能最强大的数据处理引擎之一.这种编程及数据操作语言(其名称得自于它的创始人阿尔佛雷德·艾侯.彼得·温伯格和布莱恩·柯林汉姓氏的首个字母 ...
- 01.windows 环境设置
windows下可以安装Git工具, 使用git bash操作 Windows 10 环境下,通过-/.bash_profile 设置 git bash 别名: 打开 git bash,需切换到当前用 ...