python三级菜单

需求:

编写三级菜单
    1.菜单需求:
        一级菜单:            北京                                  山西
        二级菜单:    朝阳                昌平               长治           大同
        三级菜单:三里屯    工体       沙河  西二旗       潞城  黎城     阳高县  左云县
    2.任何一级都可以输入b返回上一级,输入q退出。
    3.知识涵盖字典、列表、for循环、while循环、字符串格式化

流程图:

python代码

#!/bin/bash/env python
#python3.X

#定义三级菜单字典zone
zone = {
    ‘北京‘:{
        ‘朝阳‘:[‘三里屯‘,‘工体‘ ],
        ‘昌平‘:[‘沙河‘,‘西二旗‘ ]
    },
    ‘山西‘:{
        ‘长治‘:[‘潞城‘, ‘黎城‘ ],
        ‘大同‘:[‘阳高县‘,‘左云县‘]
    }
}
#定义省级列表
province_list = list(zone.keys())
#打印省级列表循环
while True:
    print("欢迎光临省级列表".center(20,‘-‘))
    #循环省级列表
    for i in province_list:
        #打印省级列表序号和省级名称
        print(province_list.index(i)+1,i)
    #提示输入
    p1 = input("请选择序号:例:1  [输入q:退出]")
    #判断输入的是否全是数字
    if p1.isdigit():
        #如果输入的是数字,用int进行强制转换成整形
        p1 = int(p1)
        #如果p1 大于0或者小于等于省级列表的参数数量
        if p1 >0 and p1 <= len(province_list):
            #求出省级名称
            province_name = province_list[p1-1]
            #求出省级下边的市级列表
            city_list = list(zone[province_name].keys())
            #打印市级列表循环
            while True:
                print("欢迎光临市级列表".center(20, ‘-‘))
                #循环市级列表
                for c in city_list:
                    #打印市级列表序号和市级列表名称
                    print(city_list.index(c)+1,c)
                #提示输入
                c1 = input("请选择序号:例:1 [输入b:返回上一级][输入q:退出]")
                #判断是否输入的是数字
                if c1.isdigit():
                    c1 = int(c1)
                    #如果输入的序号在市级列表序列之内,打印列表,不在,告知不在。
                    if c1 >0 and c1 <= len(city_list):
                        #求出市级列表的名称
                        city_name = city_list[c1-1]
                        #求出市级下边的县级列表:
                        county_list = list(zone[province_name][city_name])
                        #县级列表循环
                        while True:
                            print("欢迎光临县级列表".center(20,"-"))
                            #循环县级列表
                            for c2 in county_list:
                                #打印县级列表
                                print(county_list.index(c2)+1,c2)
                            #提示输入
                            c2 = input("请输入相应符号:[输入b:返回上一级][输入q:退出]")
                            #如果输入是b 退出这个循环
                            if c2 == "b":
                                break
                            #如果输入的是q 退出整个循环
                            elif c2 == "q":
                                #exit() 代表退出整个循环
                                exit()
                            #如果输入的不是b、q 就提示重新输入
                            else:
                                print("\033[31m输入错误,Please re-enter!\033[0m")
                    else:
                        print("\n输入的序号%d不在此列表中!Please RE-enter!\n"%c1)
                #如果输入的是b 退出这个循环
                elif c1 == "b":
                    break
                #如果输入的是q 退出整个程序
                elif c1 == "q":
                    exit()
                #如果输入的不是数字、b 、q 那么提示 重新输入
                else:
                    print("\033[31m输入错误,Please re-enter!\033[0m")
        else:
            print("\n输入的%d不在此列表中!Please RE-enter!\n"%p1)
    #如果不是数字,看是否是 字母q
    elif p1 == "q":
        #如果是q 执行exit()退出整个程序
        exit()
    #如果输入的不是数字和q,提示重新输入
    else:
        print("\033[31m输入错误,Please re-enter!\033[0m")
时间: 2024-10-22 02:52:07

python三级菜单的相关文章

Python 三级菜单

Python 三级菜单 需求 打印省.市.县三级菜单 可返回上一级 可随时退出程序 代码实现 1 menu = { 2 '北京':{ 3 '海淀':{ 4 '五道口':{ 5 'soho':{}, 6 '网易':{}, 7 'google':{} 8 }, 9 '中关村':{ 10 '爱奇艺':{}, 11 '汽车之家':{}, 12 'youku':{}, 13 }, 14 '上地':{ 15 '百度':{}, 16 }, 17 }, 18 '昌平':{ 19 '沙河':{ 20 '老男孩':

python三级菜单优化

python三级菜单优化,菜鸟版链接:http://www.cnblogs.com/xuyaping/p/6648170.html menu = { '北京':{ '海淀':{ '五道口':{ 'soho':{}, '网易':{}, 'google':{} }, '中关村':{ '爱奇艺':{}, '汽车之家':{}, 'youku':{}, }, '上地':{ '百度':{}, }, }, '昌平':{ '沙河':{ '老男孩':{}, '北航':{}, }, '天通苑':{}, '回龙观':

python 三级菜单 while循环三次,湖北省市-县-街道的选择,3个while的循环 -day2

python编写一个三级while的循环菜单 1.定义字典,字典里面嵌套字典,内嵌字典的值为列表. 思路: 湖北省的市:字典中的定义3个字典,用于存储 {序列-键:市名} shiqu_dir = {} {序列-键:县} xian_dir ={} {序列-键:街道} jiedao_dir = {} 函数将序列和键一一对应. for number,key in enumerate(Hbei_map.keys()) 获取序列键和市名存储到 市名字典 用一个列表 chose = [] 来存储所选择的市-

Python 三级菜单与优化(一层循环嵌套)

优化的思路是使用单层循环嵌套完成三级菜单,这个优化思路我非常喜欢,我喜欢在编程的时候用最少的东西写出同样的效果,通常这样会绕来绕去,但非常有趣!!! 需求: 1.运行程序输出第一级菜单: 2.选择一级菜单某项,输出二级菜单,同理输出三级菜单: 3.让用户选择是否要退出: 4.有返回上一级菜单的功能: 多层循环嵌套: data = { 'A':{ "Aa":['Aa1','Aa2','Aa3'], "Ab":['Ab1','Ab2','Ab3'], "Ac&

python三级菜单例题

打印省.市.县三级菜单 可返回上一级 可随时退出程序 __author__ = "Alex Li" data = { '北京':{ "昌平":{ "沙河":["oldboy","test"], "天通苑":["链家地产","我爱我家"] }, "朝阳":{ "望京":["奔驰","

Python 三级菜单-字符编码和转码-集合的操作-文件的操作

三级菜单: menu = { '北京':{ '海淀':{ '五道口':{ 'soho':{}, '网易':{}, 'google':{} }, '中关村':{ '爱奇艺':{}, '汽车之家':{}, 'youku':{}, }, '上地':{ '百度':{}, }, }, '昌平':{ '沙河':{ '老男孩':{}, '北航':{}, }, '天通苑':{}, '回龙观':{}, }, '朝阳':{}, '东城':{}, }, '上海':{ '闵行':{ "人民广场":{ '炸鸡店

python三级菜单的实现

#!/usr/bin/env python# -*- coding: utf-8 -*-# @Time : 2017-05-20 2:43# @Author : wlgo2108# @Site : # @File : Menu01.py# @Software: PyCharm# @Email : [email protected] import reimport sys menu = { "M:主菜单":{ "L:登录管理":{ "LU:修改密码"

简单练习:Python三级菜单优化

1 menu = { 2 '北京':{ 3 '海淀':{ 4 '五道口':{ 5 'soho':{}, 6 '网易':{}, 7 'google':{} 8 }, 9 '中关村':{ 10 '爱奇艺':{}, 11 '汽车之家':{}, 12 'youku':{}, 13 }, 14 '上地':{ 15 '百度':{}, 16 }, 17 }, 18 '昌平':{ 19 '沙河':{ 20 '北航':{}, 21 }, 22 '天通苑':{}, 23 '回龙观':{}, 24 }, 25 '朝阳

python三级菜单练习

需求:可依次选择进入各子菜单可从任意一层往回退到上一层可从任意一层退出程序 所需新知识点:列表.字典 1 # -*- coding:utf-8 -*- 2 # Author:Xiaorui 3 # 需求: 4 # 可依次选择进入各子菜单 5 # 可从任意一层往回退到上一层 6 # 可从任意一层退出程序 7 # 所需新知识点:列表.字典 8 menu = { 9 '北京': { 10 '海淀': { 11 '五道口': { 12 'soho': {}, 13 '网易': {}, 14 'googl