运算符(operator)也被称为操作符,是用于实现赋值、比较和执行算数运算等功能的符号。本文主要介绍Python中的运算符(算术运算符、比较运算符、赋值运算符、逻辑运算符、身份运算符、成员运算符、位运算符)的使用,以及相关示例代码。

Python运算子

1、Python 运算符

运算符用于对变量和值执行操作。

Python将运算符分为以下几类:

  • 算术运算符
  • 赋值运算符
  • 比较运算符
  • 逻辑运算符
  • 身份运算符
  • 成员运算符
  • 按位运算符

2、Python 算术运算符

算术运算符与数值一起使用以执行常见的数学运算:

运算符

描述

示例

+

加 : 两个对象相加

x + y

-

减 : 得到负数或是一个数减去另一个数

x - y

*

乘 : 两个数相乘或是返回一个被重复若干次的字符串

x * y

/

除 : x除以y

x / y

%

取模 : 返回除法的余数

x%y

**

幂 : 返回x的y次幂

x ** y

//

取整除 : 返回商的整数部分(向下取整)

x // y

例如:

#!/usr/bin/python
# -*- coding: UTF-8 -*-
 
a = 21
b = 10
c = 0
 
c = a + b
print  c
 
c = a - b
print c 
 
c = a * b
print c 
 
c = a / b
print c 
 
c = a % b
print c
 
# 修改变量 a 、b 、c
a = 2
b = 3
c = a**b 
print c
 
a = 10
b = 5
c = a//b 
print c

注意:Python2.x 里,整数除整数,只能得出整数。如果要得到小数部分,把其中一个数改成浮点数即可。

>>> 1/2
0
>>> 1.0/2
0.5
>>> 1/float(2)
0.5

3、Python 赋值运算符

赋值运算符用于为变量赋值:

运算符

示例

另一种写法

=

x = 5

x = 5

+=

x += 3

x = x + 3

-=

x -= 3

x = x - 3

*=

x *= 3

x = x * 3

/=

x /= 3

x = x / 3

%=

x%= 3

x = x % 3

//=

x // = 3

x = x // 3

**=

x **= 3

x = x ** 3

&=

x &= 3

x = x & 3

|=

x |= 3

x = x | 3

^=

x ^= 3

x = x ^ 3

>>=

x >>= 3

x = x >> 3

<<=

x <<= 3

x = x << 3

例如:

#!/usr/bin/python
# -*- coding: UTF-8 -*-
 
a = 21
b = 10
c = 0
 
c = a + b
print c
 
c += a
print c 
 
c *= a
print c 
 
c /= a 
print c 
 
c = 2
c %= a
print c
 
c **= a
print c
 
c //= a
print c

4、Python 比较运算符

比较运算符用于比较两个值:

运算符

描述

示例

==

等于 : 比较对象是否相等

x == y

!=

不等于 : 比较两个对象是否不相等

x!= y

>

大于 : 返回x是否大于y

x> y

<

小于 : 返回x是否小于y。所有比较运算符返回1表示真,

返回0表示假。这分别与特殊的变量True和False等价。

x < y

>=

大于等于 : 返回x是否大于等于y。

x> = y

<=

小于等于 : 返回x是否小于等于y。

x <= y

例如:

#!/usr/bin/python
# -*- coding: UTF-8 -*-
 
a = 21
b = 10
c = 0
 
if  a == b :
   print "a 等于 b"
else:
   print "a 不等于 b"
 
if  a != b :
   print "a 不等于 b"
else:
   print "a 等于 b"
 
if  a <> b :
   print "a 不等于 b"
else:
   print "a 等于 b"
 
if  a < b :
   print "a 小于 b" 
else:
   print "a 大于等于 b"
 
if  a > b :
   print "a 大于 b"
else:
   print "a 小于等于 b"
 
# 修改变量 a 和 b 的值
a = 5
b = 20
if  a <= b :
   print "a 小于等于 b"
else:
   print "a 大于 b"
 
if  b >= a :
   print "b 大于等于 a"
else:
   print "b 小于 a"

5、Python 逻辑运算符

逻辑运算符用于组合条件语句:

运算符

描述

示例

and

如果两个语句都为true,则返回True

x <5 and x <10

or

如果其中一个语句为true,则返回True

x <5 or x <4

not

反转结果,如果结果为true,则返回False

not(x <5 and x <10)

例如:

#!/usr/bin/python
# -*- coding: UTF-8 -*-
 
a = 10
b = 20
 
if  a and b :
   print "变量 a 和 b 都为 true"
else:
   print "变量 a 和 b 有一个不为 true"
 
if  a or b :
   print "变量 a 和 b 都为 true,或其中一个变量为 true"
else:
   print "变量 a 和 b 都不为 true"
 
# 修改变量 a 的值
a = 0
if  a and b :
   print "变量 a 和 b 都为 true"
else:
   print "变量 a 和 b 有一个不为 true"
 
if  a or b :
   print "变量 a 和 b 都为 true,或其中一个变量为 true"
else:
   print "变量 a 和 b 都不为 true"
 
if not( a and b ):
   print "变量 a 和 b 都为 false,或其中一个变量为 false"
else:
   print "变量 a 和 b 都为 true"

6、Python 身份运算符

恒等运算符用于比较对象,不是相等的对象,而是如果它们实际上是相同的对象,并且具有相同的内存位置:

运算符

描述

示例

is

如果两个变量都是同一个对象,则返回True

x is y

is not

如果两个变量都不是同一对象,则返回True

x is not y

is 与 == 区别:

is 用于判断两个变量引用对象是否为同一个(同一块内存空间), == 用于判断引用变量的值是否相等。

>>> a = [1, 2, 3]
>>> b = a
>>> b is a 
True
>>> b == a
True
>>> b = a[:]
>>> b is a
False
>>> b == a
True

7、Python 成员运算符

成员运算符用于测试对象中是否存在序列:

运算符

描述

示例

in

如果对象中存在具有指定值的序列,则返回True

y in x

not in

如果对象中不存在具有指定值的序列,则返回True

x not in y

#!/usr/bin/python
# -*- coding: UTF-8 -*-
 
a = 10
b = 20
list = [1, 2, 3, 4, 5 ];
 
if ( a in list ):
   print "变量 a 在给定的列表中 list 中"
else:
   print "变量 a 不在给定的列表中 list 中"
 
if ( b not in list ):
   print "变量 b 不在给定的列表中 list 中"
else:
   print "变量 b 在给定的列表中 list 中"
 
# 修改变量 a 的值
a = 2
if ( a in list ):
   print "变量 a 在给定的列表中 list 中"
else:
   print "变量 a 不在给定的列表中 list 中"

8、Python 按位运算符

按位运算符用于比较(二进制)数字:

运算符

名称

描述

&

按位与运算符(AND)

如果两个位均为1,则将每个位设置为1

|

按位或运算符(OR)

如果两位之一为1,则将每个位设置为1

^

按位异或运算符(XOR)

如果两位中只有一位为1,则将每个位设置为1

~

按位取反运算符(NOT)

反转所有位

<<

左移动运算符

运算数的各二进位全部左移若干位,

由 << 右边的数字指定了移动的位数,

高位丢弃,低位补0。

>>

右移动运算符

右移动运算符:

把">>"左边的运算数的各二进位全部右移若干位,

>> 右边的数字指定了移动的位数


例如:

a = 60            # 60 = 0011 1100 
b = 13            # 13 = 0000 1101 
c = 0
 
c = a & b;        # 12 = 0000 1100

c = a | b;        # 61 = 0011 1101 

c = a ^ b;        # 49 = 0011 0001
 
c = ~a;           # -61 = 1100 0011
 
c = a << 2;       # 240 = 1111 0000
 
c = a >> 2;       # 15 = 0000 1111

9、Python运算符优先级

以下表格列出了从最高到最低优先级的所有运算符:

运算符描述
**指数 (最高优先级)
~ + -按位翻转, 一元加号和减号 (最后两个的方法名为 +@ 和 -@)
* / % //乘,除,取模和取整除
+ -加法减法
>> <<右移,左移运算符
&位 'AND'
^ |位运算符
<= < > >=比较运算符
<> == !=等于运算符
= %= /= //= -= += *= **=赋值运算符
is is not身份运算符
in not in成员运算符
not and or逻辑运算符

推荐文档