python 学习笔记(1、数据类型)

1: python中的每个对象都可以分为不可变性和可变性。在核心类型中,数字、字符串、元组是不可变的;列表、字典可以自由地改变。

2:  以r开口的字符串可以关闭反斜线转义机制,以u开头的字符串支持unicode字符串形式。ord()是将字符转换为ASCII码(以10进制显示结果),chr()执行相反的操作。

3:  元组的不可变性经常用于提供一种完整性约束,例如传递一个对象的集合时,集合内的对象是不能改变的。

4:  python的长整型支持无穷无尽的大小,只要内存空间允许,一般在数字后面加L。

5:  在python中,变量名没有类型,类型是属于对象。只是把变量名引用了对象。

6:    在python中,变量总是一个指向对象的指针,而不是可改变的内存区域的标签:给一变量赋一个新的值,并不是替换原始的对象,而是让这个变量去引用完全不同的一个对象。实际的效果就是对一个变量赋值,仅仅会影响那个被赋值的变量。例:a=3  b=a  a=a+2  并没有改变b

7:  “==”操作符:测试两个被引用的对象是否有相同的值,往往用作相等的检查。“is”操作符:是在检查对象的同一性。如果两个变量名精确地指向同一个对象,它会返回True,这是一种更严格形式的相等测试。     要注意小的整数和小的字符串,它们会被python缓存到一个系统表中并复用。因此此时用is操作符会返回True。

8: 在python中,零字符('\0')不会像C语言那样去中断一个字符串。相反,python在内存中保持了整个字符串的长度和文本。事实上,python没有字符会中断一个字符串。

9:  方法是类型特定的,表达式是通用的。方法如find()只能用于字符串,in、切片可以用于序列。

10: 列表是可变的,支持实地改变列表对象的操作。即,若果在远处修改一个列表对象时,可能同时会影响一个以上指向它的引用。 索引和分片的赋值都是原地修改,他们对列表进行直接修改,而不是生成一个新的列表作为结果。L.append()是在原列表上修改,L+[1,2]是生成一个新的列表。

11: 字典又被称为关联数组或哈希表。字典内的项是无序的。可变长、任意层嵌套。在原处对字典进行修改、扩展以及缩短都不需要生成新的字典。

12:字典序列运算无效,因其是映射机制不是序列,元素之间没有顺序的概念。给新索引赋值会添加项。键可以是任何不可变对象。

13: dict.fromkeys(['a','b','c'],0)

14:   元组不能在原处修改,不支持任何方法调用;但支持字符串和列表的一般序列操作;通常可以将元组转换为列表去使用列表的方法。元组里嵌套的列表等可变类型是可以在原处修改的。

15: eval()可以把字符串转换成对象,但要防止删除计算机上所有文件的表达式。flush()能够强制性地将缓存输出写入磁盘(文件总会默认进行缓存)。

16: pickle模块能够让我们直接在文件中存储几乎任何python对象的高级工具,不需要把字符串转来转去。pickle模块执行所谓的对象序列化,也就是对象和字节字符串之间的相互转换。

17: struct模块能够构造并解析打包的二进制数据,即能够把文件中的字符串解读为二进制数据。

原文地址:https://www.cnblogs.com/TianMG/p/2707535.html