Fork me on GitHub

python的运算符

算数运算符

  • 加: +
  • 减: -
  • 乘: *
  • 除: /
  • 取余: %
  • 幂: **
  • 整除: //

赋值运算符

  • 基础赋值运算符: =
  • 组合赋值运算符:
1
2
3
4
5
6
7
8
+=   -=   *=  /=  %=  //=   **= 
a += b  ==> a = a + b
a -= b  ==> a = a - b
a *= b  ==> a = a * b
a /= b  ==> a = a / b
a %= b  ==> a = a % b
a //= b  ==> a = a // b
a **= b  ==> a = a ** b

比较运算符

  • 等于 ==
  • 不等于 !=
  • 大于 >
  • 小于 <
  • 大于等于 >=
  • 小于等于 <=

逻辑运算符

一般返回boolean的值,用于条件判断

  • and 逻辑与
  • or 逻辑或
  • not 逻辑非
1
2
3
x and y   x ,y都为True时,整体结论才为True
x or y    x ,y都为False时,整体结论才为False
not(x)    将x的值取反

身份运算符

  • is : 判断两个对象的内存地址是否一致,一致返回True
  • not is : 判断两个对象的内存地址是否一致,一致返回False

注:is判断内存地址是否相同,而==判断值是否相等

举个例子:

1
2
3
4
5
6
7
8
a = [1, 2, 3]
b = a
c = [1, 2, 3]
# a与b的内存地址相同,与c的内存地址不同,但abc的值都相同
print(a is b)  # True
print(a == b)  # True
print(a is c)  # False
print(a == c)  # True

成员运算符

  • in : 某个变量在范围内,返回True
  • not in : 某个变量不在范围内,返回True

举个例子:

1
2
3
4
5
test_list = [1, 2, 3, 4]
print(1 in test_list)      # True
print(1 not in test_list)  # False
print(5 in test_list)      # False
print(5 not in test_list)  # True

位运算符

1
2
3
4
5
6
&  按位与运算符: 参与运算的值的二进制对应位置均为1时,该位置才为1,否则为0
|  按位或运算符: 参与运算的值的二进制对应位置均为0时,该位置才为0,否则为1
~  按位取反运算符: ~a ==> -a-1
^  按位异或运算符: 参与运算的值二进制对应位置有且仅有一个为1,该位置才为1,否则为0
>>  右移运算符   x >> y  将x的二进制数向右移动y个位置  相当于:x/(2**y)
<<  左移运算符   x << y  将x的二进制数向左移动y个位置  相当于:x*(2**y)

举个例子:

1
2
print(3 & 4)   3的二进制为11, 4的二进制为100  所以3&4结果为0
print(3 | 4)   结果为7

运算符优先级

运算符 描述
** 指数(
~、+、- 按位翻转(+-表示正负号)
* 、/ 、% 、// 乘,除,取模和取整除
+、- 加法减法
>>、<< 右移,左移运算符
& 位与
^ | 位运算符
<= 、>=、<、> 比较运算符
==、!= 等于、不等于
=、%=、/=、//=、-=、+=、*=、**= 赋值运算符
is、not is 身份运算符
in、not in 成员运算符
not、and、or 逻辑运算符

注:如果记不住,只要知道小括号的优先级最高即可,大不了嵌套小括号