menu = {
'北京': {
'朝阳': {
'国贸': {
'CICC': {},
'HP': {},
'渣打银行': {}
},
'望京': {
'陌陌': {},
'奔驰': {}
}
},
'海淀': {
'五道口': {
'谷歌': {},
'网易': {},
'快手': {}
},
},
'昌平': {}
},
'上海': {
'浦东': {
'陆家嘴': {'CICC'},
'高盛': {}
},
'闵行': {}
}
} current_layer = menu
back = True
father_list = []
while back:
for i in current_layer:
print(i)
choice = input('>>:').strip()
if len(choice) == 0:
continue
if choice in current_layer:
father_layer = current_layer
father_list.append(father_layer)
current_layer = current_layer[choice]
elif choice == "q":
back = False
print("退出")
else:
if father_list:
current_layer = father_list.pop()
if的使用使用多个的时候会出现问题,应使用elif
-------->ASCII :只能存英文和拉丁字符。一个字符占一个字节:8bite
-----------> gb2312:只能6700多个中文,1980年
----------------> gbk1.0:存了2万多字符,1995
------------------> gb18030:2000, 27000中文 ----------->unicode:utf-32: 一个字符占4字节
----------->unicode:utf-16: 一个字符占2个字节或2个以上,65535
----------->unicode:utf-8:一个英文用ASCII码来存,一个中文占3个字节
python 2中
a = "你好"
a_to_unicode = a.decode("utf-8") # 所有的解码都是解码到unicode,将utf-8的编码改为unicode,空的时候是python默认编码
a_to_gbk = a_to_unicode.encode("gbk") # 编码是unicode转化为gbk python 3
# python 3 默认的编码方式是unicode,所有可以直接进行编码
a = "特斯拉"
a_to_gbk = a.encode("gbk") # 将unicode文件编码成gbk,并且将数据转化为bytes类型
a_to_unicode = a_to_gbk.decode("gbk") # 将gbk转化为Unicode,并且将数据转化为str类型