Python基础视频教程
上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人

2.2 数据类型

编程是数据和逻辑的紧密结合。如果将编程比喻成建造大楼,那么不同的数据类型就是不同的材料,如钢筋、水泥、生石灰等。每种材料都有其用处,缺一不可。只有先弄明白Python中各种“材料”的用途,才能用Python建造一栋“摩天大楼”。下面我们先从数据入手,学习几种常用的Python数据类型。

2.2.1 整数

整数可以进行最常见的加、减、乘、除四则运算。在Python命令行模式下,可以把Python当成一个计算器。可在Python命令行模式下运行以下代码:

除了四则运算外,还可以进行幂运算、取模运算(取余数)和整除运算,代码如下:

2.2.2 小数

小数同样可以进行加、减、乘、除四则运算。在Python命令行模式下运行以下代码:

细心的读者会发现,1.234 - 4.321的结果并不是-3.087。这是什么原因呢?因为Python默认的小数类型是有精度损失的。毕竟计算机的世界只有0和1两种状态,无法准确表示小数,因此这种误差是在合理范围内的。其实不止Python,很多编程语言都有精度损失的问题。这是因为二进制在表示小数时经常遇到无限循环小数,而计算机的位数又有限,所以就造成了精度损失。在合理范围内,我们可以忽略这种精度损失。

2.2.3 字符串

字符串是用来存储“字符”的。字符串的定义是,用英文的双引号""括起来,或者用英文的单引号' '括起来,可以存储数字、符号、中文、英文、日文等一切可见的字符。

在Python命令行模式下运行以下代码:

字符串也可以进行“+”操作。只不过字符串的“+”操作是把字符串拼接起来。而字符串的“*”操作相当于复制,“a*10”就相当于把a复制10遍然后拼接起来。我们可以试一下字符串是否有“-”和“/”操作。

在Python命令行模式下运行以下代码:

此处显示两个报错信息:一个提示没有“-”操作,另一个提示没有“/”操作。因此,我们得知字符串是不能进行“-”和“/”运算的。

2.2.4 布尔值

在计算机的世界里,一切都是由0和1组成的。我们常说的“是”和“非”,对应的就是Python中的True和False。当然,也可以将其理解成“对”和“错”。True和False就是布尔值。

在Python命令行模式下运行以下代码:

从上面的这个例子中,可以看到一个新的符号—“==”。我们知道一个等号为赋值,那么两个等号是什么意思呢?两个等号用于判断等号左边的值和等号右边的值是否相等。在示例中,因为1不等于2,所以“1 == 2”的运算结果是False;因为1等于1,所以“1 == 1”的运算结果是True。除了“==”外,还有哪些比较运算符?

在Python命令行模式下运行以下代码:

“!=”符号表示,如果两边的值不相等,那么返回True,否则返回False。

“<”符号表示,如果右边的值比左边的值大,那么返回True,否则返回False。左右两边的值相等时也返回False。

“<=”符号表示,如果右边的值比左边的值大,或者两边的值相等,那么返回True,否则返回False。

“>”符号表示,如果右边的值比左边的值小,那么返回True,否则返回False。左右两边的值相等时也返回False。

“>=”符号表示,如果右边的值比左边的值小,或者两边的值相等,那么返回True,否则返回False。

上面的例子是通过比较运算符来得到布尔值的。布尔值与布尔值之间也是可以运算的,使用的运算符叫作逻辑运算符。

在Python命令行模式下运行以下代码:

逻辑运算符“and”,翻译成中文就是“并且”的意思。只有and两边的值都是True,才会返回True。

逻辑运算符“or”,翻译成中文就是“或”的意思。or两边的值有一个是True,就会返回True;只有or两边的值都是False,才会返回False。

逻辑运算符“not”,翻译成中文就是“否定”的意思,可以理解成取相反值或者颠倒是非。

下面用一个表格总结一下布尔值的运算(见表2-1)。

表2-1

2.2.5 None

None是一个特殊的常量。常量的值是不可变的。None既不是False,又不是0,也不是空字符串。可以把None理解为“空”。