2.1 数据类型

起初,计算机被设计成计算数据和处理数据的机器。因此,编程从它诞生开始就理所当然具有处理各种数据的基因。远古编程语言Pascal之父Niklaus E.Writh曾写过这么一个公式。

这句话的意思是,算法加数据结构就等于程序。反过来讲,程序设计语言提供的数据类型、运算符、程序代码封装方式等技术也会影响算法与数据结构的实现方式。因此,数据类型是编程语言的基础,抛开数据类型来谈论编程架构就好比是空中楼阁,根本无法深入其内部机制。既然数据类型这么重要,那么本章就先来聊聊Python的数据类型和变量等元素。

2.1.1 整数类型

Python可以处理任意大小的整数,支持二进制、八进制、十进制和十六进制的表示方法。可能有些朋友会问,什么是二进制、八进制、十进制、十六进制?正常生活中使用阿拉伯数字就是十进制计数方法,计算方法是逢十进一,这个不用多做解释。顾名思义,二进制就是逢二进一,八进制就是逢八进一,十六进制逢十六进一。用阿拉伯数字16来举例,二进制就是10000,八进制就是0020,十六进制就是0010。

Python用int来表示整数类型。

例2-1 不同进制的写法

以上写法都是表示阿拉伯数字10。

在Python 2.x中分别是int和long两种类型。从Python 3.x之后,整数类型为int,不再区分整数int与长整数long,整数的长度不受限制。

小白逆袭: 注释#

Python 编程语言的单行注释常以#开头, 单行注释可以作为单独的一行放在被注释代码行之上, 也可以放在语句或者表达式之后, #后的字符和命令不会被系统执行。

2.1.2 浮点数类型

浮点数也就是小数,在计算机领域中我们之所以把小数称为浮点数,是因为浮点数的小数点位置是浮动可变的。浮点数除了数学写法,如123.456,还支持科学计数法,如1.23456e2。

浮点数也称为float型。

例2-2 浮点数数据类型

2.1.3 布尔类型

布尔值只有True、False两种值,要么是True,要么是False,对应计算机底层机器编码中的0和1。在Python中,可以直接用True、False表示布尔值,也可以通过布尔运算计算出来,例如,3<5会产生布尔值True,而2==1会产生布尔值False。

例2-3 布尔类型

2.1.4 复数类型

Python支持复数的直接表达形式,例如3+5j,跟数学上的复数表示一样,唯一不同的是虚部的i换成了j。实际上,这个类型并不能算作常用类型,大家了解下就可以了。

例2-4 复数数据类型

2.1.5 字符串类型

字符串是以单引号或双引号括起来的任意文本,比如'hello'和"hello",字符串还有原始字符串表示法、字节字符串表示法和Unicode字符串表示法,而且可以书写成多行的形式,也就是用三个单引号或三个双引号开头,三个单引号或三个双引号结尾。

例2-5 字符串数据类型