#!/usr/bin/env python
# -*- coding:utf-8 -*-
# by wk
import os
def list_cities(city_list):
while True:
t = []
for k, v in enumerate(city_list):
print(k, v['city'])
t.append(str(k)) #判断列表有多少值
# print(t)
city_id = input('请选择城市:')
if city_id in t:
return city_id
else:
print('请重新输入')
def list_district(city_id):
while True:
t = []
for k, v in enumerate(city_list[city_id]['district']):
print(k, v['dist'])
t.append(str(k)) #判断列表有多少值
district_id = input('请选择区域(b返回上一层):')
if district_id in t:
return district_id
elif district_id == 'b':
return 'back'
else:
print('请重新输入')
def list_area(city_id,district_id):
while True:
t = []
for k, v in enumerate(city_list[city_id]['district'][district_id]['area']):
print(k, v)
t.append(str(k)) #判断列表有多少值
area_id = input('请选择地点(b返回上一层):')
if area_id in t:
return area_id
elif area_id == 'b':
return 'back'
else:
print('请重新输入')
def my_choose(city_id,district_id,area_id):
return city_list[city_id]['district'][district_id]['area'][area_id]
if __name__ == "__main__":
city_list = [
{'city': '北京', 'district':
[{'dist':'海淀','area':['海1', '海2', '海3']},
{'dist': '东城', 'area': ['东1', '东2', '东3']},
{'dist':'西城','area':['西1', '西2', '西3']},
{'dist': '朝阳', 'area': ['朝1', '朝2', '朝3']}]
},
{'city': '上海', 'district':
[{'dist': '黄浦', 'area': ['黄1', '黄2', '黄3']},
{'dist': '徐汇', 'area': ['徐1', '徐2', '徐3']},
{'dist': '长宁', 'area': ['长1', '长2', '长3']},
{'dist': '天河', 'area': ['天1', '天2', '天3']}]
},
{'city': '广州', 'district':
[{'dist': '荔湾', 'area': ['荔1', '荔2', '荔3']},
{'dist': '越秀', 'area': ['越1', '越2', '越3']},
{'dist': '海珠', 'area': ['海1', '海2', '海3']},
{'dist': '天河', 'area': ['天1', '天2', '天3']}]
},
] #创建一张城市列表
while True:
city_id = list_cities(city_list) #列出城市
while True:
district_id = list_district(int(city_id)) #列出选中城市下的区
if district_id == 'back':
break #返回上一层循环
else:
while True:
area_id = list_area(int(city_id),int(district_id))
if area_id == 'back':
break #返回上一层循环
else:
end_choose = my_choose(int(city_id), int(district_id), int(area_id))
print('最终选择:',end_choose)
os._exit(1)