Python多级菜单

作业2:多级菜单
三级菜单
可依次选择进入各子菜单
所需新知识点:列表、字典


1、流程图

2、登录界面,输入对应索引

#!/usr/bin/env python3
# -*- coding:utf-8 -*-
# Version:Python3.5.0

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

# 创建城市索引列表
city_index = [(index, key) for index, key in enumerate(city_dict)]
city_index.append((len(city_index), '退出')) # 增加退出选项
while True:
    print('欢迎查询城市信息')
    print('--------------------------------')
    for i in city_index:    # 打印城市索引菜单
        for j in i:
            print(j, end=' ')
        print('')

    get_city = input('请选择查询的索引号:')
    if not get_city.isdigit():
        print('请输入一个数字索引号。')
        continue
    elif int(get_city) >= len(city_index):   # 输入索引号大于等于城市索引号长度
        print('输入的数字太大,请重输入。')
        continue
    elif int(get_city) == len(city_index)-1:   # 最大的索引号为 退出程序对应的索引号
        print('欢迎再次登录,bye bye!')
        break
    else:
        choose_city = city_index[int(get_city)][1]   # 获取选择的城市名称
        # 创建 区 的索引列表
        area_index = [(index, key) for index, key in enumerate(city_dict[choose_city])]
        area_index.append((len(area_index), '返回'))  # 增加返回上一级菜单选项
        while True:
            for i in area_index:    # 打印选择城市的区索引菜单
                for j in i:
                    print(j, end=' ')
                print('')

            get_area = input('请选择查询的索引号:')
            if not get_area.isdigit():
                print('请输入一个数字索引号。')
                continue
            elif int(get_area) >= len(area_index):   # 输入索引号大于城市索引号
                print('输入的数字太大,请重输入。')
                continue
            elif int(get_area) == len(area_index)-1:  # 最大的索引号为 上级菜单对应的索引号
                print('返回到上一级菜单。')
                break
            else:
                choose_area = area_index[int(get_area)][1]  # 获取选择区的名称
                print(city_dict[choose_city][choose_area])  # 打印该区的信息
                print('--------------------------------')
原文地址:https://www.cnblogs.com/suke99/p/5645893.html