多级菜单(高效版)

Readme文件:

| -----------------------------|
| 程序名称:三级菜单层级切换 |
| -----------------------------|

细节功能:
1.用户输入当前层选项并回车后,进入下一层
2.本程序总共三层
3.每次按b可以返回上一层
4.本程序特点是每循环一次后将值再赋于自己重新循环,从而实现简短代码实现多级菜单操作
--------------------------------------------------------------------------------
程序运行:
1. 运行前需要menu.txt文件存在(即三级菜单文件,其存储格式为字典)
2. 直接运行Third_menu程序即可
--------------------------------------------------------------------------------

#######################################
作者:王承祥
联系方式1:13552310609
联系方式2:dslmoon@163.com
我的博客:https://www.cnblogs.com/wangcx
#######################################

menu文件:

{"广州": {'天河': ['天河体育馆', '金山大夏'],'越秀': ['越秀公园', '光孝寺'],'番禺': ['长隆欢乐世界', '大夫山']},"深圳": {'福田': ['莲花山', '赛格'],'龙华': ['元山公园', '龙城广场'],'南山': ['世界之窗', '欢乐谷']},"佛山": {'禅城': ['梁园', '孔庙'],'南海': ['千灯湖', '南国桃园'],'顺德': ['清晖园', '西山庙']}}

Third_menu文件(主程序):

# -*-coding:utf-8-*-
# _Author_:George

level = []
with open("menu.txt","r",encoding="utf-8") as f:
    for line in f:
        line = eval(line)

        while True:
            for key in line:
                print(key)
            choice = input("choice>>").strip()
            if choice == "b":
                if len(level) == 0:
                    break
                line=level[-1]
                level.pop()
            if len(choice) == 0 or choice not in line:
                continue
            level.append(line)
            line = line[choice]
原文地址:https://www.cnblogs.com/wangcx/p/8094295.html