注:字符串驻留机制:对于较小的字符串,为了系统性能会保留该值的一个副本,当创建新的字符串
时,直接指向该副本即可,因此第一个例子中‘hi’在内存中只有一个副本,所以a和b的内存值一样。而 x
和 y 是长字符串,并不会驻留,python在内存中创建了两个对象。
结论:is 是对象标识符(object identity),== 的意思是相等,两者的区别在于:is 的作用是比较两个
对象在内存中是否拥有同一块内存空间,并不适用判断两个字符串是否相等;== 则是检验两个对象的值
是否相等。一般情况下,如果 x is y 为True,则 x == y 的值也为True,反之则不然。
5.True/False的求值
尽可能使用隐式False
所有的“空值”都被认为是false,例如:0,None,[ ] , { } , " "
6.Unicode编码
背景:
1)最早的ACSII编码用一个字节表示128个字符(英文大小写,数字,其他符号),但是显然128个字符
数远远不够
2)于是出现了不同的字符编码系统,比如汉字编码GBK,但是不同的编码系统之间存在冲突。比如:在
两种不同的编码系统中,相同的编码可能代表不同的意义或不同的编码代表相同的字符,因此不同语言
的文本无法进行很好的转换。
3)为了解决以上冲突,必须为不同的文字分配统一编码,Unicode(Universal Multiple-Octet Code
Character Set)由此产生,被称为:“万国码”,为每种语言提供了唯一的二进制编码表示方式,提供从数
字代码到不同语言字符集之间的映射,可以满足跨平台、跨语言之间的文本处理要求。
层次:
Unicode编码系统分为编码方式和实现方式。
1)编码方式:分为 UCS-2 和 UCS-4 两种方式。