1、算数运算符
标准算数运算符:加+,减-,乘*,除/,整除//。(整除:11 // 2 = 5)
取余:%。(11 % 2 = 1)
幂运算:**。(2 ** 2 = 4,2 ** 3 = 8)
注意以下特殊情况:一负一正:向下取整!
整除:-9 // 4 = -3,9 // -4 = -3
取余:-9 % 4 = 3,9 % -4 = -3
取余的结果遵循公式:余数 = 被除数 - 除数 * 商。商已由上一步获得,因此:
-9 % 4 = -9 - 4 * (-3) = -9 + 12 = 3
9 % -4 = 9 - (-4)* (-3) = 9 - 12 = -3
2、赋值运算符
等于 = :从右到左依次赋值。
链式赋值: a = b = c = 10,此时a,b,c三个变量都指向:同一个id的数据类型为int,值为10的数据空间
参数赋值:+=,-=,*=,/=,%=
系列解包赋值:a, b, c = 10, 20, 30,此时:a = 10, b = 20, c = 30 。
来看一个有趣的操作:利用系列解包赋值操作,交换两个变量的值。
常规操作中,我们需要使用一个中间变量temp,进行承接,以便之后的数据交换,但是在Python中有更加简便的方法,请看:
a,b = 10,20
print("交换之前:", a, b) #此时输出结果为:交换之前: 10 20
a,b = b,a
print("交换之后:", a, b) #此时输出结果为:交换之后: 20 10
3、比较运算符
(1)对象value的比较:==,!=
(2)对象id的比较:is,is not
其它比较运算符:> , <,>=, <=,结果为bool型
a = 10
b = 10
print(a == b) #此时的输出结果为:True
print(a is b) #此时的输出结果为:True
#从结果可以看出,a,b两个变量都指向10这个数据空间
a = [11, 22, 33]
b = [11, 22, 33]
print(a == b) #此时的输出结果为:True
print(a is b) #此时的输出结果为:False
#从结果可以看出,列表a,b虽然值相同,但是是两个不同的对象,id不同
4、布尔运算符
and:True and True = True,其它都为False
or:False or False = False,其它都为True
not:not False = True,not True = False
in,not in:可以用于判断字母是否在字符串中。例如:
s = 'hello world'
print('w' in s) #此时的输出结果为:True
print('k' in s) #此时的输出结果为:False
5、位运算符
位与:& 1 & 1 = 1,其它均为0
位或:| 0 | 0 = 0,其它均为1
左移:<< 高位溢出舍弃,低位补0,相当于 * 2
右移:>> 低位溢出舍弃,高位补0,相当于 / 2
6、运算符的优先级
算数运算符 > 位运算符 > 比较运算符 > 布尔运算符 > 赋值运算符
但是,若有括号,则先算括号内的。