7.2 Python的数据类型及其有关特性

在计算机中,变量和常量被统称为数据。

数据是有类型的。为了方便存储、使用和检查,Python对数据类型做了相应的规定。

7.2.1 Python的数据类型分类

Python 3共支持以下6种标准的数据类型:

· Number(数字)。

· String(字符串)。

· List(列表)。

· Tuple(元组)。

· Set(集合)。

· Dictionary(字典)。

若按大类分,则Python中的数据又可被分为两类,分别为:

· 基本类型。

· 构造类型。

图7-1形象地归纳了Python两大类型各自包括的数据类型。

图7-1 Python两大类型各自包括的数据类型

1.基本类型

基本类型均为数值类型,用于存储数字,是最常用的类型。基本类型中还包括布尔类型,它也是数值类型吗?布尔类型可被视为数值类型,因为在Python看来,非0的值就是布尔类型的“真(True)”,0就是布尔类型的“假(False)”。例如:

>>> bool(3)
True
>>> bool(0)
False
>>>

Python 3以后的各版本支持整型(int)、浮点型(float)、布尔型(bool)、复数型(complex)4种基本类型。

自Python 3以后,整型只有一种:长整型。而Python 2中的整型被分为整型(int)和长整型(long int)。只要计算机内存允许,Python 3支持足够大的整数,这就使得整数的使用更加方便。

2.构造类型

构造类型是指由多个或多种类型数据构成的数据类型。Python 3中的构造类数据包括字符串、列表、元组、字典、集合5种类型。

基本类型和构造类型使用不同的运算符。

7.2.2 Python变量的基本特性

1.创建变量

Python中的变量不需要事先被声明,但每个变量在使用前均须被赋值。只有在变量被赋值后,该变量才会被创建。

在Python中,变量就是变量,从本质上来说,它并没有类型,所谓的“类型”是指变量所指的内存中对象的类型。要理解这一点确实有一定的难度,因此需要学习者花时间慢慢加以实践和体会。

赋值号(=)用于给变量赋值。

赋值号(=)运算符左侧是变量名,右侧是将赋给变量的值或表达式。

综上所述,不难得出结论:在同一个程序中,不同类型的数据可使用同一个变量名,而不会导致程序出错。

举例如下:

>>> x=3
>>> x='hello'
>>>

在上例中,变量x首先被定义为整型,后又被定义为字符串类型。但是,程序不会出现任何问题,这就是Python的“动态性”。

2.如何查看变量的“类型”

通过内置函数type()可以查看变量所指的对象的类型。记住,得到的不是变量的类型,而是变量所指的对象的类型。

举例如下:

>>> a, b, c, d = 20, 5.5, True, 4+3j
>>> print(type(a), type(b), type(c), type(d))
<class 'int'> <class 'float'> <class 'bool'> <class 'complex'>
>>>

注意:在Python 2中是没有布尔型的,它以数字0表示False,以数字1表示True。自Python 3以后,把True和False定义成布尔型的关键字,但它们的本质还是数值1和0,因此,它们可以与数字一起参与运算。例如:

>>> x=3+True
>>> x
4
>>> x=3-False
>>> x
3
>>>

在混合运算时,Python自动将整型转换为浮点型参与运算。例如,x=3+7.8,右侧的表达式涉及混合运算,因此type(x)的返回值为“float”。