Python3的运算符

技术笔记

算术运算符

运算符 描述
+ 加号,两个数相加
- 减号,两个数相减
* 乘号,两个数相乘
/ 除号,x除以y
% 取模,返回余数
** 幂,返回x的y次幂
// 整除,向下取整

举例: x = 13 ; y = 5; c = 0 ;

  c = x + y
  print(c)

  c = x - y
  print(c)

  c = x * y
  print(c)

  c = x / y
  print(c)

  c = x % y 
  print(c)

  # 修改初始变量
  x = 3
  y = 2
  c = x ** y
  print(c)

  x = 10
  y = 5
  c  = x // y
  print(c)

输出:

18
8
65
2.6
3
9
2

比较运算符

运算符 描述
== 等于 - 比较对象是否相等
!= 不等于 - 比较两个对象是否不相等
> 大于 - 返回x是否大于y
< 小于 - 返回x是否小于y
= 大于等于 - 返回x是否大于等于y
<= 小于等于 - 返回x是否小于等于y

举例: x = 13 ; y = 5;

  c = x == y
 print(c)

 c = x != y
 print(c)

 c = x   y
 print(c)

 c = x < y
 print(c)

 c = x  = y
 print(c)

 c = x <= y
 print(c)

输出:

False
True
True
False
True
False

赋值运算符

运算符 描述 举例
= 简单的赋值运算符 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 = c ** a
//= 取整除赋值运算符 c //= a 等效于 c = c // a
:= 海象运算符,在表达式中同时进行赋值和返回赋值的值 下面有

举例: x = 13 ; y = 5 ; c = 0;

  c = x + y
 print(c)

 c += x
 print(c)

 c -= x
 print(c)

 c *= x
 print(c)

 c /= x
 print(c)

 c %= x
 print(c)

 c **= x
 print(c)

 c //= x
 print(c)

输出:

18
31
18
234
18.0
5.0
1220703125.0
93900240.0

海象运算符 举例:

if (c := x)   10:
    print(c)

输出:

13

解释: 海象运算符是表达式而非语句,这意味着它有返回值。它在赋值的同时返回被赋的值,从而可以在条件判断、循环等需要表达式的地方直接使用

位运算符

运算符 描述
& 按位与运算符:参与运算的两个值,如果两个相应位都为1,则该位的结果为1,否则为0
| 按位或运算符:只要对应的二个二进位有一个为1时,结果位就为1
^ 按位异或运算符:当两对应的二进位相异时,结果为1
~ 按位取反运算符:对数据的每个二进制位取反,即把1变为0,把0变为1
<< 左移动运算符:运算数的各二进位全部左移若干位,由"<<"右边的数指定移动的位数,高位丢弃,低位补0
>> 右移动运算符:把" "左边的运算数的各二进位全部右移若干位," "右边的数指定移动的位数

例如: a = 0011 1100 b = 0000 1101

a&b = 0000 1100

a|b = 0011 1101

a^b = 0011 0001

~a = 1100 0011

举例:x = 13; y = 5; c = 0;

 print(bin(x)[2:])
 print(bin(y)[2:])

 c = x & y
 print(c)
 print(bin(c)[2:])

 c = x | y
 print(c)
 print(bin(c)[2:])

 c = x ^ y
 print(c)
 print(bin(c)[2:])

 c = ~x
 print(c)
 print(bin(c)[3:])

 c = x << 2
 print(c)
 print(bin(c)[2:])

 c = x >> 2
 print(c)
 print(bin(2)[2:])

输出:

1101
101
5
101
13
1101
8
1000
-14
1110
52
110100
3
10

逻辑运算符

运算符 描述
and 布尔"与" - 如果 x 为 False,x and y 返回 x 的值,否则返回 y 的计算值
or 布尔"或" - 如果 x 是 True,它返回 x 的值,否则它返回 y 的计算值
not 布尔"非" - 如果 x 为 True,返回 False 。如果 x 为 False,它返回 True

举例:x = 13; y = 5; c = 0;

  c = x and y
 print(c)
 print(bool(c))

 c = x or y
 print(c)
 print(bool(c))

 c = not x
 print(bool(x))
 print(c)

输出:

5
True
13
True
True
False

成员运算符

运算符 描述
in 如果在指定的序列中找到值返回 True,否则返回 False
not in 如果在指定的序列中没有找到值返回 True,否则返回 False

举例:x = 13; y = 5; lists = [1, 2, 3, 4, 5];

 if x in lists:
     print("x 在 lists 里")
 else:
    print("x 不在 lists 里")

 if y not in lists:
    print("y 在 lists 里")
 else:
     print("y 在 lists 里")

输出:

x 不在 lists 里
y 在 lists 里

身份运算符

运算符 描述
is is 是判断两个标识符是不是引用自一个对象
is not is not 是判断两个标识符是不是引用自不同对象

举例:x = 13; y = 5;

 c = x is y
 print(c)

 c = x is not y
 print(c)

 # 修改变量
 y = 13

 c = x is y
 print(c)

 c = x is not y
 print(c)

输出:

False
True
True
False

is== 的区别:

is 是用来判断两个变量引用对象是否为同一个,== 是用来判断两个变量的值是否相同

例如:

x = [4,5,6]
y = x

print(x is y)

print(x == y)

y = x[:]

print(x is y)

print(x == y)

输出:

True
True
False
True

运算符优先表

优先级 运算符说明 运算符 结合性
最高 括号、函数调用、切片、属性引用 () [] {} .
幂运算 ** 右→左
一元运算符 +x -x ~x 右→左
乘、除、整除、取模 * / // % 左→右
加、减 + - 左→右
位移 << >> 左→右
按位与 & 左→右
按位异或 ^ 左→右
按位或 | 左→右
比较、成员、身份 in not in is is not < <= = != == 左→右
逻辑非 not 右→左
逻辑与 and 左→右
最低 逻辑或 or 左→右

注:
1. 同一行优先级相同,按出现顺序从左到右计算(除幂运算和一元运算符为右结合)。
2. 使用括号可显式改变默认优先级。

返回列表