天天看点

python3-多级菜单小程序

利用所学的知识写一个多级菜单

  • 要求:
    • 打印省、市、县三级菜单
    • 可返回上一级
    • 可随时退出程序
  • 代码演示
# 定义一个包含(省,市,县)3级嵌套字典
region = {
    "陕西":{
        "西安":{
            "大雁塔":[
                "音乐喷泉"],
            "小雁塔": [
                "小吃街"
            ]
        },
        "咸阳":{
            "长武":[
                "苹果"
            ],
            "永寿":[
                "法门寺"
            ]
        }
    },
    "上海":{
        "浦东":{
            "野生动物园":[
                "狮子"
            ]
        },
        "徐汇":{
            "外滩":[
                "东方明珠"
            ]
        },
        "宝山":{
            "九亭":[
                "欢乐谷"
            ]
        }
    },
    "北京":{
        "朝阳":{
            "双桥路":[
                "和美国际大酒店"
            ]
        },
        "西城":{
            "天安门":[
                "故宫"
            ]
        },
    }
}

# print(region["上海"]["浦东"]["野生动物园"])

# 定义一个变量,值为False
exit_false = False

# 使用while循环,while not exit_false:   等于 while True;
while not exit_false:
	# 循环打印字典的第一级(也就是取出字典第一层的key值)
    for x in region:
        print(x)		# >>> 陕西,上海,北京
    # 输入字符
    input_1 = input("请选择省:")
	# 判断是否存在输入的字符
    if input_1 in region:
        while not exit_false:
        	# 在的话打印第一层
            for x1 in region[input_1]:
                print("\t", x1)
            # 输入字符
            input_2 = input("请选择市: ")
            # 判断是否存在输入的字符
            if input_2 in region[input_1]:
                while not exit_false:
                	# 如果在,打印第二层
                    for x2 in region[input_1][input_2]:
                        print("\t\t", x2)
                    # 输入字符
                    input_3 = input("请选择区:")
                    # 判断是否存在输入的字符
                    if input_3 in region[input_1][input_2]:
                        while not exit_false:
                        	# 如果在,打印第三层
                            for x3 in region[input_1][input_2][input_3]:
                                print("\t\t\t", x3)
                            input_4 = input("已到最后一级,输入b返回上一层,输入q退出!")
                            # 按b返回上一层
                            if input_4 == "b":
                                break
                            # 按q退出
                            elif input_4 == "q":
                                exit_false = True
                    if input_3 == "b":
                        break
                    elif input_3 == "q":
                        exit_false = True
            if input_2 == "b":
                break
            elif input_2 == "q":
                exit_false = True
    if input_1 == "b":
        print("已到第一层,不能再到上一步!")
    elif input_1 == "q":
        exit_false = True
           
  • 代码运行
F:\python3>python test.py
陕西
上海
北京
请选择城市:陕西
         西安
         咸阳
请选择地区: 咸阳
                 长武
                 永寿
请选择县城:长武
                         苹果
已到最后一级,输入b返回上一层,输入q退出!
                 长武
                 永寿
请选择县城:b
         西安
         咸阳
请选择地区: b
陕西
上海
北京
请选择城市:b
已到第一层,不能再到上一步!
陕西
上海
北京
请选择城市:q

           

继续阅读