python作业5:多级菜单

Posted welljoy

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python作业5:多级菜单相关的知识,希望对你有一定的参考价值。

# 作业5:多级菜单
# ● 三级菜单,省、市、县、公司,要求程序启动后,允许用户依次选择进入各子菜单
# ● 可以在任意一级菜单返回上级菜单,也可以退出程序
# ● 所需新知识点:列表、字典
#
# 思路:
# 先创字典,字典三层嵌套
#逐层提取key字段,
#先不管各种可能,把主程序写好,即各种选择都是好好的情况下能实现的功能,再补充各种可能
#这个地方其实是重点考察while循环里面的continue和break
#出于程序简化,没有考虑输入数字超范围、输入的不是数字、q、b三者以外的情况

dict1 ={
        "省1":{
            "市11":{
                "县111":{
                    "公司1111:{}",
                    "公司1112:{}"
                },
                "县112":{
                    "公司1121:{}",
                    "公司1122:{}"
                }
            },
            "市12":{
                "县121":{
                    "公司1211:{}",
                    "公司1212:{}"
                },
                "县122":{
                    "公司1221:{}",
                    "公司1222:{}"
                }
            },
            "市13":{
                "县131":{},"县132":{}
            }
        },
        "省2":{
            "市21":{
                "县211":{},"县212":{}
            },
            "市22":{
                "县221":{},"县222":{}
            },
            "市23":{
                "县231":{},"县232":{}
            }
        },
        "省3":{
            "市31":{
                "县311":{},"县312":{}
            },
            "市32":{
                "县321":{},"县222":{}
            },
            "市33":{
                "县331":{},"县332":{}
            }
        }
}

judge = True

while judge:
    list1 = list(dict1.keys())
    list1.sort()
    print("The level_1 menu:")
    for index,item in enumerate(list1):
        print(index,item)
    choice1 = input("Please choose level_1:")
    if choice1.isdigit():
        choice1 = int(choice1)
        choice_key1 = list1[choice1]
        list2 = list(dict1.get(choice_key1))
        list2.sort()
        while judge:
            print("The level_2 menu:")
            for index, item in enumerate(list2):
                print(index, item)
            choice2 = input("Please choose level_2:")
            if choice2.isdigit():
                choice2 = int(choice2)
                choice_key2 = list2[choice2]
                list3 = list(dict1.get(choice_key1).get(choice_key2))
                list3.sort()
                while judge:
                    print("The level_3 menu:")
                    for index, item in enumerate(list3):
                        print(index, item)
                    choice3 = input("Please choose level_3:")
                    if choice3.isdigit():
                        choice3 = int(choice3)
                        choice_key3 = list3[choice3]
                        list4 = list(dict1.get(choice_key1).get(choice_key2).get(choice_key3))
                        list4.sort()
                        print("The level_4 menu:")
                        for index, item in enumerate(list4):
                            print(index, item)
                        choice4 = input("It‘s the last level,Please come back:")
                        if choice4 == "q":
                            # 判断位置空后,可以连续跳出多个循环
                            judge = False
                            # 这里是跳出了本while循环的所有循环
                            break
                        elif choice4 == "b":
                            # 这里只是跳出了本while循环中的一次循环
                            continue
                    elif choice3 == "q":
                        judge = False
                        break
                    elif choice3 == "b":
                        break
            elif choice2 == "q":
                judge = False
                break
            elif choice2 == "b":
                break
    elif choice1 == "q" :#是q退出
        judge = False
    else:#不是q也不是数字,重新选
        print("Please choose the number.")

 











以上是关于python作业5:多级菜单的主要内容,如果未能解决你的问题,请参考以下文章

python作业:多级菜单

老男孩python3学习,课堂作业1.2 多级菜单查询

第2章 Python基础-字符编码&数据类型 购物车&多级菜单 作业

day1作业二:多级菜单

老男孩Python3.5培训第一周作业

Python作业二:三级列表