![数据结构与算法(Python版)](https://wfqqreader-1252317822.image.myqcloud.com/cover/974/41864974/b_41864974.jpg)
3.2 运算符
变量之间的运算可以通过运算符实现,运算符包括算术运算符、关系运算符、赋值运算符、逻辑运算符、位运算符、成员运算符和身份运算符等。
3.2.1 算术运算符
算术运算符如表3.1所示。
表3.1 算术运算符
![](https://epubservercos.yuewen.com/3C8452/21889219301185006/epubprivate/OEBPS/Images/978-7-111-66363-8_36_04.jpg?sign=1738883719-FaGNjL19Edj3twzVdQUj3vurZ18NiaWV-0-7561f55e297f953b46fe9010b37d94c8)
运算符的使用和运算数的数据类型有很大关系,加法运行效果如图3.3所示。
【例3-2】算术运算符举例。
下面给出除法(/)、整除(//)和求余数(%)的运算效果如图3.4所示。
![](https://epubservercos.yuewen.com/3C8452/21889219301185006/epubprivate/OEBPS/Images/978-7-111-66363-8_37_01.jpg?sign=1738883719-Ks9g8XSztUF5TK855LI70Xekf5uEqIfl-0-707a236b3718cdbaa89cafbb65ab6fbf)
图3.3 加法运算效果
![](https://epubservercos.yuewen.com/3C8452/21889219301185006/epubprivate/OEBPS/Images/978-7-111-66363-8_37_02.jpg?sign=1738883719-NSyyZtVZDL05f6NkO5XCg3f3Antg265V-0-354e3ac0e9f97a17b510304d8d6ae894)
图3.4 除法(/)、整除(//)和求余数(%)的运算效果
3.2.2 关系运算符
关系运算符又称比较运算符,是双目运算符,用于比较两个操作数的大小,结果是布尔值,即True(真)或False(假)。操作数可以是数值型或字符型。表3.2列出了Python中的关系运算符。
表3.2 关系运算符
![](https://epubservercos.yuewen.com/3C8452/21889219301185006/epubprivate/OEBPS/Images/978-7-111-66363-8_37_03.jpg?sign=1738883719-3cyLv8MdAy2iK7kDig69eoVcgJw6LAec-0-3867f769836434e8780f3a7dd60fe962)
关系运算符在进行比较时,需注意以下规则。
● 两个操作数是数字,按大小进行比较。需要注意的是,Python中的“==”表示等于,“!=”表示不等于,如图3.5所示。
![](https://epubservercos.yuewen.com/3C8452/21889219301185006/epubprivate/OEBPS/Images/978-7-111-66363-8_37_04.jpg?sign=1738883719-OHdz4ArJDciN1B95eCsHvOhsZi3CH1Sn-0-eb4081007af54ee84d6e434bdb48bcce)
图3.5 操作数为数字的运行效果
●两个操作数是字符型,按字符的ASCII码值从左到右逐一进行比较,即首先比较两个字符串中的第1个字符,ASCII码值大的字符串为大,如果第一个字符相同,则比较第二个字符,以此类推,直到出现不同的字符为止,如图3.6所示。
![](https://epubservercos.yuewen.com/3C8452/21889219301185006/epubprivate/OEBPS/Images/978-7-111-66363-8_38_01.jpg?sign=1738883719-rYOeQF64KK2mnqZb82zDIX4aE87koxqg-0-512dfb7a06e2d8007ff5ad26a51bf45d)
图3.6 操作数为字符串的运行效果
3.2.3 赋值运算符
赋值运算符如表3.3所示。
表3.3 复合赋值运算符
![](https://epubservercos.yuewen.com/3C8452/21889219301185006/epubprivate/OEBPS/Images/978-7-111-66363-8_38_02.jpg?sign=1738883719-3P6zNO1OjAPNnhE0iA5m0MyVcBc17iYi-0-7d6c0800c50fd50067f76db5004dd30c)
【例3-3】赋值运算符举例。
赋值运算符举例如图3.7所示。
3.2.4 逻辑运算符
逻辑运算符如表3.4所示。除not是单目运算符外,其余都是双目运算符,逻辑运算的结果是布尔值True或False。
表3.4 逻辑运算符
![](https://epubservercos.yuewen.com/3C8452/21889219301185006/epubprivate/OEBPS/Images/978-7-111-66363-8_38_03.jpg?sign=1738883719-tghYoBWGdxdBBNBHaQHPdndiVPuRzchW-0-d2c8509e99ace807e9cddf48b0c45d40)
![](https://epubservercos.yuewen.com/3C8452/21889219301185006/epubprivate/OEBPS/Images/978-7-111-66363-8_38_04.jpg?sign=1738883719-r7dV1YVsE1cIXfJxPcF4Mj2plFNbcVSg-0-d826cf7b8fdec7c62914ca81062eb9d5)
图3.7 赋值运算符举例
【例3-4】逻辑运算符举例。
逻辑运算符举例如图3.8所示。
![](https://epubservercos.yuewen.com/3C8452/21889219301185006/epubprivate/OEBPS/Images/978-7-111-66363-8_39_01.jpg?sign=1738883719-4hw8DkansvHPYxZCaIB2KB5aNw62et6S-0-201d8ab267acda60e1f560e26ae6a9ea)
图3.8 逻辑运算符举例
注意:False不能简写成F或false等。
3.2.5 位运算符
位运算就把数字转换为二进制数字来运算。Python中的位运算符有:左移(<<)、右移(>>)、按位与(&)、按位或(|)、按位异或(^)和按位翻转(~)。位运算符如表3.5所示。
表3.5 位运算符
![](https://epubservercos.yuewen.com/3C8452/21889219301185006/epubprivate/OEBPS/Images/978-7-111-66363-8_39_02.jpg?sign=1738883719-ADgBautatRj95xSCWYFVpPTL2vo0EyRb-0-315d3571167786cf3bde149adfcc816a)
【例3-5】位运算符举例。
位运算符举例如图3.9所示。
![](https://epubservercos.yuewen.com/3C8452/21889219301185006/epubprivate/OEBPS/Images/978-7-111-66363-8_39_03.jpg?sign=1738883719-fV7Fidk79vLqHJTKgFj0m5uCGjqKz6Qb-0-decb51302fa06d762dc92ac25aaa44d7)
图3.9 位运算符举例
3.2.6 成员运算符
成员运算符主要用于字符串、列表或元组等数据类型。如表3.6所示。
表3.6 成员运算符
![](https://epubservercos.yuewen.com/3C8452/21889219301185006/epubprivate/OEBPS/Images/978-7-111-66363-8_40_01.jpg?sign=1738883719-VcOY63uYfpclmEphV3b36XSiOJjmr6Zg-0-7516ae4ed817e3cfb0bccd82b029d97c)
【例3-6】成员运算符举例。
![](https://epubservercos.yuewen.com/3C8452/21889219301185006/epubprivate/OEBPS/Images/978-7-111-66363-8_40_02.jpg?sign=1738883719-eLiEiF0eorzv4FOCF6Tfp8zs7jz0Qwok-0-747f640185b6c3073ae2da41dc9fa1cf)
3.2.7 身份运算符
身份运算符又名同一运算符,用于比较两个对象的存储单元,如表3.7所示。
表3.7 身份运算符
![](https://epubservercos.yuewen.com/3C8452/21889219301185006/epubprivate/OEBPS/Images/978-7-111-66363-8_40_03.jpg?sign=1738883719-wPXsxWmNWLpMrCJw7nmpESrAEtaaXvV5-0-23a13ae14d337c4728213649d1b0a6d6)
【例3-7】身份运算符举例。
![](https://epubservercos.yuewen.com/3C8452/21889219301185006/epubprivate/OEBPS/Images/978-7-111-66363-8_40_04.jpg?sign=1738883719-KBmFGkJeZhHDNE6zt85SSz6Mxn59TGzP-0-76b664d79d083af19c306b16c918947d)