Python学习笔记day1

学习Python的第一天时有一个“Python三级菜单”的作业,为了完成这个作业个人遇到一些问题,随笔记录。

# -*- coding:utf-8 -*-
# Autor: Li Rong Yang
# 所有操作使用此字典完成

zone = { '山东' : { '青岛' : ['四方','黄岛','崂山','李沧','城阳'], '济南' : ['历城','槐荫','高新','长青','章丘'], '烟台' : ['龙口','莱山','牟平','蓬莱','招远'] }, '江苏' : { '苏州' : ['沧浪','相城','平江','吴中','昆山'], '南京' : ['白下','秦淮','浦口','栖霞','江宁'], '无锡' : ['崇安','南长','北塘','锡山','江阴'] }, '浙江' : { '杭州' : ['西湖','江干','下城','上城','滨江'], '宁波' : ['海曙','江东','江北','镇海','余姚'], '温州' : ['鹿城','龙湾','乐清','瑞安','永嘉'] }, '安徽' : { '合肥' : ['蜀山','庐阳','包河','经开','新站'], '芜湖' : ['镜湖','鸠江','无为','三山','南陵'], '蚌埠' : ['蚌山','龙子湖','淮上','怀远','固镇'] }, '广东' : { '深圳' : ['罗湖','福田','南山','宝安','布吉'], '广州' : ['天河','珠海','越秀','白云','黄埔'], '东莞' : ['莞城','长安','虎门','万江','大朗'] } }

  

以上字典分为三级分别是“省”、“市”、“县”

打印一级菜单“省”

print(zone.keys())

运行结果如下,打印后显示了所有的省级城市  

但是这看起来并不好看且无法用于循环,所以我们把它转换为list类型

city_id = list(zone.keys())
print(city_id)

运行结果如下  

根据一级菜单打印二级菜单

print(zone['山东'])

运行结果如下  

根据以上信息显示,明显不光我们需要的二级菜单还有三级菜单“县”,所以要使用.keys()函数

print(zone['山东'].keys())
City_Shi = list(zone['山东'].keys())
print(City_Shi)

运行结果如下

打印三级菜单

print(zone['山东']['青岛'])

运行结果如下

到此列表的一、二、三级打印方法就完了,在使用简单的while循环和if判断最终“Python三级菜单”代码如下

################################################
# Task Name: 三级菜单                           #
# Description:打印省、市、县三级菜单             #
#              可随时返回上一级                      #
#               可随时退出程序                   #
#----------------------------------------------#
# Author:Li Rong Yang                           #
################################################

zone = {
    '山东' : {
        '青岛' : ['四方','黄岛','崂山','李沧','城阳'],
        '济南' : ['历城','槐荫','高新','长青','章丘'],
        '烟台' : ['龙口','莱山','牟平','蓬莱','招远']
    },
    '江苏' : {
        '苏州' : ['沧浪','相城','平江','吴中','昆山'],
        '南京' : ['白下','秦淮','浦口','栖霞','江宁'],
        '无锡' : ['崇安','南长','北塘','锡山','江阴']
    },
    '浙江' : {
        '杭州' : ['西湖','江干','下城','上城','滨江'],
        '宁波' : ['海曙','江东','江北','镇海','余姚'],
        '温州' : ['鹿城','龙湾','乐清','瑞安','永嘉']
    },
    '安徽' : {
        '合肥' : ['蜀山','庐阳','包河','经开','新站'],
        '芜湖' : ['镜湖','鸠江','无为','三山','南陵'],
        '蚌埠' : ['蚌山','龙子湖','淮上','怀远','固镇']
    },
    '广东' : {
        '深圳' : ['罗湖','福田','南山','宝安','布吉'],
        '广州' : ['天河','珠海','越秀','白云','黄埔'],
        '东莞' : ['莞城','长安','虎门','万江','大朗']
    }
}
while True:
    for i in zone:
        print(i)

    while True:
        City_Shi = input("请输入要查看的省级城市,(q)退出(b)返回上一层:")
        if City_Shi in zone:
            for Shi in  zone[City_Shi]:
                print(Shi)

            while True:
                City_Xian = input("请输入要查看的市级城市,(q)退出(b)返回上一层:")
                if  City_Xian in zone[City_Shi]:
                    for Xian in zone[City_Shi][City_Xian]:
                        print(Xian)
                    user_select = input("输入(q)退出(b)返回上一层:")
                    if user_select == 'q':
                        exit()
                    elif user_select == 'b':
                        break
                    elif user_select != 'q' and user_select != 'b':
                        print("输入有误请重新输入:")
            if City_Xian == 'q':
                exit()
            elif City_Xian == 'b':
                break
        elif City_Shi == "q":

            print("程序已退出".center(50,'-'))
            exit()
        elif City_Shi == 'b':
            break

  

原文地址:https://www.cnblogs.com/lirongyang/p/9368586.html