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类型.

 

posted @ 2018-03-26 16:10  tom2ling  阅读(127)  评论(0编辑  收藏  举报