python编码与解码(编码和解码和基础数据类型知识点补充)
python编码与解码(编码和解码和基础数据类型知识点补充)所有的传输和存储都是使用bytespython3中运行程序阶段使用的是unicode 显示所有的内容 但是不可以做传输和存储unicode支持中文英文 数字 符号 英文32位 中文32位Utf-8英文8位 中文24位Utf-16
编码和解码
Ascii码 gbk国标 unicode万国码 utf-8长度可变万国码最少用8位 utf-16长度可变万国码最少用16位
ascii不支持中文 支持英文 数字 字母 符号 8位一个字节
gbk支持中文 英文 数字 符号 英文 中文是16位
unicode支持中文英文 数字 符号 英文32位 中文32位
Utf-8英文8位 中文24位
Utf-16
python3中运行程序阶段使用的是unicode 显示所有的内容 但是不可以做传输和存储
所有的传输和存储都是使用bytes
pycharm存储的时候默认使用utf-8
encode()编码 语法变量.encode('utf-8') utf-8是指定编码类型什么样的编码类型 注意空格内一定要有''号 下面我们来演示一下看看有了utf-8的效果
例:
结果我们发现在返回的结果中多出了一个b b是代表bytes的一个缩写 所以多出了一个b
如果我们写一个中文会怎么样呢 下面我们再来看一下中文的效果
例:
结果是不是很出乎意料 我输入的中文是你好呀 三个字 为什么会出现这些编码呢
在这里我们要注意 一个中文字算三个字节 在返回值中 一个\xe4\xbd\xa0这算三个自己
就等于一个中文 我们有三个中文 返回值会是9个字节 这些代码代表什么呢?这些代码代表存储 虽然咱们看不懂 但是电脑可以读懂 这是电脑的存储方式
总结
编码和解码
encode(编码方式)
decode(解码方式)
基础数据类型知识点补充
join将列表转换成字符串 每一个进行遍历 元素之间拼接 可以使用自己需要的符号进行连接 我们来演示一下
例:
结果我们看到 手机电脑平板之间都有一个下划线进行连接
join语法:变量='在这里输入需要进行连接的符号'.join(['输入元素'])
split通过指定分隔符对字符串进行切片,并返回分割后的字符串列表
下面我们来切割转换一下
例:
结果现在可以看到了 返回的结果是[]方括号代表的就是列表
字符串转换成列表使用split() 语法:变量.split()
把列表转换成字符串使用 join()语法:变量='在这里输入需要进行连接的符号'.join(['输入元素'])
循环新列表 删除老列表 append添加 remove删除 这个列表比较复杂 首先我们要先把老列表添加到新列表 然后删除老列表 这样的删除是最安全的删除 下面我们来演示一下
例:
结果我们看到了 标红线的是a列表 绿色的为b列表 我们成功的将a列表删除
将a列表添加到了b列表 第一个for是将a列表添加到b列表 第二个for是将a
列表删除 虽然比较复杂 但是这样的删除是最安全的 虽然有点绕 只要思路清楚了
还是很好理解的
下面再来一个复杂的 我想要删除所有带电脑的元素 其他的不删除 这种选择性的删除
需要我们怎么操作呢 下面我们来体验一下
例:
结果只打印了手机摄像头和手机按键 记住一定要把删除的元素记录下来
然后再删除 这个是逻辑 只有逻辑清晰了才可以更好地编程
字典删除 现在我们来演示一下字典的删除
例:
结果我们成功地删除掉了字典a 在这里要注意 列表和字典都不能再循环
的时候删除 字典在循环的时候不允许改变大小
fromkeys返回新字典 和原字典没有关系 如果直接用字典去访问feomkeys不会对
字典产生影响
例:
结果我们看到对原字典没有做出改变 如果想要改变 那就需要换一个方式
例:
结果变成了1手机2手机3手机4手机这就是组装结合
那么可以直接访问fromkeys吗 当然可以的使用类名dict就可以 下面
我们演示一下
例:
结果用dict.fromkeys可以直接访问元素
fromkeys语法:变量=dict.fromkeys(‘组合元素’ 可以是变量也可以自己定义 定义需要用[''])