在任何语言中都会涉及到数据类型和数据结构,Python 的数据类型也比较多,但是其实并不是所有的数据类型都会被用到。
其实有些东西感觉应该属于数据结构类的。但是很多时候我们却有放在一起来讨论。
为了简化我们的内容,我们会在后面单独开一个章节用来讨论 Python 的数据类型和数据结构。
基本数据类型
与所有语言都一样,我们都会遇到一些基本的数据类型。
下面我们按照常见的使用频率来进行一些讨论。
文本类型
这就是我们最常用的字符串。
一个字母 A 或者一串字母 AAA 都可以认为是一个字符串,在所有语言中,字符串是最基本的,几乎所有的文本都可以被定义为字符串,数字 3 也可以被定义为字符串。
数字类型
在自然世界中,除了字符以外,我们还会使用数字。计算机通常也是通过计算来达到目的。
在 Python 中,有 3 个数字类型。
- 整形(int)
- 浮点型(float)
- 复数(complex)
布尔类型
从小到大,我们通常会做一些叫判断题的东西。
针对判断题,我们都会知道有 Y(是) / N (否) 这 2 个答案,基本上所有的语言都会有这个数据类型。这是因为这个类型将会对程序的流程判断起到非常重要的作用。
很多时候布尔类型又会和整型进行互换,通常我们会使用整数来表示 T/F。
至于 1 是 T 还是 F,其实都可以和每个人的习惯有关系,通常表达的是 1 为 T,0 为 F。
二进制类型
在二进制类型中,我们通常用于存储一些二进制的数据,包括可以使用 bytes, bytearray, memoryview 等。
与字符串不同的是,二进制数据通常不能够被人工从计算机中读取,可以想象二进制数据就是一大堆的 0,1 的集合。比如说一张照片,其实就是一堆 0,1 的集合,但是这个集合中使用了特定的编码方式以便于表达特定的数据。
在程序语言中,通常需要具备处理二进制数据的能力,所以我们在这里单独列出来。
但是在实际使用的时候,在这里可能会涉及到文件读取,存储,转换,计算,抽样等。
其他类型
可能不是非常准确的表述,很多人也会将使用的其他数据结构认为是 Python 使用的数据类型。我们认为这个应该也可以称为数据结构。
比如说在很多教材中可能会说 Python 还会有 Lists,Tuples, Dictionaries 等数据类型。
我们在这里打算借用 Java 的数据类型和结构定义。
Collection (集合数据类型),在集合数据类型中,分为有序的和无序的。在集合数据类型中,我们通常用这个数据结构存储元数据或者对象。
有序的集合数据类型,通常包括有 Lists(列表),Tuples(元组)
无序的集合数据类型,通常包括有 Set,frozenset。
Mapping 数据类型,与集合数据类型不同的时候, Mapping 通常存储的是一个 K-V 对,在 Python 对应的是 dict(字典)。