Python 学习笔记-4

Python 学习笔记-4

  1. 作业讲解
  2. 编码和解码

1. 作业讲解

重复代码瘦身

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
 
# 定义地图
nav = {'省略'}

# 现在所处的层
current_layer = nav
# 记录你去过的地方
parent_list = []
# 是否结束循环
not_quit = True

while not_quit:
for i in current_layer:
print(i)
print("输入对应项进入 | 输入 b 返回上一层 | 输入 q 退出")
choice = input(">>>:").strip()
if len(choice) == 0: continue
if choice in current_layer:
parent_list.append(current_layer)
current_layer = current_layer[choice]
elif choice == 'q':
not_quit = False
elif choice == 'b':
if len(parent_list)<1:
print("您已在最顶层!")
else:
current_layer = parent_list.pop()
else:
print("无此项!")

2. 编码和解码

图解编码和解码

编码解码图解

1. Python2中的编码和解码

默认ASCII

1
2
3
4
5
6
7
8
# -*- coding:utf-8 -*-

s = "这是汉语"
s_to_unicode = s.decode("utf-8")
unicode_to_gbk = s_to_unicode.encode("gbk")
print(s) # 结果:乱码
print(s_to_unicode) # 结果:这是汉语
print(unicode_to_gbk) # 结果:这是汉语

2. Python3中的编码和解码

默认 Unicode

1
2
3
 
# 在python3中encode的过程会将数据转成byte类型
# 在decode解码的过程中会将byte转成字符串