day7

# 数据类型的相互转化

1.哪些类型可以转化为数字

 

# 2.数字转化字符串
# print(str(10))

3.字符串与列表相互转换 ******
s = 'abc123呵呵'
print(list(s)) # ['a', 'b', 'c', '1', '2', '3', '呵', '呵'] 没有对应的 str(ls)
ls = ['a', 'b', 'c', '1', '2', '3', '呵', '呵']
n_s = ''.join(ls) 
print(n_s)

s1 = 'a b c 1 2 3 呵 呵'
# res = s1.split() # 默认按空格拆(默认拆空格)
s1 = 'a b c 1 2 3 呵 呵'
res = s1.split()
print(res)

必须掌握(切片)将字符串转换为列表。

print str.split( )# 以空格为分隔符


s2 = 'ie=UTF-8&wd=你好帅'
res = s2.split('&')
print(res) # ['ie=UTF-8', 'wd=你好帅']

将列表转换为字符串

ls2 = ['ie=UTF-8', 'wd=你好帅']
n_s2 = '@'.join(ls2)
print(n_s2) # ie=UTF-8@wd=你好帅

将字符串分为两段存入列表

需求:"ie=UTF-8&wd=你好帅" => [('ie', 'UTF-8'), ('wd', '你好帅')]
res = []
s4 = "ie=UTF-8&wd=你好帅"
ls4 = s4.split('&') # ['ie=UTF-8', 'wd=你好帅']
for ele in ls4: # v = ie=UTF-8 | wd=你好帅
k, v = ele.split('=') # k: ie v: UTF-8
res.append((k, v))
print(res)

将字符串转换为字典

5.需求:"ie=UTF-8&wd=你好帅" => {'ie': 'UTF-8', 'wd': '你好帅'}
res = {}
s5 = "ie=UTF-8&wd=你好帅"
ls5 = s5.split('&') # ['ie=UTF-8', 'wd=你好帅']
for ele in ls5: # v = ie=UTF-8 | wd=你好帅
k, v = ele.split('=') # k: ie v: UTF-8
res[k] = v
print(res)

将列表转换为字符串

6.需求:[('ie', 'UTF-8'), ('wd', '你好帅')] => {'ie': 'UTF-8', 'wd': '你好帅'}
res = {}
ls6 = [('ie', 'UTF-8'), ('wd', '你好帅')]
for k, v in ls6:
res[k] = v
print(res)

7.list与tuple、set直接相互转化 - 直接 类型()

8.需求:将汉字转化为数字


# 字符编码

1. 什么是字符编码:将人识别的字符转换计算机能识别的01,转换的规则就是字符编码表
2. 常用的编码表:ascii、unicode、GBK、Shift_JIS、Euc-kr
3. 编码操作:编码encode()、解码decode()

 

 

知识储备

```python
# 电脑三大核心:cpu - 内存 - 硬盘(数据的存取过程)
# 软件及python解释器读取文件过程:启动 - 读取 - 展示|解释执行
# python2环境的文件头:# coding: 编码格式
```

简介与发展

```python
'''
1. ascii - 各国编码 - 万国编码
2. 存取不一致的乱码现象
3. unicode与utf-8
'''
```

核心

```python
# 编码操作:编码encode()、解码decode()
```

 

 

## 字符与字节

重点

```python
'''
1. 字节的存储方式:8个二进制位
2. 字符所占字节数:根据编码的不同,所占字节数可能不同
3. 三种格式字符串:u''、b''、r''
'''
```

了解

```python
'''
u、b格式字符串转换: str(b'', encode='utf-8')、bytes(u'', encode='utf-8')

 

# 测试一下
# 学习字符编码的问题:解决乱码问题

# 数据 从 硬盘 => 内存 => cpu
# 应用程序打开文本文件的三步骤
# 1.打开应用程序
# 2.将数据加载到内存中
# 3.cpu将内存中的数据直接翻译成字符显示给用户

# python解释器
# 1.打开python解释器
# 2.将数据加载到内存中
# 3.cpu将内存中的数据解释执行将结果显示给用户,如何解释执行不能通过,将错误信息提供给用户

 


# utf-8:以1个字节存放英文,以3 | 6个字节存放汉字,在英文数据过多时,更深空间,用来传输效率更高
# utf-16:所有支持的符号都采用2个字节存放,读存数据采用定长,不用计算,读存效率高

# 硬盘到内存需要数据的传输,内存到CPU需要数据的传输,所有都采用utf-8
# 内存需要高速读写,采用utf-16

# 学习的结晶:编码与解码要统一编码
# 操作文本字符
res = "汉字呵呵".encode('utf-8') # 编码:将普通字符串转化为二进制字符串
print(res)

res = b'\xe5\x91\xb5\xe5\x91\xb5'.decode('GBK') # 解码:将二进制字符串转化为普通字符串
print(res)
res = b'\xe5\x91\xb5\xe5\x91\xb5'.decode('utf-8')
print(res)

 



posted @ 2019-04-19 21:41  轩辕12  阅读(150)  评论(0编辑  收藏  举报