• python作业三级菜单day1(第一周)


    一.作业需求:

    1. 运行程序输出第一级菜单

    2. 选择一级菜单某项,输出二级菜单,同理输出三级菜单

    3. 菜单数据保存在文件中

    4. 让用户选择是否要退出

    5. 有返回上一级菜单的功能

    二三级菜单文件内容:

    {
        '北京':{
            "昌平":{
                "沙河":["oldboy"],
                "天通苑":["链家地产","我爱我家"]
            },
            "朝阳":{
                "望京":["奔驰","陌陌"],
                "国贸":{"CICC","HP"},
                "东直门":{"Advent","飞信"},
            },
            "海淀":{},
        },
        '山东':{
            "德州":{"扒鸡"},
            "青岛":{"啤酒"},
            "济南":{"趵突泉"}
        },
        '广东':{
            "东莞":{"有小姐姐~~"},
            "常熟":{"我也不知道是什么"},
            "佛山":{"无影脚"},
        },
    }
    View Code

    代码:

    #!/usr/bin/env python
    # -*- coding:utf-8 -*-
    # Author: Colin Yao
    import sys
    with open('three','r',encoding='utf-8') as f:
        file = f.read()
        for lines in file:
            f_str =str(file)
        data = eval(f_str)
    
    def list():
        for i in data:
            print(i)
    def chos1(choice1):
        while choice1 != 'q':
            global one
            one = choice1
            if choice1 in data:
                for i2 in data[one]:
                    print("	", i2)
                chos2(input("请输入第二层:"))
                break
            else:
                error = input("输入错误,请重新输入第一层:")
                if error == 'q':
                    sys.exit()
                else:
                    chos1(error)
        else:
            sys.exit()
    
    
    def chos2(choice2):
        while choice2 != 'q':
            global two
            two = choice2
            if choice2 in data[one]:
                for i3 in data[one][two]:
                    print("		", i3)
                chos3(input("请输入第三层:"))
                break
            elif choice2 == 'b':
                list()
                chos1(input("请输入第一层:"))
                break
            else:
                error2 = input("输入错误,请重新输入第二层:")
                if error2 == 'q':
                    sys.exit()
                else:
                    chos2(error2)
        else:
            sys.exit()
    
    
    def chos3(choice3):
        while choice3 != 'q':
            global three
            three = choice3
            if choice3 in data[one][two]:
                for i4 in data[one][two][three]:
                    print("			", i4)
                chos4(input("最后一层,退回上一层请按‘b’,退出请按'q"))
                break
            elif choice3 == 'b':
                chos1(one)
                break
            else:
                error3 = input("输入错误,请重新输入第三层:")
                if error3 == 'q':
                    sys.exit()
                else:
                    chos3(error3)
        else:
            sys.exit()
    
    
    def chos4(choice4):
        while choice4 != 'q':
            if choice4 == 'b':
                chos2(two)
            else:
                chos4(input("最后一层了,退回上一层请按‘b’,退出请按'q'"))
        else:
            sys.exit()
    
    
    print("退出请按'q',返回上级菜单请按'b,第一层不能使用返回'")
    list()
    chos1(input("请输入第一层:"))
    View Code

    可以一次循环搞定

    待补充ing

  • 相关阅读:
    继续学习:C语言关键字
    继续学习C:运算符
    C语言小程序(八)、统计字母个数
    C语言小程序(七)、石头剪刀布
    飞思卡尔总结
    [原]NYOJ-子串和44
    C++函数重载详解
    趣味Shell
    C语言小程序(六)、数组操作
    C语言小程序(五)、数组查询
  • 原文地址:https://www.cnblogs.com/sean-yao/p/7679349.html
Copyright © 2020-2023  润新知