zoukankan      html  css  js  c++  java
  • 多级菜单(高效版)

    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]
  • 相关阅读:
    EMV内核使用中的常见问题
    SM2国密证书合法性验证
    WP8.1中C++的winodws运行时组件位移操作的差异
    [源码]Literacy 快速反射读写对象属性,字段
    Vue 单文件元件 — vTabs
    vue-router路径计算问题
    前端跨域新方案尝试
    Vue 单文件原件 — vCheckBox
    JavaScript 功能类 Url.js
    Vue 学习笔记 — 组件初始化
  • 原文地址:https://www.cnblogs.com/wangcx/p/8094295.html
Copyright © 2011-2022 走看看