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

python编写一个三级while的循环菜单

1.定义字典,字典里面嵌套字典,内嵌字典的值为列表。

思路:

湖北省的市:字典中的定义3个字典,用于存储

{序列-键:市名}
shiqu_dir = {}
{序列-键:县}
xian_dir ={}
{序列-键:街道}
jiedao_dir = {}
函数将序列和键一一对应。
for number,key in enumerate(Hbei_map.keys())  获取序列键和市名存储到 市名字典

用一个列表 chose = [] 来存储所选择的市--县程-街道
chose[0],chose[1],chose[2]最后使用切片返回

中间输入全部使用的判断方式for循环: for k,v in xxx.items():                     if input == k:让用户只能输入序列中的数字。使用判断语句:
  if int(input) not in 字典.keys():      print("您输入了非法的序列,请输入一下序列 {}".format(shiqu_list))

# -*- coding: utf-8 -*-
__author__ = ‘hujianli‘
import sys
Hbei_map = {
    "武汉市":{
        "江岸区":["上海街","大智街","一元街","车站街","四唯街","永清街","球场街","西马街","台北街","劳动街","花桥街","后湖街","谌家矶街"],
         "硚口区":["易家墩街道","韩家墩街道","宗关街道","汉水桥街道","宝丰街道","荣华街道","崇仁街道","汉中街道"],
         "武昌区":["积玉桥街道","杨园街道","徐家棚街道","新河街道"]
    },

    "荆州市":{
        "沙市区":["黄石港","崇文街道","解放路街道"],
        "荆州区":["城南街道","西城街道","东城街道","马山镇","川店镇"],
        "松滋市":["新江口镇","南海镇","八宝镇","陈店镇"],
        "公安县":["斗湖堤镇","埠河镇","杨家厂镇","斑竹垱镇"],
        "监利县":["容城镇","白螺镇","朱河镇"]

    },
    "孝感市":{
        "孝南区":["肖港镇","书院街道","车站街道","新华街道"],
        "应城市":["城中街道","城北街道","杨河镇","三合镇"],
        "安陆市":["李店镇","巡店镇","雷公镇","陈店乡"],

    },
}
# print(Hbei_map["孝感市"]["应城市"])
shiqu_dir = {}
xian_dir ={}
jiedao_dir = {}

def jiance(name):
    if len(name) == 0:
        sys.exit("\033[31;1m选择不能为空,清重新输入~~\033[0m")
    elif shiqu == "quit" or shiqu == "exit":
        sys.exit("\033[31;1m 退出程序,三级菜单退出~~ \033[0m")
    else:
        return True

print("==============================================================================================================")
print("湖北省下面的市区如下: ")
for number,key in enumerate(Hbei_map.keys()):
    print(str(number+1) + ": " + str(key))
    shiqu_dir[number+1] = key

chose = []
shiqu_list = [x+1 for x in range(len(shiqu_dir.keys()))]

while True:
    print("==========================================================================================================")
    shiqu = input("请输入您要查询的市区所对应的序列号,输入exit或者quit自动会退出.:")
    jiance(shiqu)
    if int(shiqu) not in shiqu_dir.keys():
        print("您输入了非法的序列,请输入一下序列 {}".format(shiqu_list))
    else:
        for keys,vlaue in shiqu_dir.items():
            if int(shiqu) == keys:
                chose = []
                chose.append(vlaue)
                print("================================================================================================")
                print("该市区下面的县级市或者片区域,县城列表如下:")

                for number,keys_xian in enumerate(Hbei_map[vlaue].keys()):
                    print(str(number+1)+ ":" + str(keys_xian))
                    xian_dir[number+1] = keys_xian

                while True:
                    print("=============================================================================================")
                    xian = input("请输入要查询的县城所对应的序列号,quit/exit退出: ")
                    jiance(xian)
                    xian_list = [x+1 for x in range(len(xian_dir.keys()))]
                    if int(xian) not in xian_dir.keys():
                         print("您输入了非法的序列,请输入一下序列 {}".format(xian_list))
                    else:
                        for k,v in xian_dir.items():
                            if int(xian) == k:
                                chose.append(v)

                        jiedao_li = Hbei_map[chose[0]][chose[1]]
                        for k,v in enumerate(jiedao_li):
                            print(str(k+1) + ": " + str(v))
                            jiedao_dir[k+1] = v

                        while True:
                            print("=====================================================================================")
                            jiedao = input("请输入街道所对应的序列号 退出请输入quit/exit: ")
                            jiance(jiedao)
                            jiedao_list = [x+1 for x in range(len(jiedao_dir.keys()))]
                            if int(jiedao) not in jiedao_dir.keys():
                                print("您输入了非法的序列,请输入一下序列 {}".format(jiedao_list))
                            else:
                                for k,v in jiedao_dir.items():
                                    if int(jiedao) == k:
                                        chose.append(v)
                                        print("=================================================================================")
                                        print("\033[35;1m你选择的市:%s 县城是:%s 街道是:%s\033[0m"%(chose[0],chose[1],chose[2]))
                                        print("===================================================================================")
                            break
                        break
        break

				
时间: 2024-10-18 10:34:55

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

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 三级菜单与优化(一层循环嵌套)

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

python三级菜单

需求: 编写三级菜单     1.菜单需求:         一级菜单:            北京                                  山西         二级菜单:    朝阳                昌平               长治           大同         三级菜单:三里屯    工体       沙河  西二旗       潞城  黎城     阳高县  左云县     2.任何一级都可以输入b返回上一级,输入q退出.    

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

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

python三级菜单例题

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

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