第一周作业-三级菜单

news/2025/6/19 18:21:25
1. 运行程序输出第一级菜单
 

2. 选择一级菜单某项,输出二级菜单,同理输出三级菜单

 

3. 菜单数据保存在文件中

 

4. 让用户选择是否要退出

 

5. 有返回上一级菜单的功能


1
#coding:utf-8 2 #Author:Mr Zhi 3 file_o = open("menu",'r',encoding="utf-8") #打开三级菜单文件 4 menu= eval(file_o.read()) #把打开后的文件内容转换成字典(文件内容原本是字典) 5 def out(): #频繁使用的代码定义个函数 6 file_o.close() #关闭打开的文件 7 exit() #退出程序 8 for i in menu: #遍历菜单menu字典 9 print(i) #输出字典菜单
continue
10 while True: #开始while循环 11 choice = input("输入地区(按q退出,b返回上层):") #输入地区 12 if choice == "q": #判断输入chice值是否为q 13 out() #执行函数 14 if choice == "b": #判断输入chice值是否为b 15 print("已是第一层") 16 if choice not in menu or len(choice) == 0 and choice != "b": #判断输入choice值在菜单文件中或输入choice不等于b 17 print("你输入有误,请重新输入") 18 if choice in menu: #p判断输入choice是否在menu中 19 for i in menu[choice]: #遍历menu[choice] 20 print(i) 21 choice2 = input("输入省区(按q退出,b返回上层):") #输入结果 22 if choice2 not in menu[choice] and choice2 != "b":#判断输入choice2 不在字典中和不等于b 23 print("你输入有误,请重新输入") 24 if choice2 in menu[choice]: #判断 25 for i2 in menu[choice][choice2]: #遍历字典 26 print(i2) 27 print("最后一层菜单,下面没有了") 28 if choice2 == "q": #判断 29 out() 30 if choice2 == "b":#判断 31 continue #继续循环



 1 #三级菜单优化版
 2 #coding:utf-8
 3 #Author:Mr Zhi
 4 menu_f = open("menu",'r',encoding="utf-8")
 5 menu = eval(menu_f.read())
 6 l = []
 7 while True:
 8     for key in menu:  #遍历字典
 9         print(key)     #打印出键值,也就是父字典
10     choice = input("input your choice:").strip()  #
11     if choice == "q": #判断退出
12         menu = l[-1]  #赋值menu菜单等于列表的最后一个列表元素,把一个字典加到列表中
13         l.pop()  #清空列表
14     if len(choice) == 0 or choice not in menu: continue #判断不输入或者输入不在字典中时继续运行程序
15     l.append(menu)  #把字典加到列表
16     menu = menu[choice]  #重新复制选择的字典名称
 

 

 

转载于:https://www.cnblogs.com/wenwei-blog/p/6849963.html


https://dhexx.cn/news/show-2257071.html

相关文章

bdd java_Java的BDD框架之间有什么区别?

我刚刚完成了比较三个BDD框架的Java。显然我的发现有一个相当短的使用期限。>非常灵活>非常漂亮的报表输出>好的插件框架>记录不良。我不得不读的来源,以计算出来(幸运的是,它非常好的质量)。>装置似乎可能最终紧密耦合到html。>非常浅…

成绩图表JAVA_求大神帮忙看一下这段java代码怎么能让记录学生成绩的表格显示出来啊?...

展开全部你没有给table赋值。代码如下即可package student.UI;import java.awt.BorderLayout;import java.awt.Color;import java.awt.Dimension;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import java.awt.event.WindowAdapter;import java.aw…

结对编程之四则运算——第一阶段报告

前言感谢 感谢老师能够带给我们结对编程这一机会,我相信两个人的智慧互相交织会产生不可思议的成果的,我也相信我们的程序将会越做越好。 需求分析 首先用户是我将要测试的对象,我认为这个程序的最终版本需要达到: 1要让测试者知晓…

delimiter 与 存储过程

1.如此执行语句不行,需要在 delimiter IF not EXISTS (SELECT*FROMinformation_schema. COLUMNSWHEREtable_schema thc_rcmAND table_name Cs_AccountBillDetailAND column_name shopSetItemId) THENALTER TABLE thc_rcm.Cs_AccountBillDetailADD COLUMN shopSet…

java实现word下载_JAVA实现Word/Excel读写

概述介绍Apache poi的hwpf模块是专门用来对word doc文件进行读写操作的。在hwpf里面我们使用HWPFDocument来表示一个word doc文档。在HWPFDocument里面有这么几个概念:Range:它表示一个范围,这个范围可以是整个文档,也可以是里面的…

Linux下实现免密码登录

1.Linux下生成密钥 ssh-keygen的命令手册,通过”man ssh-keygen“命令: 通过命令”ssh-keygen -t rsa“ 生成之后会在用户的根目录生成一个 “.ssh”的文件夹 进入“.ssh”会生成以下几个文件 authorized_keys:存放远程免密登录的公钥,主要通过这个文件记…

java实验6 词频统计_JAVA实训一——词频统计

实验小组:领航员:16012012张志贤 组员:16012014李鑫码云地址:https://gitee.com/lixin-123/practical_training实验背景:本次实验,是由小组内两人完成。按照要求,和一个伙伴坐在一起&#xf…

React 单元测试策略及落地 #一篇就够系列

写好的单元测试,对开发速度、项目维护有莫大的帮助。前端的测试工具一直推陈出新,而测试的核心、原则却少有变化。与产品代码一并交付可靠的测试代码,是每个专业开发者应该不断靠近的一个理想之地。本文就围绕测试讲讲,为什么我们…

java调用dubbo服务接口_Dubbo使用invoke指令来调用dubbo接口

Dubbo使用invoke指令来调用dubbo接口前言最近被分配了一个任务,是通过dubbo的方式对外提供服务,dubbo没有我们一般的web项目中的Controller层,所以没有办法通过http的方式进行调用调试。作为萌新的我,确实有点一筹莫展&#xff0c…

设置redis 密码

redis配置密码 1.通过配置文件进行配置 yum方式安装的redis配置文件通常在/etc/redis.conf中,打开配置文件找到 [plain] view plain copy requirepass foobared 去掉行前的注释,并修改密码为所需的密码,保存文件 [plain] view plain copy requirepass my…