python赋值也被称作绑定,我们是把一个名字绑定给一个对象。变量名有时可能被称为绑定变量。
当你将对象作为参数传递给函数时,新的局域变量创建了对原始对象的引用,而不是复制。如果在函数里绑定一个新对象到一个变量,这个变动不会反映到上一层。因此可以改变可变参数的内容。
与许多编译语言(如JAVA和C++)对比,Python中的对象引用不包含附属的类型。
变量是在特殊命名空间中的对象的名字,类型信息保存在对象自身中。一些人可能会说Python不是“类型化语言”。这是不正确的。
Python被认为是强类型化语言。
isinstance
函数检查对象是某个类型的实例
isinstance
可以用类型元组,检查对象的类型是否在元组中
In [23]: a = 5; b = 4.5
In [24]: isinstance(a, (int, float))
Out[24]: True
In [25]: isinstance(b, (int, float))
Out[25]: True
在Python中,模块就是一个有.py
扩展名、包含Python代码的文件。
要判断两个引用是否指向同一个对象,可以使用is
方法。is not
可以判断两个对象是不同的
使用is
比较与==
运算符不同
is
和is not
常用来判断一个变量是否为None
,因为只有一个None
的实例
Python中的大多数对象,比如列表、字典、NumPy数组,和用户定义的类型(类),都是可变的。意味着这些对象或包含的值可以被修改。
字符串和元组,是不可变的。
Python的标准库中有一些内建的类型,用于处理数值数据、字符串、布尔值,和日期时间。这些单值类型被称为标量类型,本书中称其为标量。
底除运算符//
浮点数使用Python的float
类型。每个数都是双精度(64位)的值。也可以用科学计数法表示。
字符串是一个序列的Unicode字符,因此可以像其它序列,比如列表和元组一样处理:
In [64]: s = 'python'
In [65]: list(s)
Out[65]: ['p', 'y', 't', 'h', 'o', 'n']
In [66]: s[:3]
Out[66]: 'pyt'
语法s[:3]
被称作切片
反斜杠是转义字符,意思是它备用来表示特殊字符,比如换行符\n或Unicode字符。
如果字符串中包含许多反斜杠,但没有特殊字符,这样做就很麻烦。幸好,可以在字符串前面加一个r,表明字符就是它自身; r表示raw。