python--多级菜单(多级登录)

1、简单繁多版(未优化之前):

#__author:  liangchen     Date:   2019/8/15
menu = {
        "江西":{
            "南昌":{
                "南昌西站":{},
                "东湖区":{}
            },
            "吉安":{
                "永丰":{},
                "吉水":{}
            },
},
        "上海":{
            "嘉定":{
                "城区":{},
                "嘉定新城":{}
            },
            "徐汇":{
                "复旦大学":{},
                "徐家汇站":{}
            }
        },
        "广东":{
            "东莞":{
                "东莞站":{},
                "白石山":{}
            },
            "惠州":{
                "惠州站":{},
                "人字冈":{}
            }
        }
        }
flag = True
while True and flag:
    for i in  menu:
        print(i)
    select1 = input("请选择地点(退出:q):").strip()
    if select1 == 'q':
        flag = False
    while True and flag:    #使程序在第二层循环
        if select1 in menu:
            for i in menu[select1]:
                print(i)
            select2 = input("请选择地点(返回上一层:b,退出:q):").strip()
            if select2 == 'b':
                break
            if select2 == 'q':
                flag = False
            while True and flag:        #使程序在第三层循环
                if select2 in menu[select1]:
                    for i in menu[select1][select2]:
                        print(i)
                    select3 = input("请选择地点(返回上一层:b,退出:q):").strip()
                    if select3 in menu[select1][select2]:
                        print("welcome you come to %s!"%select3)
                    if select3 == 'b':
                        break
                    if select3 == 'q':
                        flag = False

2、简易优化版

#__author:  liangchen     Date:   2019/8/15
menu = {
        "江西":{
            "南昌":{
                "南昌西站":{},
                "东湖区":{}
            },
            "吉安":{
                "永丰":{},
                "吉水":{}
            },
},
        "上海":{
            "嘉定":{
                "城区":{},
                "嘉定新城":{}
            },
            "徐汇":{
                "复旦大学":{},
                "徐家汇站":{}
            }
        },
        "广东":{
            "东莞":{
                "东莞站":{},
                "白石山":{}
            },
            "惠州":{
                "惠州站":{},
                "人字冈":{}
            }
        }
        }
current_layer = menu
parent_layers = []      #存放父级菜单
while True:
    for key in current_layer:
        print(key)
    select = input(">>>>").strip()
    if select in current_layer:
        parent_layers.append(current_layer)  #追加父级菜单
        current_layer = current_layer[select]
    elif select == "b":
        if parent_layers:
            current_layer = parent_layers.pop()

  

转载于:https://www.cnblogs.com/liang-chen/p/11359057.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值