Python 运算符
搞懂Python常用的运算符
运算符用于对变量和值执行操作。比如: 1 +2 = 3 中,1 和 2 被称为操作数,"+" 称为运算符。
Python支持运算符的类型如下:
算术运算符
赋值运算符
比较运算符
逻辑运算符
身份运算符
成员运算符
位运算符
下面我们一起来看看。
算术运算符
运算符 |
描述 |
实例 |
结果 |
+ |
加(两个数相加) |
1 + 2 |
3 |
- |
减(两个数相减) |
2 - 1 |
1 |
* |
乘(两个数相乘) |
1 * 2 |
2 |
/ |
除(两个数相除) |
6 / 3 |
2 |
// |
取整除(向下取接近商的整数) |
7//2 |
3 |
% |
取模(返回除法的余数) |
5 % 3 |
2 |
** |
幂(返回x的y次幂) |
2**4 |
16 |
以下实例演示了Python所有算术运算符的操作:
a = 1
b = 2
c = 6
d = 7
x = a + b
print("a + b =", x)
x = b - a
print("b - a =", x)
x = a * b
print("a * b=", x)
x = c / b
print("c / b=", x)
x = d // b
print("d // b=", x)
x = d % b
print("d % b =", x)
x = b**c
print("b**c=", c)
执行结果:
a + b = 3
b - a = 1
a * b = 2
d // b = 3
d % b = 1
b**c= 64
赋值运算符
赋值运算符用来把右侧的值传递给左侧的变量,赋值运算符是等号=,结合其它运算符还能扩展出更强大的赋值运算符。
运算符 |
说 明 |
用法举例 |
等价形式 |
= |
简单的赋值运算符 |
x = y |
x = y |
+= |
加法赋值运算符 |
x += y |
x = x + y |
-= |
减法赋值运算符 |
x -= y |
x = x - y |
*= |
乘法赋值运算符 |
x *= y |
x = x * y |
/= |
除法赋值运算符 |
x /= y |
x = x / y |
%= |
取余数赋值运算符 |
x %= y |
x = x % y |
**= |
幂赋值运算符 |
x **= y |
x = x ** y |
//= |
取整数赋值运算符 |
x //= y |
x = x // y |
&= |
按位与赋值运算符 |
x &= y |
x = x & y |
|= |
按位或赋值 |
x |= y |
x = x | y |
^= |
按位异或赋值运算符 |
x ^= y |
x = x ^ y |
<<= |
左移赋值运算符 |
x <<= y |
x = x << y,这里的 y 指的是左移的位数 |
>>= |
右移赋值运算符 |
x >>= y |
x = x >> y,这里的 y 指的是右移的位数 |
以下实例演示了Python所有赋值运算符的操作:
a = 12
b = 25
c = a + b
print("a + b =", c)
c += a
print("c = ", c)
c *= a
print("c = ", c)
c /= a
print("c = ", c)
c %= a
print("c = ", c)
c **= a
print("c = ", c)
c//= a
print("c = ", c)
执行结果:
a + b = 37
c += a : 49
c *= a : 588
c /= a : 49
c %= a : 1
c **= a : 1
c//= a : 0
比较运算符
比较运算符也称关系运算符,用于对常量、变量或表达式的结果进行大小比较,比较的结果只有True(真)或False(假)两种状态。
运算符 |
描述 |
实例 |
结果 |
== |
等于(比较对象是否相等) |
1 == 2 |
False |
!= |
不等于(比较两个对象是否不相等) |
1 != 2 |
True |
> |
大于(返回x是否大于y) |
1 > 2 |
False |
< |
小于(返回x是否小于y) |
1 < 2 |
True |
>= |
大于等于(返回x是否大于等于y) |
1 >= 2 |
False |
<= |
小于等于(返回x是否小于等于y) |
1 <= 2 |
True |
a = 1
b = 2
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")
if ( a <= b ):
print("a 小于等于 b")
else:
print("a 大于 b")
执行结果:
a 不等于 b
a 不等于 b
a 小于 b
a 小于等于 b
a 小于b
a 小于等于 b
逻辑运算符
逻辑运算符用于组合条件语句:
运算符 |
表达式 |
描述 |
实例 |
结果 |
and |
x and y |
且,两个值都为真返回真 |
True and True |
True |
or |
x or y |
或,有一个值为真返回真 |
True or False |
True |
not |
not x |
非,相反,值为真返回假 |
not True |
False |
print(100 and 200)
print(True and False)
print(not (True and False))
print("" or "lidihuo")
print(1 or "lidihuo")
执行结果:
注意:逻辑运算符的结果并非只有True和False
身份运算符
身份运算符用于比较对象是否为同一个对象。
运算符 |
描述 |
实例 |
结果 |
is |
引用自一个对象返回True |
1 is ‘1’ |
False |
is not |
不是同一个对象返回True 1 |
is not ‘1’ |
True |
a = 1
b = 1
print(a is b)
print(id(a) == id(b)) # id() 函数用于获取对象内存地址
执行结果:
注意:is 与 == 区别是is 用于判断两个变量引用对象是否为同一个, == 用于判断引用变量的值是否相等。
成员运算符
成员资格运算符用于测试序列是否在对象中出现
运算符 |
描述 |
实例 |
in |
如果对象中存在具有指定值的序列,则返回 True。 |
x in y |
not in |
如果对象中不存在具有指定值的序列,则返回 True。 |
x not in y |
a = 1
b = 10
list = [1, 2, 3, 4, 5 ]
print(a in list)
print(b not in list)
执行结果:
位运算符
位运算符用于比较(二进制)数字
运算符 |
描述 |
实例 |
& |
AND,参与运算的两个值,如果两个相应位都为1,则该位的结果为1,否则为0 |
(a & b) 输出结果 12 ,二进制解释: 0000 1100 |
| |
OR,只要对应的二个二进位有一个为1时,结果位就为1。 |
(a | b) 输出结果 61 ,二进制解释: 0011 1101 |
^ |
XOR,当两对应的二进位相异时,结果为1 |
(a ^ b) 输出结果 49 ,二进制解释: 0011 0001 |
~ |
NOT,对数据的每个二进制位取反,即把1变为0,把0变为1。 |
(~a ) 输出结果 -61 ,二进制解释: 1100 0011, 在一个有符号二进制数的补码形式。 |
<< |
左移动运算符:运算数的各二进位全部左移若干位。 |
a << 2 输出结果 240 ,二进制解释: 1111 0000 |
>> |
右移动运算符:把">>"左边的运算数的各二进位全部右移若干位。 |
a >> 2 输出结果 15 ,二进制解释: 0000 1111 |
a = 60 # 60 = 0011 1100
b = 13 # 13 = 0000 1101
c = 0
c = a & b # 12 = 0000 1100
print("1 - c 的值为:", c)
c = a | b # 61 = 0011 1101
print("2 - c 的值为:", c)
c = a ^ b # 49 = 0011 0001
print("3 - c 的值为:", c)
c = ~a # -61 = 1100 0011
print("4 - c 的值为:", c)
c = a << 2 # 240 = 1111 0000
print("5 - c 的值为:", c)
c = a >> 2 # 15 = 0000 1111
print("6 - c 的值为:", c)
执行结果:
1 - c 的值为: 12
2 - c 的值为: 61
3 - c 的值为: 49
4 - c 的值为: -61
5 - c 的值为: 240
6 - c 的值为: 15
运算符优先级
运算符 |
描述 |
** |
指数 (最高优先级) |
~ + - |
按位翻转, 一元加号和减号 (最后两个的方法名为 +@ 和 -@) |
* / % // |
乘,除,求余数和取整除 |
+ - |
加法减法 |
>> << |
右移,左移运算符 |
& |
位 'AND' |
^ | |
位运算符 |
<= < > >= |
比较运算符 |
== != |
等于运算符 |
= %= /= //= -= += *= **= |
赋值运算符 |
is is not |
身份运算符 |
in not in |
成员运算符 |
not and or |
逻辑运算符 |
a = 20
b = 10
c = 15
d = 5
e = (a + b) * c / d;
print('(a + b) * c / d: ',e)
e = (((a + b) * c) / d;
print('(((a + b) * c) / d: ',e)
e = (a + b) * (c / d);
print('a + b) * (c / d: ',e)
e = a + (b * c) / d;
print('a + (b * c) / d: ',e)
执行结果:
(a + b) * c / d: 90)
(((a + b) * c) / d: 90)
a + b) * (c / d: 90)
a + (b * c) / d: 50)