1.4.3 运算符
我们知道,大部分表达式都是由运算符与操作数组成的。Python中的运算符很多,可以分为如下几类:
· 算数运算符。
· 比较运算符。
· 赋值运算符。
· 逻辑运算符。
· 位运算符。
· 成员运算符。
· 身份运算符。
算数运算符用来进行简单的数学运算,例如加减乘除、取整、取余等。示例代码如下:
比较运算符用来进行数据的比较,比较后会返回一个布尔值作为结果。布尔类型的数据只可能有两种值:一种为True,表示真;另一种为False,表示假。比较运算符的使用举例如下:
赋值运算符只有一个作用,就是将数据的值设置给变量。最常用的赋值运算符为“=”,Python中还提供了许多复合赋值运算符,可以将运算与赋值结合,示例代码如下:
位运算符的作用是将数据按二进制位进行运算,在计算机中,所有的数据都是以二进制的方式存储的,关于二进制的相关知识,这里我们不做过多介绍,你只需要明白在二进制中只有0和1两种数字即可。Python中的位运算包括按位与运算、按位或运算、按位异或运算、按位取反运算、按位左移运算和按位右移运算。按位与运算规定进行运算的二进制位都为1时结果为1,否则为0。按位或运算规定进行运算的二进制位有一个为1时结果就为1,否则为0。按位异或运算规定进行运算的两个二进制位相异时结果为1,否则为0。按位取反运算规定将为1的位置为0,为0的位置为1。按位左移与按位右移运算是指将整体二进制位左移或右移若干位。示例代码如下:
其中按位取反运算后,结果与运算前差异很大,这是由于计算机存储负数使用的是补码的方式。在位运算中还有一个有趣的地方,按位左移与按位右移实际上就是对数值进行乘以2和除以2的操作。
逻辑运算符用来对布尔值进行运算,Python中的逻辑运算符有3种:and、or和not。and进行逻辑与运算,or进行逻辑或运算,not进行逻辑非运算,示例如下:
成员运算符用来检查包含关系。在Python中有很多集合类型,例如字符串、列表、元组等。成员运算符用来判断某个元素是否包含在集合中,示例如下:
身份运算符用来判断变量引用的对象是不是同一个对象,示例如下:
关于运算符,还有一点需要注意,在数学中运算是有优先级的,四则运算中是先乘除后加减,Python中的运算符也是这样的,当一个表达式中有多个运算符时,优先级高的运算符会先运算。运算符的优先级从高到低依次如表1-1所示。
表1-1 运算符的优先级
通常情况下,无须对运算符的优先级做强制记忆,如果必要,可以使用小括号强制指定运算顺序。