Python支持以下类型的运算符:
算术运算符
比较(关系)运算符
赋值运算符
逻辑运算符
位运算符
成员运算符
身份运算符
真值表
算术运算符
表格内假设变量a为10、变量b为3
运算符
描述
实例
+
加--两个对象相加
a+b输出结果为13
-
减--得到负数或一个数减去另一个数
a-b输出结果为7
*
乘--两个数相乘或返回一个被重复若干次的字符串
a*b输出结果为30
/
除--两个数相除
a/b输出结果为3.3333333333333335
%
取模--返回除法的余数
a%b输出结果为1
**
幂--返回a的y次幂
a**b输出结果为a的b次方=1000
//
整除--返回除法的商
a//b输出结果为3
实例:
#!/usr/bin/env python#coding=utf-8
a= 10b= 3c=0
c= a +bprint("1 - c 的值为:", c)
c= a -bprint("2 - c 的值为:", c)
c= a *bprint("3 - c 的值为:", c)
c= a /bprint("4 - c 的值为:", c)
c= a %bprint("5 - c 的值为:", c)
c= a **bprint("6 - c 的值为:", c)
c= a //bprint("7 - c 的值为:", c)
实例结果:
1 - c 的值为: 13
2 - c 的值为: 7
3 - c 的值为: 30
4 - c 的值为: 3.3333333333333335
5 - c 的值为: 1
6 - c 的值为: 1000
7 - c 的值为: 3
比较运算符
下表中的变量a为30、变量b为26
运算符
描述
实例
==
等于--比较对象是否相等
( a == b )返回False
!=
不等于--比较两个对象是否不相等
( a != b )返回True
>
大于--比较一个对象是否大于另一个对象
( a > b )返回True
<
小于--比较一个对象是否小于另一个对象
( a < b )返回False
>=
大于等于--比较一个对象是否大于或等于另一个对象
( a >= b )返回True
<=
小于等于--比较一个对象是否小于或等于另一个对象
( a <= b )返回False
实例:
#!/usr/bin/env python#coding=utf-8
a= 30b= 26
if a ==b:print("1 - a 等于 b")else:print("1 - a 不等于 b")if a !=b:print("2 - a 不等于 b")else:print("2 - a 等于 b")if a b:print("4 - a 大于 b")else:print("4 - a 小于等于 b")if a <=b:print("5 - a 小于等于 b")else:print("5 - a 大于 b")if b >=a:print("6 - b 大于等于 b")else:print("6 - b 小于 b")
实例结果:
1 -a 不等于 b2 -a 不等于 b3 -a 大于等于 b4 -a 大于 b5 -a 大于 b6 - b 小于 b
赋值运算符
下表中的变量a为10、变量b为3
运算符
描述
实例
=
赋值运算符
c = a + b :将a + b的运算结果赋值给c
+=
加法赋值运算符
c += a :等效于c = c + a
-=
减法赋值运算符
c –= a :等效于c = c - a
*=
乘法赋值运算符
c *= a :等效于c = c * a
/=
除法赋值运算符
c /= a :等效于c = c / a
%=
取模赋值运算符
c %= a :等效于c = c % a
**=
幂赋值运算符
c **= a :等效于从= c ** a
//=
取商赋值运算符
c //= a :等效于c = c // a
实例:
#!/usr/bin/env python#coding=utf-8
a= 3b= 10c= a +bprint("1 - c 的值为:", c)
c= 20c+=aprint("2 - c 的值为:", c)
c= 20c*=aprint("3 - c 的值为:", c)
c= 20c/=aprint("4 - c 的值为:", c)
c= 20c%=aprint("5 - c 的值为:", c)
c= 20c**=aprint("6 - c 的值为:", c)
c= 20c//=aprint("7 - c 的值为:", c)
实例结果:
1 - c 的值为: 13
2 - c 的值为: 23
3 - c 的值为: 60
4 - c 的值为: 6.666666666666667
5 - c 的值为: 2
6 - c 的值为: 8000
7 - c 的值为: 6
位运算符
位运算符是把数字看做二进制来进行计算的
下表中的变量a为60、变量b为13
运算符
描述
实例
&
按位与运算符--参加运算的两个值,如果两个相应为都为1,则该位的结果为1,否则为0
( a & b )输出结果为12
|
按位或运算符--只要两个对应的二进制位有一个为1时,结果位就为1
( a | b )输出结果为61
^
按位异或运算符--当两个对应的二进制位相异时,结果位为1
( a ^ b )输出结果位49
~
按位取反运算符--将二进制数+1之后乘以-1
( ~ a )输出记过为-61、( ~ b )输出结果位-14
<<
按位左移运算符--运算数的各个二进制位向左移动若干位,由“<
( a << 2 )输出结果为240
( b << 2 )输出结果为52
>>
按位右移运算符--运算数的各个二进制位向右移动若干位,由“>>”右边的数字指定移动的位数,
( a >> 2 )输出结果为15
( b >> 2 )输出结果为3
实例:
#!/usr/bin/env python#coding=utf-8
a= 60 #60 = 0011 1100
b = 13 #13 = 0000 1101
c= a &b#60 = 0011 1100#13 = 0000 1101#按位与运算得到:0000 1100,换算为十进制:2**2 + 2**3=12
print("1 - c 的值为:", c)
c= a |b#60 = 0011 1100#13 = 0000 1101#按位或运算得到:0011 1101,换算为十进制:2**0 + 2**2 + 2**3 + 2**4 + 2**5 = 61
print("2 - c 的值为:", c)
c= a ^ b #49 = 0011 0001#60 = 0011 1100#13 = 0000 1101#按位异或运算得到:0011 0001,换算位为十进制:2**0 + 2**4 + 2**5 = 49
print("3 - c 的值为:", c)
c= ~a#60 = 0011 1100#按位取反运算得到:-0011 1101,换算为十进制:-(2**0 = 2**2 + 2**3 + 2**4 + 2**5)= -61
print("4 - c 的值为:", c)
c= a << 2
#60 = 0011 1100#按位左移运算得到:1111 0000,换算为十进制:2**4 + 2**5 + 2**6 + 2**7 = 240
print("5 - c 的值为:", c)
c= a >> 2
#60 = 0011 1100#按位左移运算得到:0000 1111,换算为十进制:2**0 + 2**1 + 2**2 + 2**3 = 15
print("6 - c 的值为:", c)
c= b>> 2
#13 = 0000 1101#按位左移运算得到:0000 0011,换算为十进制:2**0 + 2**1 = 3
print("7- c 的值为:", c)
实例结果:
1 - c 的值为: 12
2 - c 的值为: 61
3 - c 的值为: 49
4 - c 的值为: -61
5 - c 的值为: 240
6 - c 的值为: 15
7 - c 的值为: 3
逻辑运算符
运算符
逻辑表达式
描述
and
x and y
逻辑“与”运算符--如果x、y都为真,则返回True,否则返回False
or
x or y
逻辑“或”运算符—如果x、y有一个为真,则返回True,否则返回False
not
not x
逻辑“非”运算符--如果x为真,则返回False,否则返回True
实例:
#!/usr/bin/env python#coding=utf-8
a=True
b=Falseprint(a andb)print(a orb)print(nota)print(not b)
实例结果:
False
True
False
True
成员运算符
运算符
描述
in
判断在值是否在指定的序列中,是则返回True,否则返回False
not in
判断在值是否不在指定的序列中,是则返回True,否则返回False
实例:
#!/usr/bin/env python#coding=utf-8
a= 10b= 4list1= [1, 2, 3, 4, 5]if a inlist1:print("1 - 变量 a 在给定的列表中 list 中")else:print("1 - 变量 a 不在给定的列表中 list 中")if b not inlist1:print("2 - 变量 b 不在给定的列表中 list 中")else:print("2 - 变量 b 在给定的列表中 list 中")#修改变量 a 的值
a = 2
if a inlist1:print("3 - 变量 a 在给定的列表中 list 中")else:print("3 - 变量 a 不在给定的列表中 list 中")
实例结果:
1 -变量 a 不在给定的列表中 list 中2 -变量 b 在给定的列表中 list 中3 - 变量 a 在给定的列表中 list 中
身份运算符
运算符
描述
is
is--判断两个标识符是不是引用自同一个对象
is not
is not--判断两个标识符是不是引用自不同的对象
实例:
#!/usr/bin/env python#coding=utf-8
a= 20b= 20
if a isb:print("1 - a 和 b 有相同的标识")else:print("1 - a 和 b 没有相同的标识")if id(a) ==id(b):print("2 - a 和 b 有相同的标识")else:print("2 - a 和 b 没有相同的标识")#修改变量 b 的值
b = 30
if a isb:print("3 - a 和 b 有相同的标识")else:print("3 - a 和 b 没有相同的标识")if a is notb:print("4 - a 和 b 没有相同的标识")else:print("4 - a 和 b 有相同的标识")
实例结果:
1 -a 和 b 有相同的标识2 -a 和 b 有相同的标识3 -a 和 b 没有相同的标识4 - a 和 b 没有相同的标识
运算符优先级
下表中从上到下的优先级为从高到低
运算符
描述
'string'
字符串转换
{key:value,…}
字典
[string1,string2,…]
列表
(string1,string2,…)
元组
function(string,…)
函数调用
x[index:index]
切片
x[index]
下表索引取值
x.attribute
属性引用
x**y
幂
~x
按位翻转
+x、-x
正、负
*、/、%、//
乘、除、取余、取商
+ 、-
加号、减号
>>、<<
按位右移、按位左移
&
按位与
^、|
按位异或、按位或
>、=、<=、!=、==
大于、小于、大于等于、小于等于、不等于、等于
=、+=、-=、*=、**=、/=、%=、//=
赋值运算符
is、is not
身份运算符
in、not in
成员运算符
not、or、and
逻辑运算符
lambda
Lambda表达式
真值表
对象/常量
值
""
假
'string'
真
0
假
>=1
真
<=-1
真
()空元组
假
[]空列表
假
{}空字典
假
None
假