Python 基础第六天
今日主要内容:
1.is ,==,id的用法区别
2.小数据池的概念
3.编码解读2
1.is,==,id的用法
1)is 用法:is是比较内存地址.
例:
a = 'alex'
b='alex'
print(a is b)
结果:
a = 'alex'
b=' alex'
print(a is b)
结论:
2)==
==的作用是比较两边的数值是否相等,包括数字,字符串
a = 'alex'
b='alex'
print(a == b)
结果:
a = 'alex'
b=' alex'
print(a is b)
结论:
3)id 查看内存地址命令
a = 'alex'
b='alex'
print(id(a))
print(id(b))
结论:值相同
a = 'alex'
b=' alex'
print(id(a))
print(id(b))
结论:值不同
以上是对上述三个用法的简单介绍,总结:简单总结就是,如果比较数值使用'==',如果比较内存地址是否相同使用'is',如果查看内存空间地址使用'id'
2.小数据池
什么是小数据池:为了节省内存空间,特意开辟出的供数字,字符串一定范围公用的内存空间.
只存在数字和字符串中,其他数据类型中没有这个概念.
int:
-5~256
str:
1,如果含有特殊字符,不存在小数据池。
2,str(单个) * int int > 20 不存在小数据池。
3.编码补充2
bytes 类型
由于python3x 中 字符串(str) 在内存中的编码方式是unicode。python3x 中的str不能直接存储,和发送。
所以要应用新的数据类型进行存储和发送,就是bytes.
bytes 他的编码方式是非unicode(utf-8,gbk,gb2012.....)。
对于英文:
str: 表现形式:s = 'laonanhai'
内部编码:unicode
bytes:
表现形式:s = b'laonanhai'
内部编码:非unicode.
对于中文:
str: 表现形式: s = '中国'
内部编码:unicode
bytes: 00000001
表现形式:s1 = b'\xe4\xb8\xad\xe5\x9b\xbd'
内部编码:非unicode.
英文形式的编码,解码:
中文形式的编码解码:
以上是简单的内存中字符串编码的一些转换,另外,bytes类型数据只针对于字符串str类型的数据转换,写的程序中除了str类型在内存中默认是Unicode外,其他还是utf-8类型.