目录
1. 算术运算符
2. 赋值运算符
3. 比较运算符
4. 逻辑运算符
5. 位运算符
1. 算术运算符
算术运算符主要包含+,-,*,/,//,%,**。
1)+:可以用于变量之间的加法运算,前提是类型相同。例如 a = 1 , b = 2 , c = a + b。
也可用于字符串之间的连接,以及列表,元组等。同时也支持连加,比如a = 1 + 2 + 3。
2)-:可以用于变量之间的减法运算,前提是类型相同。例如 a = 1 , b = 2 , c = a - b。
也可用于列表,元组,以及集合中求差集等。同时也支持连减,比如a = 1 - 2 - 3。
3)*:可以用于变量之间的乘法运算,前提是类型相同。例如 a = 1 , b = 2 , c = a * b。
也可用于列表,元组中等。比如a = [1, 2, 3] , b = a * 3。
4)/:可以用于变量之间的除法运算,前提是类型相同。例如 a = 1 , b = 2 , c = a / b。被除数不能为0。一般结果是float类型
5)//:用法为m//n,是取整商。不管小数点后面的数字是几都要舍掉只取整数部分。例如:
6)**:用法为m**n,就是取m的n次方,n个m相乘。例如5**3就相当于5*5*5。如果是连续次方就要从后向前计算。例如5**3**2**4,先计算2**4=2*2*2*2=16,再计算3**16=43046721,最后计算5 * *43046721。
7)%:取余,是取余操作。用法为m % n,就是求m除以n的余数,余数有n种情况,分别是0,1,2,... n-1。如果是对2进行区域可以用来判断是否为奇数或者偶数,除以2只有0与1两种情况,如果除以2余数为1则为真是奇数,如果是0则为假是偶数。
算术优先级为:** > * / // % > + -
2. 赋值运算符
算术运算符主要包含+,-,*,/,//,%,**。
1)=:最基本的赋值运算符,用法为 a = 1,就是把等号右边的值赋值给等号左边的变量名。
2)+=:用法为 a += 1,就相当于a = a + 1。因为赋值运算符优先级最低,所以先加再赋值。
3)-=:用法为 a -= 1,就相当于a = a - 1。因为赋值运算符优先级最低,所以先减再赋值。
4)*=:用法为 a *= 1,就相当于a = a * 1。因为赋值运算符优先级最低,所以先乘再赋值。
5)/=:用法为 a /= 1,就相当于a = a / 1。因为赋值运算符优先级最低,所以先除再赋值。
6)//=:用法为 a //= 1,就相当于a = a // 1。因为赋值运算符优先级最低,所以先整除再赋值。
7)**=:用法为 a **= 1,就相当于a = a ** 1。因为赋值运算符优先级最低,所以先次方再赋值。
8)%=:用法为 a %= 1,就相当于a = a % 1。因为赋值运算符优先级最低,所以先取余再赋值。
如图所示。
3. 比较运算符
比较运算符主要包含> >= < <= == !=,这些比较运算符可以用于数字、字符串和其他数据类型。在进行比较时,比较运算符将根据两个值之间的关系返回一个结果,并且结果是一个布尔值,表示比较结果的真假。
1)>:检查左侧的值是否大于右侧的值。如果是,则返回True;否则返回False。
2)>=:检查左侧的值是否大于或等于右侧的值。如果是,则返回True;否则返回False。
3)<:检查左侧的值是否小于右侧的值。如果是,则返回True;否则返回False。
4)<=:检查左侧的值是否小于或等于右侧的值。如果是,则返回True;否则返回False。
5)==:检查两个值是否相等。如果相等,则返回True;否则返回False。
6)!=:检查两个值是否不相等。如果不相等,则返回True;否则返回False。
如图所示。
4. 逻辑运算符
逻辑运算符是用于组合和比较布尔值的运算符。它们用于判断复杂的条件并返回一个布尔结果(True或False)。主要有and,or,not。
1)and:当两个操作数都为True时,结果为True;否则为False。左侧为真返回右侧,左侧为假返回左侧。
2)or:当两个操作数都为False时,结果为False;否则为True。左侧为真返回左侧,左侧为假返回右侧。
3)not:非假就是真,非真就是假。如果操作数为True,则结果为False;如果操作数为False,则结果为True。
如图所示。
5. 位运算符
位运算符是在数字的二进制表示形式上执行操作的运算符。它们直接处理二进制数的每个位,对每个位进行逐位的操作。主要有按位与(&),按位或(|),按位异或(^),按位左移(<<),按位右移(>>)。
1)&:对两个操作数的每个位执行与操作,只有当两个位都为1时,结果位为1,否则为0。例如bin(15) == 0000 1111,bin(9) == 0000 1001,根据都为1时,结果位为1,否则为0,可得9 = 0000 1001,所以15 & 9 == 9
2)|:对两个操作数的每个位执行与操作,只有当两个位都为0时,结果位为0,否则为1。例如bin(15) == 0000 1111,bin(9) == 0000 1001,根据都为0时,结果位为0,否则为1,可得15 = 0000 1111,所以15 | 9 == 15
3)^:对两个操作数的每个位执行异或操作,当两个相同位置不相同时,结果为1,否则为0。例如bin(15) == 0000 1111,bin(9) == 0000 1001,根据相同位置不相同时,结果为1,否则为0,可得9 = 0000 0110,所以15 ^ 9 == 6
4)<<:将操作数的所有位向左移动指定的位数。左移时,高位丢弃,低位补0。例如bin(15) == 0000 1111,左移两位为60 == 0011 1100,可得15 << 2 == 60
5)>>:将操作数的所有位向右移动指定的位数。右移时,低位丢弃,高位补0。例如bin(15) == 0000 1111,右移两位为3 == 0000 0011,可得15 >> 2 == 3
如图所示。