第七章:数据类型的转换以及字符编码

it2025-10-23  6

1.数据转化

a.哪些类型可以转化为数字res = int('10')print(res)res = int('-3')print(res)res = float('.15')print(res)res = float('-.15')print(res)res = float('-3.15')print(res)b.数字转化字符串print(str(10))c.字符串与列表相互转换 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)split和jion

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)例:"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] = vprint(res)例:[('ie', 'UTF-8'), ('wd', '你好帅')] => {'ie': 'UTF-8', 'wd': '你好帅'}res = {}ls6 = [('ie', 'UTF-8'), ('wd', '你好帅')]for k, v in ls6: res[k] = vprint(res)d.list与tuple、set直接相互转化 - 直接 类型()例:将汉字转化为数字将 壹、贰、叁、肆、伍、陆、柒、捌、玖、拾、佰、仟 转化为

1、2、3、4、5、6、7、8、9、10、100、100num_map = { '壹': 1, '贰': 2, '仟': 1000}ls8 = ['贰', '壹', '仟']res = []for v in ls8: num = num_map[v] # 通过key去映射表拿到对应的值,完成 '贰' => 2 res.append(num)print(res)

2.字符与编码

编码的发展史a.电脑只能识别高低电频对应的0,1信息 => 问题:如何将世间万物信息存放到内存中b.世间万物信息 => 0,1形式的数据 => 电脑中存放,将该过程逆向操作,就是访问已存储的数据信息编码表a. 人能识别的字符 <=> 机器能识别的字符:一定存在一种固定的对应关系b.编码表:一定范围内人能识别的字符与机器能识别的字符形成的对应关系表(映射表)c.ASCII表:英文字母、英文符号、数字与机器能识别的字符的对应关系表,8个二进制位就能存放完这所有的对应关系 => 1字节d.python2采用的默认编码是ASCII,早期并不支持中文编程e.GBK:中文与与机器能识别的字符的对应关系表(完全兼容ASCII表),16个二进制位能存放所有汉字与ASCII之前的对应关系 => 2个字节f.2个字节能否存放常用汉字 => 16个二进制位 2^15print(pow(2, 15))h.Shift_JIS | Euc-kr:日文 | 韩文 与机器能识别的字符的对应关系表(完全兼容ASCII表)乱码:存的编码格式与取的编码格式不一致Unicode万国码:世间中常用国家的常用字符与机器能识别的字符的对应关系表转码:Unicode存在汉字与二进制对应关系,GBK也存在汉字与二进制对应关系,将GBK存放的数据转存到Unicode数据均采用Unicode编码表,只是存放数据采用字节数不一致,utf-8与utf-16是Unicode编码表的两种体现方式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)

转载于:https://www.cnblogs.com/haojunliancheng/p/10738539.html

最新回复(0)