![每个人的Python:数学、算法和游戏编程训练营](https://wfqqreader-1252317822.image.myqcloud.com/cover/137/44510137/b_44510137.jpg)
1.4.3 运算符
我们知道,大部分表达式都是由运算符与操作数组成的。Python中的运算符很多,可以分为如下几类:
· 算数运算符。
· 比较运算符。
· 赋值运算符。
· 逻辑运算符。
· 位运算符。
· 成员运算符。
· 身份运算符。
算数运算符用来进行简单的数学运算,例如加减乘除、取整、取余等。示例代码如下:
![](https://epubservercos.yuewen.com/33C5B1/23721678209556606/epubprivate/OEBPS/Images/Figure-T26_11459.jpg?sign=1738894763-2UYvdVNOCalfZ3blMa8oE8QtNs9ubJ9g-0-cdb96f98ce5f67ecc264d9015bac5533)
比较运算符用来进行数据的比较,比较后会返回一个布尔值作为结果。布尔类型的数据只可能有两种值:一种为True,表示真;另一种为False,表示假。比较运算符的使用举例如下:
![](https://epubservercos.yuewen.com/33C5B1/23721678209556606/epubprivate/OEBPS/Images/Figure-T26_11461.jpg?sign=1738894763-K8GN7pUeDdagYpnDRpAlRsPibE3UbAd0-0-dba906525900f1cf712cd3206688e2af)
赋值运算符只有一个作用,就是将数据的值设置给变量。最常用的赋值运算符为“=”,Python中还提供了许多复合赋值运算符,可以将运算与赋值结合,示例代码如下:
![](https://epubservercos.yuewen.com/33C5B1/23721678209556606/epubprivate/OEBPS/Images/Figure-T26_11463.jpg?sign=1738894763-KFd9kckSyxmSIsk98fG76Iad0p1cDg3d-0-f4fb780afbf53fa983be49899518262e)
位运算符的作用是将数据按二进制位进行运算,在计算机中,所有的数据都是以二进制的方式存储的,关于二进制的相关知识,这里我们不做过多介绍,你只需要明白在二进制中只有0和1两种数字即可。Python中的位运算包括按位与运算、按位或运算、按位异或运算、按位取反运算、按位左移运算和按位右移运算。按位与运算规定进行运算的二进制位都为1时结果为1,否则为0。按位或运算规定进行运算的二进制位有一个为1时结果就为1,否则为0。按位异或运算规定进行运算的两个二进制位相异时结果为1,否则为0。按位取反运算规定将为1的位置为0,为0的位置为1。按位左移与按位右移运算是指将整体二进制位左移或右移若干位。示例代码如下:
![](https://epubservercos.yuewen.com/33C5B1/23721678209556606/epubprivate/OEBPS/Images/Figure-T27_11538.jpg?sign=1738894763-xrDyYYMfu4Bsk470Fn9YOIiLbXazW0U9-0-ea09b926a916e8a39c2655a7df48cfb4)
其中按位取反运算后,结果与运算前差异很大,这是由于计算机存储负数使用的是补码的方式。在位运算中还有一个有趣的地方,按位左移与按位右移实际上就是对数值进行乘以2和除以2的操作。
逻辑运算符用来对布尔值进行运算,Python中的逻辑运算符有3种:and、or和not。and进行逻辑与运算,or进行逻辑或运算,not进行逻辑非运算,示例如下:
![](https://epubservercos.yuewen.com/33C5B1/23721678209556606/epubprivate/OEBPS/Images/Figure-T27_11540.jpg?sign=1738894763-0xiKS8TD591NDeMoKVgl8qSSxHlHkaKz-0-d663ff8a48321e01d4836b5bc06ffa16)
成员运算符用来检查包含关系。在Python中有很多集合类型,例如字符串、列表、元组等。成员运算符用来判断某个元素是否包含在集合中,示例如下:
![](https://epubservercos.yuewen.com/33C5B1/23721678209556606/epubprivate/OEBPS/Images/Figure-T27_11542.jpg?sign=1738894763-dSdQsJDypy4SNm8W6B0Kp2CWIawyO6CR-0-783b5f285701331c98eaef7b51da68a6)
身份运算符用来判断变量引用的对象是不是同一个对象,示例如下:
![](https://epubservercos.yuewen.com/33C5B1/23721678209556606/epubprivate/OEBPS/Images/Figure-T27_28373.jpg?sign=1738894763-SeC6e3UVr7edxr7RBB4lRLmBQSCxPh8h-0-1495924f5cab2a6ff78d20930056672f)
关于运算符,还有一点需要注意,在数学中运算是有优先级的,四则运算中是先乘除后加减,Python中的运算符也是这样的,当一个表达式中有多个运算符时,优先级高的运算符会先运算。运算符的优先级从高到低依次如表1-1所示。
表1-1 运算符的优先级
![](https://epubservercos.yuewen.com/33C5B1/23721678209556606/epubprivate/OEBPS/Images/Figure-T28_28374.jpg?sign=1738894763-ajAdIz5jv6kssIGj6eIHc9VPSzKIuuAv-0-7f2a6e5dd19faba14ef6df0228e3fd49)
通常情况下,无须对运算符的优先级做强制记忆,如果必要,可以使用小括号强制指定运算顺序。