![数据结构与算法(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=1739324341-JFHpLJY1cgD0UC1rmpjQUtuHLWZbkbOJ-0-7930dd74a843c26ab08560e81f3e2b3d)
运算符的使用和运算数的数据类型有很大关系,加法运行效果如图3.3所示。
【例3-2】算术运算符举例。
下面给出除法(/)、整除(//)和求余数(%)的运算效果如图3.4所示。
![](https://epubservercos.yuewen.com/3C8452/21889219301185006/epubprivate/OEBPS/Images/978-7-111-66363-8_37_01.jpg?sign=1739324341-8h4q95zbaxozVwO62OxH6qaiMfa2SPG4-0-30252245fcf79b4878aa11291dd32d8a)
图3.3 加法运算效果
![](https://epubservercos.yuewen.com/3C8452/21889219301185006/epubprivate/OEBPS/Images/978-7-111-66363-8_37_02.jpg?sign=1739324341-hsM1Z25XOSrdRHZRzzAVza6mEL4dnnHR-0-6e3d60b126eda1ffb0cb2703d7d14c1c)
图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=1739324341-YM9IaLp0E9sr2uYWh3qroAS2CJfwwAD1-0-cc4ca97f0be866b383cc8ba5aa213650)
关系运算符在进行比较时,需注意以下规则。
● 两个操作数是数字,按大小进行比较。需要注意的是,Python中的“==”表示等于,“!=”表示不等于,如图3.5所示。
![](https://epubservercos.yuewen.com/3C8452/21889219301185006/epubprivate/OEBPS/Images/978-7-111-66363-8_37_04.jpg?sign=1739324341-YFRvDOPXuWXGKhCA3IwyZbdMrdWB11vw-0-719c688f17fbdb2c71fec0a69b17cea0)
图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=1739324341-NJSXLATSjZSIFceaaK5Q5O92vON1I6zS-0-2c5ba59d0edbef281b091783c4d5a804)
图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=1739324341-kdUsoyC4e7VajS1gSq5KHwdxR4WdFNUL-0-5459e5bce60fc0a036536915d10e5de2)
【例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=1739324341-xnl753LxLeOe4nNtPdSFQbxV5hEdKmmm-0-b08731d62d9e676548f236148985310d)
![](https://epubservercos.yuewen.com/3C8452/21889219301185006/epubprivate/OEBPS/Images/978-7-111-66363-8_38_04.jpg?sign=1739324341-TXXByxNiv6bAdkRwBAEY9f3yfBsmBa1i-0-fd6a268cfc70cbae9dff8c2e686c2b4a)
图3.7 赋值运算符举例
【例3-4】逻辑运算符举例。
逻辑运算符举例如图3.8所示。
![](https://epubservercos.yuewen.com/3C8452/21889219301185006/epubprivate/OEBPS/Images/978-7-111-66363-8_39_01.jpg?sign=1739324341-aKhFc5cpzU5XpNlFEAKaDE9O75NJwKwh-0-56b5707bccef052fa1f97fb27b2537ff)
图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=1739324341-fwkNJj3IL1nqQVmmHSwSBKBwS6HyH95Q-0-f42cfb8f44a9de74082722594e7387bd)
【例3-5】位运算符举例。
位运算符举例如图3.9所示。
![](https://epubservercos.yuewen.com/3C8452/21889219301185006/epubprivate/OEBPS/Images/978-7-111-66363-8_39_03.jpg?sign=1739324341-9KodMvb8oxg9JrEGYOBseJab0qOiI5cj-0-29851da9f9c9f83daecace137698bc0e)
图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=1739324341-UpIzNXG9UOAEx04mlfwweHrVi4D49VYw-0-82bf708ee6d239449c61d5f22297f1ce)
【例3-6】成员运算符举例。
![](https://epubservercos.yuewen.com/3C8452/21889219301185006/epubprivate/OEBPS/Images/978-7-111-66363-8_40_02.jpg?sign=1739324341-jIyPYsB6w3lv40oLdNkYmBTROnMEqXX5-0-5db6b12ed3217bc1f1cbee7f999fa54c)
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=1739324341-jPgs6BHhLNN2lsYAcTKHNuadg8STHjDp-0-d54b78d8f870d84568662c75b3e49675)
【例3-7】身份运算符举例。
![](https://epubservercos.yuewen.com/3C8452/21889219301185006/epubprivate/OEBPS/Images/978-7-111-66363-8_40_04.jpg?sign=1739324341-KjR3YXcDjaKzsmlXcltG4YBMi3dzGazD-0-908e73747a655c6dfc1b2326eab47195)