1:算术运算符
用于基本的数学运算。包括加法(+)、减法(-)、乘法(*)、除法(/)、整除(//)、取余(%)和幂运算(**)。
例如,a = 5 + 3(加法),b = 7 - 2(减法),c = 4 * 3(乘法),d = 7 / 2(除法,在 Python 3.x 中结果为浮点数),e = 7 // 2(整除,舍去小数部分),f = 7 % 2(取余),g = 2 ** 3(幂运算,表示 2 的 3 次方)。
2:比较运算符
用于比较两个值的大小或相等关系。有大于(>)、小于(<)、大于等于(>=)、小于等于(<=)、等于(==)和不等于(!=)。
例如,a = 5 > 3(返回True),b = 2 == 3(返回False),c = 4 <= 4(返回True)
3:逻辑运算符
用于组合或操作布尔值。包含and(与)、or(或)和not(非)。
and运算只有当两边的值都为True时才返回True,如a = True and False(返回False)。or运算只要有一边的值为True就返回True,如b = True or False(返回True)。not运算符对一个布尔值取反,如c = not True(返回False)。
4:赋值运算符
用于给变量赋值。基本的赋值运算符是=,还有复合赋值运算符,如+=(加法赋值)、-=(减法赋值)、*=(乘法赋值)、/=(除法赋值)、//=(整除赋值)、%=(取余赋值)和**=(幂赋值)。
例如,a = 5(基本赋值),b = 3,b += 2(等同于b = b + 2,结果b为 5)。
5:位运算符
对整数的二进制位进行操作。包括按位与(&)、按位或(|)、按位异或(^)、按位取反(~)、左移(«)和右移(»)。
例如,对于二进制的3(0b11)和5(0b101),3 & 5(按位与,结果为0b01,即十进制的 1)。左移如2 « 3(将二进制的2(0b10)左移 3 位,得到0b10000,即十进制的 16)。
6:成员运算符
用于判断一个元素是否在一个容器(如列表、元组、集合、字典等)中。包括in和not in。
例如,对于列表my_list = [1, 2, 3],2 in my_list(返回True),4 not in my_list(返回True)。
7:身份运算符
用于判断两个对象是否是同一个对象。有is和is not。
例如,a = [1, 2, 3],b = a,a is b(返回True),如果c = [1, 2, 3],a is c(返回False),虽然它们内容相同,但不是同一个对象。
8:三元运算符
三元运算符也被称为条件表达式,它是一种简洁的条件判断语法。其基本语法格式为:value_if_true if condition else value_if_false。 其中,condition是一个布尔表达式,用于判断条件是否成立。如果condition为True,则整个表达式返回value_if_true;如果condition为False,则返回value_if_false。
a = "网文作者奉旨而挥想要证道成神" if 6 else "扑街?"
print(a)
9:运算符的优先级别
优先级概述
在 Python 中,运算符的优先级决定了表达式中运算执行的先后顺序。就像数学运算中先乘除后加减一样,Python 中的运算符也遵循一定的规则。当一个表达式中包含多个不同类型的运算符时,优先级高的运算符会先被执行。
具体优先级顺序(从高到低)
括号(()): 括号用于改变运算的顺序,表达式中被括号括起来的部分会优先执行。例如,在表达式(3 + 4) * 2中,会先计算括号内的3 + 4,得到 7,然后再计算7 * 2,结果为 14。
幂运算符(**): 幂运算用于计算一个数的几次方。例如,2 ** 3表示 2 的 3 次方,结果为 8。它的优先级仅次于括号。
一元正负号(+、-): 一元正号和负号用于表示正数和负数。例如,-2中的-就是一元负号。当它出现在一个数前面时,会先对这个数进行正负号的处理。比如在表达式-2 ** 2中,先处理-号,得到 - 4(注意这里和(-2) ** 2的区别,后者结果为 4)。
乘、除、整除(*、/、//)和取余(%): 这些运算符用于基本的算术乘除和取余运算。它们的优先级相同,在没有括号的情况下,按照从左到右的顺序执行。例如,在表达式10 / 2 * 3中,先计算10 / 2得到 5,然后再计算5 * 3,结果为 15。
加法和减法(+、-): 加法和减法的优先级低于乘除运算。例如,在表达式5 + 3 * 2 - 1中,先计算乘法3 * 2得到 6,然后按照从左到右的顺序计算加法和减法,即5 + 6 - 1,结果为 10。
移位运算符(«、»): 移位运算符用于对整数的二进制位进行移位操作。例如,2 « 3表示将二进制的 2(0b10)左移 3 位,得到0b10000,即十进制的 16。它的优先级低于算术运算符。
位运算符(&、|、^): 位运算符用于对整数的二进制位进行与、或、异或操作。例如,对于二进制的 3(0b11)和 5(0b101),3 & 5(按位与)的结果为0b01,即十进制的 1。它们的优先级低于移位运算符。
比较运算符(>、<、>=、<=、==、!=): 比较运算符用于比较两个值的大小或相等关系。例如,5 > 3返回True。这些运算符的优先级低于位运算符,并且比较运算符之间的优先级相同,在一个表达式中有多个比较运算符时,按照从左到右的顺序执行。
逻辑运算符(not、and、or): 逻辑运算符用于组合或操作布尔值。not运算符优先级最高,用于对一个布尔值取反;and运算符其次,只有当两边的值都为True时才返回True;or运算符最后,只要有一边的值为True就返回True。例如,在表达式True or False and not True中,先计算not True得到False,然后计算False and False得到False,最后计算True or False得到True。
成员运算符(in、not in)和身份运算符(is、is not): 成员运算符用于判断一个元素是否在一个容器中,身份运算符用于判断两个对象是否是同一个对象。它们的优先级相同,并且低于逻辑运算符。例如,在表达式3 in [1, 2, 3] and 4 is not 5中,先分别计算两边的成员运算符和身份运算符,然后再进行and运算。
注意事项
虽然运算符有优先级顺序,但为了提高代码的可读性,在复杂的表达式中,尽量使用括号来明确运算顺序,避免因对优先级的误解而导致错误。例如,表达式a / b * c可能会因为对乘除优先级的误解而产生错误的结果预期,写成a / (b * c)会更加清晰。