python有各种各样的运算符,不仅仅是+-*/这种算数运算,还有类似于=、+=这种赋值运算。
python中总共有算术运算、赋值运算、比较(关系)运算、逻辑运算、身份运算、成员运算、位运算(二进制)共7种运算分类。
下面我们将挑一些重要且常用的来进行了解。
算数运算
关于算数运算我们在之前的python3教程(五):number里面进行了解释,算术运算的运算符分别为加(+)、减(-)、乘(*)、整除(//)、浮点除(/)、除余(%)、次方(**)共七个。
赋值运算
我们在上一章变量,里面的=就是赋值运算符的一种。赋值运算符分别为等于(=)、加后等于(+=)、减后等于(-=)、乘后等于(*=)、整除后等于(//=)、浮点除后等于(/=)、除余后等于(%=)、乘方后等于(**=)共七个。
#+=就是相加后等于,a+=b就是a=a+b,其他的也是同理#
>>> a = 1
>>> b = 2
>>> a += b
>>> a
3
>>> a = 1
>>> b = 2
>>> b -= a
>>> b
1
>>> a = 4
>>> b = 6
>>> a *= b
>>> a
24
>>> a,b = 4,6
>>> a /= b
>>> a
0.6666666666666666
>>> a,b = 4,6
>>> b //= a
>>> b
1
>>> a,b = 4,6
>>> b %= a
>>> b
2
>>> a,b = 4,6
>>> a **= b
>>> a
4096
比较(关系)运算
比较(关系)运算主要是对值的大小进行运算,主要有等于(==)、大于( >)、小于(<)、大于等于( >=)、小于等于(<=)、不等于(!=)共六种。
#比较运算符中,涉及到一种数据类型:bool类型,这种类型的数据只有两个值False(否)和True(对)#
#bool类型在其他的数据类型中也有相对应的值,在字符串中False和True分别对应空字符串和非空字符串,在数字中False和True分别对应0和非0数字#
#比较运算是一种关系运算,即对两个值之间是否相等来进行运算,返回的结果只有False和True#
#比较运算的关系对比一般用于数字当中#
>>> 1 == 1
True
>>> 1 == 1
True
>>> 1 == 2
False
>>> 1 < 2
True
>>> 1 <= 2
True
>>> 2 < 1
False
>>> 2 <= 1
False
逻辑运算
逻辑运算主要用于条件运算,主要有or(或)、and(且)、not(布尔类型转换)
#or表示或,即a or b时,如果a的值为True,则返回a,如果a的值为False,则返回b#
>>> 1 or 2
1
>>> 0 or 1
1
>>> 0 or 2
2
>>> '' or 1
1
#and表示且,即a and b and c时,默认返回a。在运算中,如果a、b、c其中一个值为False,则返回False#
>>> '' and 0 and 1
''
#not是转换bool类型#
>>> not False
True
>>> not True
False
身份运算
身份运算主要是判断两个值是否为同一个内存地址,主要有is 和 is not 两种。
#我们可以使用id()来查看值的内存地址#
>>> id(1)
140718229861200
>>> id(2)
140718229861232
#身份运算主要是判定两个变量值的内存地址是否相等#
>>> a = 1
>>> b = 1
>>> a is b
True
>>> a = 1
>>> b = 0+1
>>> a is b
True
#is 不等同于 ==#
>>> 1 == 1.0
True
>>> 1 is 1.0
False
成员运算
成员运算主要用于判定某个值存在于另一个值内,主要有in和not in两种。
>>> '1' in '123'
True
>>> '2' not in '456'
True
位运算(二进制)
位运算主要是把数字看作二进制来进行计算的,主要有按位与(&)、按位或(|)、按位异或(^)、取反(~)、左移动(<<)、右移动(>>),因为使用并不频繁,所以就不细说了。
按位与(&):如果两个二进位都为1,则该位结果为1,否则为0;
按位或(|):只要一个为1,则为1,否则为0;
按位异或(^):两个二进位相异为为1(即两个二进位要相反),否则为0;
取反(~):对数据的每个二进制位取反,即把1变0,把0变1;
左移动(<<):运算数的各二进位全部向左移若干位;
右移动(>>):运算数的各二进位全部向右移若干位;
运算符优先级
python运算符是有优先级的,具体的可以查看python3 运算符大全。python运算符优先级也可以更改,使用()即可。
>>> 1 + 1 * 3 or 4 and 5
4
>>> (1 + 1) * (3 or (4 and 5))
6