![数据结构与算法(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=1738936110-BfIeOu580MiFFCDAurYaWDQocuGbb0Mf-0-300c113171479e0226269d8651c8aecf)
运算符的使用和运算数的数据类型有很大关系,加法运行效果如图3.3所示。
【例3-2】算术运算符举例。
下面给出除法(/)、整除(//)和求余数(%)的运算效果如图3.4所示。
![](https://epubservercos.yuewen.com/3C8452/21889219301185006/epubprivate/OEBPS/Images/978-7-111-66363-8_37_01.jpg?sign=1738936110-kJCricufWUbUGs5Oj37hWgPBfpXXLOv0-0-e3388d27b1f07c1fee839d721dda7267)
图3.3 加法运算效果
![](https://epubservercos.yuewen.com/3C8452/21889219301185006/epubprivate/OEBPS/Images/978-7-111-66363-8_37_02.jpg?sign=1738936110-Dz1eXLy1hWwKapT8TIRBMcYgnbz0QabC-0-7257a22de7630b97bb059f7ad473b969)
图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=1738936110-gA6Hp8MwhgS8XaY4PEDMTzL9qpNESm7X-0-258a9a01b381d2c1172a94c54588fa83)
关系运算符在进行比较时,需注意以下规则。
● 两个操作数是数字,按大小进行比较。需要注意的是,Python中的“==”表示等于,“!=”表示不等于,如图3.5所示。
![](https://epubservercos.yuewen.com/3C8452/21889219301185006/epubprivate/OEBPS/Images/978-7-111-66363-8_37_04.jpg?sign=1738936110-BwsbOgRtpFoHE0KFDCdwoA5mSn1vgb12-0-310a65c01b0eeb5a92ca74db9df0d6a9)
图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=1738936110-9A958TxuqBlxckrxOoU8auQvzOeot3nd-0-4911a8009dc1f30d1caa3dcd050bd89b)
图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=1738936110-oSH6gvydHZR0MUDfivxj4MKLqUr3uO9p-0-68668a0a1bb91053a4c1425ce93252d5)
【例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=1738936110-x7jDryQH59XQLV0BX6eWg85yv50vFfCz-0-39562402c1804c6aaad921ff69e6e732)
![](https://epubservercos.yuewen.com/3C8452/21889219301185006/epubprivate/OEBPS/Images/978-7-111-66363-8_38_04.jpg?sign=1738936110-Yz6hjGIGQOXLNP4J5b6PaChuy9PbFcel-0-13d156fd0522797a4dd39fbe4f01a8f6)
图3.7 赋值运算符举例
【例3-4】逻辑运算符举例。
逻辑运算符举例如图3.8所示。
![](https://epubservercos.yuewen.com/3C8452/21889219301185006/epubprivate/OEBPS/Images/978-7-111-66363-8_39_01.jpg?sign=1738936110-M42p2eiUXrI4VkKyj7VGw2guPFHShADG-0-7bbf21b5ada03ea9cfc9e47f1eb88416)
图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=1738936110-Y5PIpCVSg9fS9ZCI19Fh1rADaRF8fmDj-0-bf0fa0262604fbf01e0b9b3ca3f08cb5)
【例3-5】位运算符举例。
位运算符举例如图3.9所示。
![](https://epubservercos.yuewen.com/3C8452/21889219301185006/epubprivate/OEBPS/Images/978-7-111-66363-8_39_03.jpg?sign=1738936110-lIaNMeW87df54bGr79YoVAIwa4If1tch-0-afc0952e4dc036499e9e2fc85ff65821)
图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=1738936110-IFAj5vP46ONgJnHdzCqoDqwPGOlJxlCH-0-7f8bbe64e6296a764ee499839675f5be)
【例3-6】成员运算符举例。
![](https://epubservercos.yuewen.com/3C8452/21889219301185006/epubprivate/OEBPS/Images/978-7-111-66363-8_40_02.jpg?sign=1738936110-FnzaQPHoR9QRamEiv8udbGiAkJy103Nx-0-97edd1543d0386e4e17920baac476e2c)
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=1738936110-8fGYGXYb9QOJMuaDTrKVva8jBn7mCJm0-0-8c97e17d5eb38491ea06fae87974504c)
【例3-7】身份运算符举例。
![](https://epubservercos.yuewen.com/3C8452/21889219301185006/epubprivate/OEBPS/Images/978-7-111-66363-8_40_04.jpg?sign=1738936110-TaS0JlI5ugpkEcJZ5a3r5j8R8BSLM5Dj-0-01813efb7881126734ec652a2d2136da)