4.1 Python内置数据类型概述

在Python语言中一切皆为对象,而每个对象属于某个数据类型。Python的数据类型包括内置的数据类型、模块中定义的数据类型和用户自定义的类型。

通过字面量或调用对象的构造方法可以创建数据类型的实例对象,然后使用运算符、内置函数、系统函数和对象方法进行运算操作。

4.1.1 数值数据类型

Python包括4种内置的数值类型。

(1)整数类型(int):用于表示整数。例如,123、1024、-982。

(2)布尔类型(bool):用于表示布尔逻辑值。例如,True、False。

(3)浮点类型(float):用于表示实数。例如,3.14、-1.23、1.1E10、-3e-4。

(4)复数类型(complex):用于表示复数。例如,3+4j、-2-4j、1.2+3.4j。

数值可以使用运算符(四则运算+、-、*、/以及幂运算**等)、内置函数(abs()、round()等)、math/cmath模块中的数学函数、int/float/complex/bool类的方法。

4.1.2 序列数据类型

序列数据类型表示若干有序数据。Python序列数据类型分为不可变序列数据类型和可变序列数据类型。

不可变序列数据类型包括以下3种。

(1)字符串(str):表示Unicode字符序列。例如,"hello"。

(2)元组类型(tuple):表示任意类型数据的序列。例如,(1,2,3),(1,"2")。

(3)字节序列(bytes):表示字节(8位)序列数据。例如,b'abc'。

可变序列数据类型包括以下两种。

(1)列表类型(list):表示可以修改的任意类型数据的序列。例如,[1,"two"]。

(2)字节数组(bytearray):表示可以修改的字节(8位)数组。

4.1.3 集合数据类型

集合数据类型表示若干数据的集合,数据项目没有顺序,且不重复。Python集合数据类型包括以下两种。

(1)集(set):可变对象。例如,{1,2,3}。

(2)不可变集(frozenset):不可变对象。例如:

4.1.4 字典数据类型

字典数据类型用于表示键/值对的字典。Python内置的字典数据类型为dict。例如,{1:"one",2:"two"}。

4.1.5 NoneType、NotImplementedType和EllipsisType

Python包含3种特殊的数据类型,即NoneType、NotImplementedType和EllipsisType。

1. NoneType

NoneType数据类型包含唯一值None,主要用于表示空值,如没有返回值的函数的结果。例如:

2. NotImplementedType

NotImplementedType数据类型包含唯一值NotImplemented。在进行数值运算和比较运算时,如果对象不支持,则可能返回该值。例如:

3. EllipsisType

EllipsisType数据类型包含唯一值Ellipsis,表示省略字符串符号“…”。例如:

4.1.6 其他数据类型

Python中的一切对象都有一个数据类型,模块、类、对象、函数都属于某种数据类型。

Python解释器包含内置类型,例如代码对象(Code objects)、框架对象(Frame objects)、跟踪对象(Traceback objects)、切片对象(Slice objects)、静态方法对象(Static method objects)、类方法对象(Class method objects)。这部分涉及Python语言本身的构造。