Python语言之洗礼灵魂多级目录菜单之地址管理系统
小标 2018-08-09 来源 : 阅读 1301 评论 0

摘要:本文主要向大家介绍了Python语言之洗礼灵魂多级目录菜单之地址管理系统,通过具体的内容向大家展示,希望对大家学习Python语言有所帮助。

本文主要向大家介绍了Python语言之洗礼灵魂多级目录菜单之地址管理系统,通过具体的内容向大家展示,希望对大家学习Python语言有所帮助。

相信各位都在在网上买过东西吧?那么今天我的主题就是写个在线购物系统,是不可能的,哈哈(后期确实有这个项目),那么购物都填写过快递地址吧?然后网上查个地址都有地址管理吧?
 
要求:
1.打印出省、市、县等多级目录
2.每一级可以返回到上一级,第一级不能再往上返回
3.可以随时退出系统
 
 
分析:
1.简单的地址管理,那么不必把全国的地区都写清楚,做个简单的范例就行,根据你常识中的地址来写就行
2.既然是层层跌进的,那么就有包含关系,这种包含关系怎么搞呢?换句话用什么数据类型存储,我个人喜欢用字典,你们可以随意
3.可以随时退出系统,小问题,不用多说了
 
 
 
 
还是那句话,我希望你已经思考过在看的下面
同样的,代码发布区在github,传送门
 
一共就一个主程序文件,这里我暂且只用了两个省份作为范例,设定的三级目录,当然你可以再设定详细的目录。代码:

?12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364#!usr/bin/env python#-*- coding:utf-8 -*- # author:yangva# datetime:2017/12/17 0007 18:16 china_map_dict={    '吉林':{            '长春':{'朝阳区':{},'南关区':{},'宽城区':{},'二道区':{},'绿园区':{},'双阳区':{},'德惠市':{},'九台市':{},'榆树市':{},'农安县':{}},            '吉林市':{'船营区':{},'昌邑区':{},'龙潭区':{},'丰满区':{},'蛟河市':{},'桦甸市':{},'舒兰市':{},'磐石市':{},'永吉县':{}},            '四平':{'铁西区':{},'铁东区':{},'公主岭市':{},'双辽市':{},'梨树县':{},'伊通满族自治县':{}},            '辽源':{'龙山区':{},'西安区':{},'东丰县':{},'东辽县':{}},            '通化':{'东昌区':{},'二道江区':{},'梅河口市':{},'集安市':{},'通化县':{},'辉南县':{},'柳河县':{}},            '白山':{'浑江区':{},'江源区':{},'临江市':{},'抚松县':{},'靖宇县':{},'长白朝鲜族自治县':{}},            '松原':{'宁江区':{},'长岭县':{},'乾安县':{},'扶余县':{},'前郭尔罗斯蒙古族自治县':{}},            '白城':{'洮北区':{},'洮南市':{},'大安市':{},'镇赉县':{},'通榆县':{}},            '延边州':{'延吉市':{},'图们市':{},'敦化市':{},'和龙市':{},'珲春市':{},'龙井市':{},'汪清县':{},'安图县':{}},            '长白山管委会':{}            },    '四川':{        '成都':{'锦江区':{},'青羊区':{},'金牛区':{},'武侯区':{},'成华区':{},'青白江区':{},'龙泉驿区':{},'新都区':{},'温江区':{},'金堂县':{},'双流县':{},'郫县':{},'大邑县':{},'蒲江县':{},'新津县':{},'都江堰市':{},'彭州市':{},'崇州市':{},'邛崃市':{}},        '自贡':{'自流井区':{},'贡井区':{},'大安区':{},'滩区':{},'荣县':{},'富顺县':{}},        '攀枝花':{'东区':{},'西区':{},'仁和区':{},'米易县':{},'盐边县':{}},        '泸州':{'江阳区':{},'龙马潭区':{},'纳溪区':{},'泸县':{},'合江县':{},'叙永县':{},'古蔺县':{}},        '德阳':{'旌阳区':{},'广汉市':{},'什邡市':{},'绵竹市':{},'中江县':{},'罗江县':{}},        '绵阳':{'涪城区':{},'游仙区':{},'梓潼县':{},'三台县':{},'盐亭县':{},'安县':{},'平武县':{},'江油市':{},'北川羌族自治县':{}},        '广元':{'利州区':{},'昭化区':{},'朝天区':{},'旺苍县':{},'青川县':{},'剑阁县':{},'苍溪县':{}},        '遂宁':{'船山区':{},'安居区':{},'射洪县':{},'蓬溪县':{},'大英县':{}},        '内江':{'市中区':{},'东兴区':{},'资中县':{},'隆昌县':{},'威远县':{}},        '乐山':{'市中区':{},'沙湾区':{},'五通桥区':{},'金口河区':{},'犍为县':{},'井研县':{},'夹江县':{},'沐川县':{},'峨眉山市':{},'峨边彝族自治县':{},'马边彝族自治县':{}},        '南充':{'顺庆区':{},'高坪区':{},'嘉陵区':{},'西充县':{},'南部县':{},'蓬安县':{},'营山县':{},'仪陇县':{},'阆中市':{}},        '眉山':{'东坡区':{},'彭山区':{},'仁寿县':{},'丹棱县':{},'青神县':{},'洪雅县':{}},        '宜宾':{'翠屏区':{},'南溪区':{},'宜宾县':{},'江安县':{},'长宁县':{},'高县':{},'筠连县':{},'珙县':{},'兴文县':{},'屏山县':{}},        '广安':{'广安区':{},'前锋区':{},'邻水县':{},'武胜县':{},'岳池县':{},'华蓥市':{}},        '达州':{'通川区':{},'达川区':{},'宣汉县':{},'开江县':{},'大竹县':{},'渠县':{},'万源市':{}},        '雅安':{'雨城区':{},'名山区':{},'荥经县':{},'汉源县':{},'石棉县':{},'天全县':{},'芦山县':{},'宝兴县':{}},        '巴中':{'巴州区':{},'恩阳区':{},'平昌县':{},'通江县':{},'南江县':{}},        '资阳':{'雁江区':{},'安岳县':{},'乐至县':{},'简阳市':{}},        '阿坝藏族羌族自治州':{'马尔康县':{},'金川县':{},'小金县':{},'阿坝县':{},'若尔盖县':{},'红原县':{},'壤塘县':{},'汶川县':{},'理县':{},'茂县':{},'松潘县':{},'九寨沟县':{},'黑水县':{}},        '甘孜藏族自治州':{'康定县':{},'泸定县':{},'九龙县':{},'道孚县':{},'炉霍县':{},'甘孜县':{},'新龙县':{},'德格县':{},'白玉县':{},'石渠县':{},'色达县':{},'理塘县':{},'巴塘县':{},'乡城县':{},'稻城县':{},'得荣县':{}},        '凉山彝族自治州':{'西昌市':{},'德昌县':{},'会理县':{},'会东县':{},'宁南县':{},'普格县':{},'布拖县':{},'昭觉县':{},'金阳县':{},'雷波县':{},'美姑县':{},'甘洛县':{},'越西县':{},'喜德县':{},'冕宁县':{},'盐源县':{},'木里藏族自治县':{}}        } } current_leval = china_map_dict #实现动态循环 parent_list = [] #把所有列表父级放进列表while True:    for key in current_leval:        print(key)    choice = input('请输入>>>:').strip()    if len(choice) == 0:continue    if choice in current_leval:        parent_list.append(current_leval)        current_leval = current_leval[choice] #进入子级    elif choice == 'back':        if parent_list:            current_leval=parent_list.pop() #取出父级(上一级)    elif choice == 'quit':        print('程序已退出')        break    else:        print('无选项【%s】'%choice)

 
很简单,我就不演示了
 
总结:
1.上面的代码利用了列表的pop方法,加上循环,最巧妙的就是重新赋值,然后while又重新循环下去,类似递归用法。
2.一样很简单的对吧?下一章还有多级目录的升级版,所以不多说了,需要怎么优化也不用多说
本文由职坐标整理并发布,希望对同学们学习Python有所帮助,更多内容请关注职坐标编程语言Python频道!

本文由 @小标 发布于职坐标。未经许可,禁止转载。
喜欢 | 0 不喜欢 | 0
看完这篇文章有何感觉?已经有0人表态,0%的人喜欢 快给朋友分享吧~
评论(0)
后参与评论

您输入的评论内容中包含违禁敏感词

我知道了

助您圆梦职场 匹配合适岗位
验证码手机号,获得海同独家IT培训资料
选择就业方向:
人工智能物联网
大数据开发/分析
人工智能Python
Java全栈开发
WEB前端+H5

请输入正确的手机号码

请输入正确的验证码

获取验证码

您今天的短信下发次数太多了,明天再试试吧!

提交

我们会在第一时间安排职业规划师联系您!

您也可以联系我们的职业规划师咨询:

小职老师的微信号:z_zhizuobiao
小职老师的微信号:z_zhizuobiao

版权所有 职坐标-一站式AI+学习就业服务平台 沪ICP备13042190号-4
上海海同信息科技有限公司 Copyright ©2015 www.zhizuobiao.com,All Rights Reserved.
 沪公网安备 31011502005948号    

©2015 www.zhizuobiao.com All Rights Reserved