1. is 和 == 的区别
#小数据池
# 数字小数据池的范围 -5 ~ 256
a=-5 b=-5;在小数据池范围内
a is b 返回True
# 字符串中如果有特殊字符(如@)他们的内存地址就不一样;cmd下执行;特殊字符(加减号@等特殊字符);可以在window终端试试
# 字符串中单个*20以内他们的内存地址一样,单个*21以上内存地址不一致;不是乘号号是相等的
#总结:
# == 比较 比较的俩边的值
# is 比较 比较的是内存地址 id()
2. 编码和解码
ascii 码:
不支持 中文
支持 英文 数字 符号
8位 一个字节
gbk码 国标:
支持 中文,英文,数字,符号
英文 16位 二个字节
中文 16位 二个字节
unicode 万国码;不支持传输,不支持存储
支持 中文,英文,数字,符号
英文 32 位 四个字节
中文 32位 四个字节
utf-8 长度可变的万国码 最少用8位
英文 8位 一个字节
中文 24位 三个字节
Python3中 程序运行阶段 使用的是unicode,在计算的时候非常方便 显示所有的内容
bytes类型
传输和存储都是使用bytes(二进制)
pycharm 存储的时候默认是使用utf-8
encode decode 以什么编码就以什么解码
总结:
is 和 == 区别
is 比较内存地址
id() ---- 获取内存地址
小数据池:
数字的小数据池范围是 -5 ~ 256
字符串:
字符串中不能包含特殊符号 + - * / @ 等等
字符串单个字符*20以内内存地址都是一样的,单个字符*21以上内存地址不一致
注意: pycharm是个坑, 一个py文件中所有相同的字符串 一般都是使用一样的内存地址
== 比较俩边的值
编码和解码
encode(编码方式) ---- 拿到明文编码后对应的字节
decode(编码方式) -----将编码后的字节解码成对应的明文
注意: 用什么进行编码就要什么进行解码 不然后会懵逼!