![细说Python编程:从入门到科学计算](https://wfqqreader-1252317822.image.myqcloud.com/cover/546/52842546/b_52842546.jpg)
2.5 运算符
![](https://epubservercos.yuewen.com/9136F0/31398113203977106/epubprivate/OEBPS/Images/Figure-P39_67610.jpg?sign=1739032600-DLNM1EZg9PFIImOm33x9nVXIC9XiwYVN-0-6e5ac196683d418ce605ddb8d4ccb535)
Python运算符主要分为算术运算符、比较运算符、赋值运算符、逻辑运算符、位运算符、成员运算符和身份运算符七大类,运算符用于Python对象之间的运算,并且有优先级。
2.5.1 算术运算符
Python算术运算符主要用来执行数字的算术运算和字符串的拼接,Python的算术运算符如表2-1所示。
表2-1 算术运算符
![](https://epubservercos.yuewen.com/9136F0/31398113203977106/epubprivate/OEBPS/Images/Figure-T39_98867.jpg?sign=1739032600-5hHvf0QmcNv3DyedfejUN4SUOBwQqxZE-0-5b9b51cd1602c4cfad47b82896f597bf)
【例2-10】 算术运算符应用示例。
输入如下代码:
![](https://epubservercos.yuewen.com/9136F0/31398113203977106/epubprivate/OEBPS/Images/Figure-P39_98868.jpg?sign=1739032600-bdvzS3znhr9AuM1MmwiyX4VgQC9f5Vot-0-f465b89f62c1cef7cd97bfc4e536ddcd)
运行结果如下:
c = 3 d = -1 e = 2 f = 0.5 g = 1 h = 1 i = 0
2.5.2 比较运算符
比较运算符用来进行两个量的比较,其结果只有True(真)和False(假)两种,Python的比较运算符如表2-2所示。
表2-2 比较运算符
![](https://epubservercos.yuewen.com/9136F0/31398113203977106/epubprivate/OEBPS/Images/Figure-T40_98872.jpg?sign=1739032600-fKwdQQjAk7LMYbiN3X2H4EDfcEFPLI7J-0-af4c0c9e42a939876adb64778df6d49d)
【例2-11】 比较运算符应用示例。
输入如下代码:
![](https://epubservercos.yuewen.com/9136F0/31398113203977106/epubprivate/OEBPS/Images/Figure-P40_98873.jpg?sign=1739032600-w0iYQo19NvIyPbdwWy2MwgpEZjWN3OEo-0-c9fe39152a78de8edfe55a947492afdf)
运行结果如下:
a == b , False a == b , True a == b , False a == b , True a == b , False a == b , True
提示
format是Python的函数,主要用来构造字符串,基本语法是通过{}符号操作,可以在format前面设置多个{}符号,并且每一个{}符号都可以设置顺序,分别与format的参数顺序对应。关于format()的用法可参考2.7.2节。
2.5.3 逻辑运算符
逻辑运算符也称为布尔运算符,其用来进行两个量的逻辑运算,Python的逻辑运算符如表2-3所示。
表2-3 逻辑运算符
![](https://epubservercos.yuewen.com/9136F0/31398113203977106/epubprivate/OEBPS/Images/Figure-T41_98878.jpg?sign=1739032600-ZBdAihqpJkS75zixlAQid0c6jQLo2ecE-0-4b5c83c079c7606b6211d2db1139752c)
【例2-12】 布尔运算符应用示例。
输入如下代码:
a = 0 b = 2 print('not a, {}'.format(not a)) #format(not a)为True,{}的取值是True print('a and b, {}'.format(a and b)) #format(a and b)为False,{}的取值是False print('a or b, {}'.format(a or b)) #format(a or b)为2,{}的取值是2
运行结果如下:
not a, True a and b, 0 a or b, 2
2.5.4 位运算符
在Python中,位运算符是把数字看作二进制来进行计算的,位运算符如表2-4所示。
表2-4 位运算符
![](https://epubservercos.yuewen.com/9136F0/31398113203977106/epubprivate/OEBPS/Images/Figure-T41_98882.jpg?sign=1739032600-eTRbL1mQuQDTFPSYLmsDMpF3W3Is5uZP-0-e75ac925a85e023cb1760b712c1743f4)
【例2-13】 位运算符应用示例。
输入如下代码:
a = 88 b = 66 print('a & b = {}'.format(a & b)) print('a | b = {}'.format(a | b)) print('a ^ b = {}'.format(a ^ b)) print('~a = {}'.format(~a)) print('a << 2 = {}'.format(a << 2)) print('a >> 2 = {}'.format(a >> 2))
运行结果如下:
a & b = 64 a | b = 90 a ^ b = 26 ~a = -89 a << 2 = 352 a >> 2 = 22
2.5.5 成员运算符
Python的成员运算符用来判断指定的序列是否存在要找的元素,其结果为布尔类型,成员运算符如表2-5所示。
表2-5 成员运算符
![](https://epubservercos.yuewen.com/9136F0/31398113203977106/epubprivate/OEBPS/Images/Figure-T42_98886.jpg?sign=1739032600-TidU0zKzaVYt7X9haScvjEfQmeNzH7GM-0-adff0b02272ed77ca4d1646818d92704)
【例2-14】 成员运算符应用示例。
输入如下代码:
a = 1 l1 = [1,2,3] print('a in l1, {}'.format(a in l1)) print('a not in l1, {}'.format(a not in l1))
运行结果如下:
a in l1, True a not in l1, False
2.5.6 身份运算符
Python的身份运算符主要用来判断两个标识符或对象是否相同(也可以称为是否引用自同一个对象),结果是布尔类型,如表2-6所示。
表2-6 身份运算符
![](https://epubservercos.yuewen.com/9136F0/31398113203977106/epubprivate/OEBPS/Images/Figure-T43_98889.jpg?sign=1739032600-EXqo4NVUgru3aQw7wOW7jZgx15FCq324-0-cdf4e1e86d3707dd0c32e6af8e777a56)
【例2-15】 身份运算符应用示例。
输入如下代码:
a = 1 l1 = [1,2,3] print('a is l1, {}'.format(a is l1)) print('a is not l1, {}'.format(a is not l1))
运行结果如下:
a is l1, False a is not l1, True
2.5.7 赋值运算符
赋值运算符是指将某个常量、变量或表达式的运算结果赋给指定的变量,Python的赋值运算符如表2-7所示。
表2-7 赋值运算符
![](https://epubservercos.yuewen.com/9136F0/31398113203977106/epubprivate/OEBPS/Images/Figure-T43_98892.jpg?sign=1739032600-pPlCit2GXZEPKZrPOuWgLyq4npOF9Bn2-0-b8d7efba6dbd7dd025b846e558c7b681)
【例2-16】 赋值运算符应用示例。
输入如下代码:
![](https://epubservercos.yuewen.com/9136F0/31398113203977106/epubprivate/OEBPS/Images/Figure-P43_98893.jpg?sign=1739032600-V2LIcXndswhCpdkulGYtWAIebfMa5x2I-0-2d4047130a2b383249ae346116bf065a)
运行结果如下:
c = 5 a = 3 b = 2 e = 6 f = 1.5 g = 1 h = 9 i = 1
2.5.8 运算符优先级
运算符的优先级,就是当多个运算符同时出现在一个表达式中时,先执行哪个运算符。表2-8列出了从最高到最低优先级的所有Python运算符。
表2-8 运算符优先级
![](https://epubservercos.yuewen.com/9136F0/31398113203977106/epubprivate/OEBPS/Images/Figure-T44_98897.jpg?sign=1739032600-Xgg84VaNNdSInTNQDUBBlxGd28U6Ey5X-0-21614c9e7a453230f7f286b1aa633230)
【例2-17】 运算优先级应用示例。
输入如下代码:
a = 4 b = 8 c = 16 d = 32 e = 2 e = (a + b) * c / d print('e = {}'.format(e)) f = ((a + b) * c) / d print('f = {}'.format(e)) g = (a + b) * (c / d) print('g = {}'.format(e)) h = a + (b * c) / d print('h = {}'.format(e))
运行结果如下:
e = 6.0 f = 6.0 g = 6.0 h = 6.0