细说Python编程:从入门到科学计算
上QQ阅读APP看书,第一时间看更新

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