2.5 运算符
Python运算符主要分为算术运算符、比较运算符、赋值运算符、逻辑运算符、位运算符、成员运算符和身份运算符七大类,运算符用于Python对象之间的运算,并且有优先级。
2.5.1 算术运算符
Python算术运算符主要用来执行数字的算术运算和字符串的拼接,Python的算术运算符如表2-1所示。
表2-1 算术运算符
【例2-10】 算术运算符应用示例。
输入如下代码:
运行结果如下:
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 比较运算符
【例2-11】 比较运算符应用示例。
输入如下代码:
运行结果如下:
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 逻辑运算符
【例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 位运算符
【例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 成员运算符
【例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 身份运算符
【例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 赋值运算符
【例2-16】 赋值运算符应用示例。
输入如下代码:
运行结果如下:
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 运算符优先级
【例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