小知识点
Python中的print()中的括号可以不加,但是Python3的必须加
Python2中有xrange,Python3中只有range
Python中的raw_input在Python3中为input
=等于号是赋值;==两个等号为比较两边的值是否相等;
is为比较两边的内存地址,若内存地址相同就返回True,否则就返回False
id() 括号内输入内容即可返回对应的内存地址
小数据池:
在字符串中有一个概念叫做“小数据池”,当相同的值赋给不同的变量,在一定的范围内,他们的内存地址是相同的,而这个范围指的就是“小数据池”!这样就可以节省空间
小数据池的范围:数字范围:—5~256
字符串的范围:1、含有特殊字符不共用同一个内存地址
2、str X 20的范围内共用同一个内存地址,超出20用不同的内存地址(20个相同的字符串用同一个内存地址,超出则用不同的内存地址)
编码
字节:是种单位。8位(bit)==一个字节
字符:一个字符串或列表或字典元组等中的能看到的最小单位就是字符
ASCII码:一个字符8(bit)==1字节 表示一个字符
Unicode:一个字符32(bit)==4字节 表示一个字符
utf-8:一个英文字符8(bit)==1字节 一个中文字符24(bit)==3字节 一个欧洲文字用16位==2个字节 表示一个字符
gbk:一个英文字符8(bit)==1字节 一个中文字符16(bit)==2字节 表示一个字符
各个编码之间的二进制是不能相互识别的,会产生乱码。
文件的储存和传输不能使Unicode,因为占用资源太多。
Python3中的字符串在内存中是用Unicode编码的
bytes
还有一种数据类型叫做bytes,与字符串极为相似,但编码方式不是Unicode
对于英文:
str的表现形式为:name = “aires” 编码方式为Unicode
bytes的表现形式为:name = b“aires” 编码方式为utf- 8,gbk等除了Unicode外的任何一种。
对于中文:
str的表现形式为:name = “阿瑞斯” 编码方式为Unicode
bytes的表象形式为:name = b‘x\e56\e56\e56 (16进制) 编码方式为utf-8,gbk等除Unicode外的任何一种。
str—>bytes 转换用:encode 编码转换
name = “aires”
name1 = name.encode("utf-8") #将name的字符串编码方式转换为utf-8,可以转换别的,例如gbk
print(name1)
相反 bytes--->str 使用:decode 解码
s = "asfgjkk"
b = s.encode('utf-8')
print(b)
#byte --->str decode 解码
s1 = b.decode('gbk') #可用不同的编码方式进行解码(不确定)
print(s1)
【推荐】还在用 ECharts 开发大屏?试试这款永久免费的开源 BI 工具!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步