首页 > 编程语言 > 详细

Python学习笔记3:三级菜单(字典)

时间:2018-05-21 22:18:16      阅读:294      评论:0      收藏:0      [点我收藏+]
  1 import os,sys
  2 map = {
  3         湖北:{
  4                 武汉:{江岸区:[(长江北岸,武汉市东北部,),(70.25平方千米,),(430000,),{populace:100W}],
  5                       江汉区:[(武汉市汉口地区中部,),(33.43平方公里,),(430000,),{populace:83W}],
  6                       硚口区:[(武汉市主城区西北部,),(41.46平方公里,),(430000,),{populace:64W}],
  7                       汉阳区:[(武汉市西南部,),(108平方公里,),(430050,),{populace:91W}],
  8                       武昌区:[(武汉市东南部,),(107.76平方千米,),(430061,),{populace:106W}],
  9                       青山区:[(武汉市中游南岸,),(80.47平方公里,),(430080,),{populace:54W}],
 10                       洪山区:[(武汉市东南部,),(480平方公里,),(430070,),{populace:126W}],
 11                       江夏区:[(武汉市南部,),(2018平方公里,),(430200,),{populace:82W}]},
 12                 黄石:{黄石港区:[(位于鄂东南,),(42.4平方公里,),(43500,),{populace:22W}],
 13                       西塞山区:[(长江中游),(49.95平方公里),(435000),{populace:26W}],
 14                       下陆区:[(黄石市北部,),(75平方公里,),(435005,),{populace:11W}],
 15                       铁山区:[(黄石市西部,),(28.7平方公里,),(435006,),{populace:7W}],
 16                       阳新县:[(长江以南,幕阜山脉北麓),(2780平方千米,),(435200,),{populace:109W}],
 17                       大冶市:[(长江以南,幕阜山脉以北),(1566.3平方公里,),(435100,),{populace:98W}]},
 18                 十堰:{茅箭区:[(十堰市中部,),(540平方公里,),(442000,),{populace:27W}],
 19                       张湾区:[(十堰市中部,),(657平方公里,),(442000,),{populace:40W}],
 20                       郧阳区:[(十堰市北部、西部,),(3863平方公里,),(442500,),{populace:64W}],
 21                       郧西县:[(十堰市西北部,),(3509平方千米,),(442600,),{populace:50W}],
 22                       竹山县:[(十堰市西南,竹溪以东,房县以西),(3586平方千米,),(442200,),{populace:51W}],
 23                       竹溪县:[(十堰市西南,),(3279平方公里,),(442300,),{populace:36W}],
 24                       房县:[(十堰市南部,),(5115平方公里,),(442100,),{populace:49W}],
 25                       丹江口市:[(中国中部,十堰 襄阳的中间,汉江中上游),(3121平方千米,),(442700,),{populace:98W}]},
 26                 随州:{曾都区:[(鄂北,),(1316平方公里,),(441300,),{populace:82W}],
 27                       随县:[(湖北省北部,),(5673平方公里,),(431500,),{populace:107W}],
 28                       广水市:[(武汉市北部,随州市东部),(2675平方公里,),(432700,),{populace:104W}]},
 29                 荆州:{沙市区:[(江汉平原腹地,荆州地区东北),(492平方千米,),(434000,),{populace:61W}],
 30                       荆州区:[(湖北省中南部,),(1045平方公里),(434000),{populace:60W}],
 31                       江陵县:[(湖北省中南部,),(1032平方千米,),(434100,),{populace:40W}],
 32                       监利县:[(湖北省南部,长江北岸),(3118平方千米,),(433300,),{populace:155W}],
 33                       公安县:[(湖北省中南部,长江中游荆江南岸),(2258平方公里,),(434300,),{populace:102W}],
 34                       松滋市:[(湖北省西南部,),(2235平方公里),(434200,),{populace:85W}],
 35                       石首市:[(湖北省南部,长江中游岸边),(1427平方千米,),(434400,),{populace:98W}],
 36                       洪湖市:[(长江中下游,江汉平原东南部),(2519平方公里,),(433200,),{populace:93W}]}
 37         },
 38         湖南:{长沙市:{芙蓉区:出水芙蓉,静秋思,天心区:为百姓请命,为天地立心,为万世开太平,
 39                      开福区:开元盛世,贞观之治,雨花区:清泉石上流,
 40                      望城区:烽火连三月,家书抵万金,长沙县:火烧长沙,浏阳市:湘江有个浏阳河},
 41               株洲市:{天元区:天王盖地宝,荷塘区:小荷才露尖尖角,芦淞区:芦花鸡,
 42                      石峰区:壁立千仞,株洲县:株洲,株洲},
 43               湘潭市:{岳塘区:这个人很懒,什么都不想写,雨湖区:这个人很懒,什么都不想写,
 44                      湘乡市:这个人很懒,什么都不想写,韶山市:这个人很懒,什么都不想写,
 45                      湘潭县:这个人很懒,什么都不想写},
 46               衡阳市:{雁峰区:这个人很懒,什么都不想写,石鼓区:这个人很懒,什么都不想写,
 47                      珠晖区:这个人很懒,什么都不想写,南岳区:这个人很懒,什么都不想写},
 48               邵阳市:{双清区:这个人很懒,什么都不想写,大祥区:这个人很懒,什么都不想写,
 49                      北塔区:这个人很懒,什么都不想写},
 50               岳阳市:{岳阳楼区:这个人很懒,什么都不想写,君山区:这个人很懒,什么都不想写,
 51                      云溪区:这个人很懒,什么都不想写,临湘区:这个人很懒,什么都不想写},
 52               常德市:{武陵区:这个人很懒,什么都不想写,鼎城区:这个人很懒,什么都不想写,
 53                      石门县:这个人很懒,什么都不想写}
 54               },
 55         四川:{成都市:{武侯区:这个人很懒,什么都不想写,锦江区:这个人很懒,什么都不想写,
 56                      青羊区:这个人很懒,什么都不想写,金牛区:这个人很懒,什么都不想写},
 57               自贡市:{贡井区:这个人很懒,什么都不想写,大安区:这个人很懒,什么都不想写,
 58                      沿滩区:这个人很懒,什么都不想写},
 59               德阳市:{罗江区:这个人很懒,什么都不想写,中江县:这个人很懒,什么都不想写,
 60                      广汉市:这个人很懒,什么都不想写},
 61               广元市:{朝天区:这个人很懒,什么都不想写,青川县:这个人很懒,什么都不想写,
 62                      剑阁县:这个人很懒,什么都不想写}
 63               },
 64 }
 65 
 66 flag = True
 67 while flag is True:
 68         for key in map:
 69                 print(key)
 70         core = input("Please input province , or ‘q‘ exit:")
 71         if core in map:
 72                 flag = False
 73                 while flag is not True:
 74                         for key_1 in map[core].keys():
 75                                 print(key_1)
 76                         core_1 = input("Please input city or ‘b‘ back or ‘q‘ exit:")
 77                         if core_1 == b:
 78                                 print(返回上一级)
 79                                 flag = True
 80                                 break
 81                         elif core_1 == q:
 82                                 sys.exit(您已退出系统)
 83                         elif core_1 in map[core]:
 84                                 flag = True
 85                                 while flag is  True:
 86                                         for key_2 in map[core][core_1]:
 87                                                 print(key_2)
 88                                         core_2 = input("Plesase input town or ‘b‘ back or ‘q‘ quit:")
 89                                         if core_2 in map[core][core_1]:
 90                                                 print(map[core][core_1][core_2])
 91                                                 exit(0)
 92                                         elif core_2 == b:
 93                                                 print(返回上层目录)
 94                                                 flag = False
 95                                                 break
 96                                         elif core_2 == q:
 97                                                 sys.exit(quit)
 98                                         else:
 99                                                 print(输入不符合规范,请重新输入)
100                                                 continue
101                         else:
102                                 print(您的输入不符合规范,请重新输入)
103                                 continue
104         elif core == q:
105                 sys.exit(exit0)
106         else:
107                 print(您的输入不符合规范,请重新输入。)
108                 continue

######

1.判断元素是否在列表,元祖,字典等里;使用  VLAUE  in LIST(DIR).

技术分享图片
 1 name = {a:1,b:2,c:3,d:4}
 2 print(a in name)
 3 name_1 = [A,B,C,D]
 4 print(B in name_1)
 5 name_2 = (A,B,C,D)
 6 print(D in name_2)
 7 
 8 
 9 》》》》
10 True
11 True
12 True
View Code

2.字典使用键-值(key-value)存储,具有极快的查找速度。字典是无序的,字典中的元素通过键来存取,故字典中的键是唯一的不可以修改;通过key计算位置的算法称为哈希算法(Hash)

键:不可变类型;整形,字符串,元祖等。 值:可变和不可变。

3.列表和元祖有序的集合,通过索引可以存取。列表可以修改,元祖中的元素不可以修改;索引是从0开始。

4.多次对一个key放入value,后面的值会把前面的值冲掉

5.避免key不存在的错误,有两种办法,一是通过in判断key是否存在;二是通过dict提供的get()方法,如果key不存在,可以返回None,或者自己指定的value:

技术分享图片
1 name = {a:1,b:2,c:3,d:4}
2 print(name.get(e))
3 print(name.get(e,9))
4 
5 》》》
6 None
7 9
View Code

6.和list比较,dict有以下几个特点:查找和插入的速度极快,不会随着key的增加而变慢;需要占用大量的内存,内存浪费多。

而list相反:查找和插入的时间随着元素的增加而增加;占用空间小,浪费内存很少。

补充:

7.集合set:和dict类似,也是一组key的集合,但不存储value。由于key不能重复,所以,在set中,没有重复的key。无序的。

技术分享图片
 1 set_1 = {a,b,c}
 2 print(set_1)
 3 list = [A,B,C,D]
 4 print(list)
 5 set_2 = set(list)
 6 print(set_2)
 7 
 8 》》》
 9 {b, a, c}
10 [A, B, C, D]
11 {D, C, A, B}
View Code

 

Python学习笔记3:三级菜单(字典)

原文:https://www.cnblogs.com/win1387key/p/9069452.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!