1.运算符

(1)算术运算符

常用的算术运算符有三类:标准算术运算符、取余运算符、幂运算符。

  • 标准算术运算符:

运算符

描述

示例

+


a+b

-


a-b

*


a*b

/


a/b

//

取整

11//5结果为2

print(3+2)
print(15-3)
print(6*6)
print(18/3)
print(25//4)
print(25//-4)  # 取整运算中,若除数一正一负则向下取整,比如25//-4应该为-6,但是由于是一正一负的原因,所以结果为-7
  • 取余运算符:

运算符

描述

示例

%

取余

a%b

取余运算公式:余数=被除数-除数*商

print(19 % 3)
print(13//-4)
print(13 % -4)  # 取余运算公式,余数=被除数-除数*商;13-(-4)*(-4)=13-16=-3;
print(-13 % -4)  # -13-(-4)*(3)=-13+12=-1
  • 幂运算:

运算符

描述

示例

**


a**b

print(2**3)
print(2**4)

(2)赋值运算符

运算符

描述

示例

=

赋值

a=b+c

+=

加法赋值运算符

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

# 赋值运算符的执行顺序是从右→左的
a = 30
a1 = 30 + 40
print(a)
print(a1)

print('-------支持链式赋值---------')
a = b = c = 30
print(a, b, c)

print('-------支持参数赋值---------')
a = 30
a += 50
print(a)
a = 30
a -= 20
print(a)
a = 30
a *= 3
print(a)
a = 30
a /= 10
print(a)
a = 30
a %= 8
print(a)
a = 30
a //= 8
print(a)
a = 2
a **= 3
print(a)

print('--------支持系列解包赋值---------')   # 赋值过程中需要确保左右两边的变量个数相等
a, b, c = 10, 20, 30
print(a, b, c)

(3)比较运算符

运算符

描述

示例

==

是否相等

a==b

!=

是否不相等

a!=b

>

大于

a>b

>=

大于等于

a>=b

<

小于

a<b

<=

小于等于

a<=b

is

判断两个标识符是否引用同一对象

a is b

is not

判断两个标识符是否引用不同对象

a is not b

a, b = 12, 14
print('a>b吗?', a > b)   # 其结果输出的类型为bool类型
print('a<b吗?', a < b)
print('a>=b吗?', a >= b)
print('a<=b吗?', a <= b)
print('a==b吗?', a == b)
print('a!=b吗?', a != b) 
print('a is b?', a is b)  # 这是对其id进行比较
print('a is not b', a is not b)

(4)布尔运算符

运算符

描述

示例

and


a and b

or


a or b

not


a not b

in

判断是否存在

a in b

not in

判断是否不存在

a not in b

print('------------and运算符----------')  # and运算中,True和True为True,其余全为False
a, b = 5, 9
print(a == 5 and b == 9)
print(a == 5 and b < 9)
print(a < 5 and b == 9)
print(a < 5 and b < 9)

print('------------or运算符----------')  # or运算中,False和False为False,其余全为True
print(a == 5 or b == 9)
print(a == 5 or b < 9)
print(a < 5 or b == 9)
print(a < 5 or b < 9)

print('------------not运算符---------')  # 运行结果去相反的,针对布尔类型
a1 = False
a2 = True
print(not a1)
print(not a2)

print('----------in或not in运算符----')
a = 'hello word'
print('h' in a)
print('h' not in a)
print('s' in a)
print('s' not in a)

(5)位运算

运算符

描述

示例

&


a & b

|


a | b

^

异或

a ^ b

~

取反

~a

>>

右移

a>>2

<<

左移

a<<2

print(4 & 8)  # &表示与运算,同为1时为1
print(4 | 8)  # |表示或运算,同为0时为0
print(4 ^ 8)  # ^表示异或,结果相同时为0,不同时结果为1
print(~ 4)    # 表示取反,先对结果取反,然后加1,再对符号取反
print(4 >> 2)  # >>表示向右移一位
print(4 << 2)  # <<表示向左移一位

2.运算符的优先级

Python中的运算符优先级,括号的优先级是最高的,无论什么时候都优先计算括号里的内容,布尔运算符中的逻辑运算符的优先级最低。以下运算符从上到下,优先级从高到低排列,同行优先级相同,相同优先级需要考虑结合实际情况考虑优先级。

括号:()
幂运算:**
取反:~
正号、负号:+、-
乘、除、取余、取整:*、/、%、//
加、减:+、-
右移、左移:>>、<<
与:&
异或、或:^、|
比较运算符:<=、<、>、>=
等于、不等于:==、!=
赋值运算符:=、%=、/=、//=、-=、+=、*=、**=
身份运算符:is、is not
成员运算符:in、not in
逻辑运算符:not、and、or