1. name = "alex"
print(id(name))
li = [1,2,3]
print(id(li))
2.is判断的是内存地址
name1 = "alex@"
name2 = "alex@"
print(name1 == name2)
print(name1 is name2)
在pycharm里面2个结果都是True在python小黑框里,print(name1 is name2)为False
3.小数据池
python中int str 有小数据池int -5-----256str
如果是全部由字母组成的字符串,都是指向一个内存地址
如果是数字与str(单个字母)相乘,则20(含)以内的都是同一个内存地址其他数据类型,则没有小数据池概念
4.s1 = "alex"s2 = "alex"
问:如果改变s1,s2会改变吗?
答:字符串,元组,int都是不可改变数据类型。dic会改变。
5.
unicode :万国码(默认为32位为一个字符)
A : 0000 0001 0000 0001 0000 0001 0000 0001
中: 0000 0101 0000 0101 0000 0101 0000 0101
升级:utf-8:用最少8魏表示一个字符
A : 0000 0001 8位
欧洲 : 0000 0001 0000 0001 16位
中 : 0000 0101 0000 0101 0000 0101 24位
gbk :国标
a : 0000 0001 8位
中: 0000 0101 0000 0101 16位
1.不同编译之间是不能互相识别对方的二进制,会报错,或者产生乱码
2.在你的字符串(文件)存储,传输时,必须使用非unicode的二进制(01010101)
6.数据类型
(1)byte
对于非中文:表现形式 :b"alex"
内部编码:utf-8,gbk,gb2312...(非unicode)你设定的
对于中文:表现形式: b"xe3xf2x36xe3xf2x36"
内部编码:utf-8,gbk,gb2312...(非unicode)你设定的
(2)str
对于非中文:表现形式 :"alex"
内部编码: unicode
对于中文:表现形式 :"中国"
内部编码: unicode
7.表现形式与转换
encode 是表示转化成utf-8 g格式
(1)英文表现形式与转换
s = "alex"
b = s.encode("utf-8")
print(s,type(s))
print(b,type(b))
# (2)中文表现形式与转换
s = "我爱中国"
b = s.encode("utf-8")
print(s,type(s))
print(b,type(b))