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()”但由于语法水平有限,所以等待大神指教后再作修正。