Python学习总结(一)
实习所在公司涉及Python开发,由于之前只是用Python进行科学计算,并不涉及复杂的语言特性。所以在正式开始开发之前,想用一些时间对Python知识进行回顾复习的同时学习高级语言特性。
由于我之前经常使用C++,因此在文章中会用星号‘*’重点标记Python与C++不同的部分,方便那些与我情况相似的同学学习。
对象
Python 中,一切皆对象。每个对象由:标识(identity)、类型(type)、value(值)组成。
- 标识用于唯一标识对象,通常对应于对象在计算机内存中的地址。使用内置函数id(obj)可返回对象obj 的标识。
- 类型用于表示对象存储的“数据”的类型。类型可以限制对象的取值范围以及可执行的操作。可以使用type(obj)获得对象的所属类型。
- 值表示对象所存储的数据的信息。使用print(obj)可以直接打印出值。
*变量
在Python中,变量其实是对象的引用。因为,变量存储的就是对象的id(地址)。
- 变量通过id引用了对象。
- 变量位于:栈内存
- 对象位于:堆内存
示意图如下,图中,变量a是一个值为3的int对象的引用,其存储了该对象的id信息(类似于C++中的地址);变量b是一个值为“我爱你”的str对象的引用。
*int类型范围
在Python2中,int是32位的,long是64位,这和64位平台上的C++一致。但在Python3中,int可以储存任意大小的整数,long被取消。所以Python特别适合科学运算。
*整数的2、8、10、16数值表示
在C++中只支持8、10、16进制赋值,且语法上八进制数值表示有一定区别。
bin = 0b01 # 或0B01, 二进制