Loading

Python运算符

运算符的分类

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

算术运算符

运算符 含义 示例
+ 1+2结果为3
- 2-1结果为1
* 2*3结果为6
/ 3/2结果为1.5
// 整除 3//2结果为1,3//2.0结果为1.0
% 取余(模) 4%3结果1
** 求幂/次方 2**4结果为16
() 小括号 (2+3)*3结果为15

示例:


a = 20
b = 6

print(a + b)  # 26

print(b - a)  # -14

print(a * b)  # 120

# 结果为小数
print(a/b)  # 3.3333333333333335

# 得到整数部分
print(a // b)  # 3

print(a % b)  # 2

print(10.0 // 3.0)  # 3.0

print(-7 % 4)  # 1

print(7 % -4)  # -1

print(-7 % -4)  # -3

print(2 ** 3)  # 8

优先级顺序: () 高于 ** 高于 * / // % 高于 + -

赋值运算符

运算符 描述 示例
= 简单赋值运算符 a = b + c 将=右侧的结果赋值给等号左侧的变量
+= 加法赋值运算符 c += a 等价于 c = c + a
-= 减法赋值运算符 c -= a 等价于 c = c-a
*= 乘法赋值运算符 c *= a 等价于 c = c * a
/= 除法赋值运算符 c /= a 等价于 c = c / a
//= 整除赋值运算符 c //= 2 等价于 c = c // a
%= 取模赋值运算符 c %= a 等价于 c = c % a
**= 幂赋值运算符 c **= a 等价于 c = c ** a

示例:

# 单变量赋值
# a, b, c = 10, 0.1, 'Python'

# 多变量赋值
# num1 = num2 = 18

a = 10
a += 2
print(a)  # 12

b = 6
b /= 3
print(b)  # 2.0

c = 8
c **= 2
print(c)  # 64

# 注意:先算赋值运算符右侧的表达式,再算赋值运算
d = 4
d *= 1 + 2
print(d)  # 12

比较运算符

运算符 描述 示例
== 判断是否相等 a=1, b=1, (a==b)为True
!= 不等于 a=1, b=2, (a!=b)为True
> 运算符左侧操作结果是否大于右侧操作结果 a=2, b=1, (a>b)为True
< 运算符左侧操作结果是否小于右侧操作结果 a=2, b=1, (a<b)为False
>= 运算符左侧操作结果是否大于等于右侧操作结果 a=2, b=2, (a>=b)为True
<= 运算符左侧操作结果是否小于等于右侧操作结果 a=2, b=2, (a<=b)为True

示例:

print(1 == 1)  # True
print(1 == 10)  # False
print(2 != 1)  # True
print(2 >= 3)  # False

逻辑运算符

运算符 逻辑表达式 描述 示例
and x and y 布尔"与":如果 x 为 False,x and y 返回 False,否则它返回 y 的计算值 True and False,返回False
or x or y 布尔"或":如果 x 是True,它返回True,否则它返回 y 的计算值。 False or True,返回True
not not x 布尔"非":如果 x 为 True,返回 False。如果 x 为 False,它返回 True。 not True返回False,not False返回True

示例:

a = 1
b = 2
c = 3

# and 都真才为真
print(a < b and c > b)  # True
print(a > b and c > b)  # False

# or 只要一个为真则为真
print(a < b or c > b)  # True
print(a > b or c > b)  # True

# not 取反
print(not True)  # False
print(not c > b)  # False

注意:表达式比较复杂时,建议加上小括号。

数字之间的逻辑运算

a = 0
b = 2
c = 3

# and 只要有一个为0则为0,否则为最后一个非0数字
print(a and b)  # 0
print(b and a)  # 0
print(b and c)  # 3
print(c and b)  # 2

# or 只有所有值为0结果才为0,否则为第一个非0数字
print(a or b)  # 2
print(b or a)   # 2
print(b or c)   # 2
print(c or b)   # 3

逻辑运算符的优先级:not > and > or

成员运算符

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

示例:

x = ["red", "blue", "blue"]
y = "blue"
print(y in x)  # True
print(y not in x)  # False

a = "Hello"
b = "Hello World"
print(a in b)  # True

优先级: in 高于 not in

身份运算符

运算符 描述 示例
is is 用来判断两个标识符是否引用自同一个对象 x is y, 如果引用的是同一个对象则返回 True,否则返回 False
is not is not 用来判断两个标识符是不是引用自不同对象 x is not y,如果引用的不是同一个对象则返回结果 True,否则返回 False。

示例:

a = '123'
b = 123
print(a is b)  # False
print(a is not b)  # True

优先级: is 高于 is not

位运算符

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

示例:

a = 13
b = 26
print(bin(13))  # 0b1101
print(a & b)  # 8
print(a | b)  # 31
print(a ^ b)  # 23

x = 5
print(x << 2)  # 20  a << n 相当于a*2的n次方
print(x >> 2)  # 1   a >> n 相当于a除以2的n次方

注意:bin()函数返回指定整数的二进制版本,结果以前缀 0b 开头。

各个运算符的优先级

算术运算符 > 位运算符 > 比较运算符 > 身份运算符 > 成员运算符 > 逻辑运算符

posted @ 2021-04-11 15:07  charlatte  阅读(56)  评论(0编辑  收藏  举报