关于字典与列表的学习2(三级菜单的应用)(week2)

2018/1/6-2018/1/21

      这周开始学习python的基本格式字典与列表。

三级菜单是本周的第二个案例:

三级菜单需实现满足上一步再往下一步确认,否则返回。

(1)首先创建一个字典:

在创建字典的过程中需注意‘{}’的对称;

该字典包含广东省各个市,市区内包含各个区或管辖市、县(东莞市、中山市下一级直接是镇),区、市、县内包含着镇或者城区街道。

(2)进入循环,选择城市;

while True:
    for i in data:
        print(i)
    city = input('请输入你的城市:')
(3)如果你所输入的城市在列表里,则进入下个循环;进入循环,选择市或县;

    if city in data:
        while True:
            for j in data[city]:
                print('\t', j)
            town = input('请输入你的市或县:(按b返回上一级)')
(4)如果你所输入的 市或县在子表里,则进入下个循环,进入循环,选择区或乡镇;

                while True:
                    for k in data[city][town]:
                        print('\t\t', k)
                    country = input('请输入你的区或乡镇:(按b返回上一级)')
(5) 如果你所输入的 区或乡镇在子表里,则进入下个循环,进入循环,选择街道或乡镇;

                    if country in data[city][town]:
                        while True:
                            for l in data[city][town][country]:
                                print('\t\t\t', l)
                            village = input('请输入你的街道乡镇:(按b返回上一级)')
(6) 如果你所输入的 区或乡镇在表格里,则打印你之前所选择的信息,让别人了解到你来自哪里;

 village = input('请输入你的街道或乡镇:(按b返回上一级)')
                            if village in data[city][town][country]:
                                print('我来自广东省{town1}的{country1}{village1}'.format(city1 =city,town1 =town,
                                                                                              country1 =country,village1 =village))
                                exit()
(7)补全条件语句;

while True:
    for i in data:
        print(i)
    city = input('请输入你的城市:')
    if city in data:
        while True:
            for j in data[city]:
                print('\t', j)
            town = input('请输入你的市、县:(按b返回上一级)')
            if town in data[city]:
                while True:
                    for k in data[city][town]:
                        print('\t\t', k)
                    country = input('请输入你的区或乡镇:(按b返回上一级)')
                    if country in data[city][town]:
                        while True:
                            for l in data[city][town][country]:
                                print('\t\t\t', l)
                            village = input('请输入你的街道或乡镇:(按b返回上一级)')
                            if village in data[city][town][country]:
                                print('我来自广东省{town1}的{country1}{village1}'.format(city1 =city,town1 =town,
                                                                                              country1 =country,village1 =village))
                                exit()
                            elif village =='b':
                                break
                            else:
                                print('Invalid input...')
                    elif country == 'b':
                        break
                    else:
                        print('Invalid input...')
            elif town == 'b':
                break
            else:
                print('Invalid input...')
    else:
        print('Invalid input...')
小结:这个程序还不能正常运行,因为我所创建的字典里是不规则的,某些菜单只有2或3层,要是调用到这些内容的话就会直接报错,我的解决思路是要加个判断“(if 下一级不存在:)print(‘....’)exit()”但由于语法水平有限,所以等待大神指教后再作修正。











评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值