Python中最常用的运算符,从简单到复杂:
1. 算术运算符
算术运算符用于执行基本数学运算,如加、减、乘、除等。
-
+加法运算符:将两个操作数相加。a = 5 b = 3 c = a + b # c = 8 -
-减法运算符:将第二个操作数从第一个操作数中减去。a = 5 b = 3 c = a - b # c = 2 -
*乘法运算符:将两个操作数相乘。a = 5 b = 3 c = a * b # c = 15 -
/除法运算符:将第一个操作数除以第二个操作数。a = 6 b = 3 c = a / b # c = 2.0 -
//整除运算符:将第一个操作数除以第二个操作数,并返回结果的整数部分。a = 7 b = 3 c = a // b # c = 2 -
%取模运算符:将第一个操作数除以第二个操作数,并返回余数。a = 7 b = 3 c = a % b # c = 1 -
**幂运算符:将第一个操作数的值提高到第二个操作数的幂。a = 2 b = 3 c = a ** b # c = 8
2. 比较运算符
比较运算符用于比较两个值的大小或关系,通常返回布尔值True或False。
-
>大于运算符:如果左操作数大于右操作数,则返回True,否则返回False。a = 5 b = 3 c = (a > b) # True -
<小于运算符:如果左操作数小于右操作数,则返回True,否则返回False。a = 5 b = 3 c = (a < b) # False -
>=大于等于运算符:如果左操作数大于或等于右操作数,则返回True,否则返回False。a = 5 b = 3 c = (a >= b) # True -
<=小于等于运算符:如果左操作数小于或等于右操作数,则返回True,否则返回False。a = 5 b = 3 c = (a <= b) # False -
==等于运算符:如果两个操作数相等,则返回True,否则返回False。a = 5 b = 5 c = (a == b) # True -
!=不等于运算符:如果两个操作数不相等,则返回True,否则返回False。a = 5 b = 3 c = (a != b) # True
3. 逻辑运算符
逻辑运算符用于对布尔类型的变量进行操作,并返回一个布尔类型的值True或False。
-
and与运算符:如果两个操作数都为True,则返回True;否则,返回False。a = 5 b = 3 c = (a > b) and (b < 4) # False -
or或运算符:如果两个操作数都为False,则返回False;否则,返回True。a = 5 b = 3 c = (a > b) or (b < 4) # True -
not非运算符:如果操作数为True,则返回False;如果操作数为False,则返回True。a = 5 b = 3 c = not (a > b) # False
4. 赋值运算符
赋值运算符用于将值赋给变量。
-
=简单赋值运算符:将右侧的值赋给左侧的变量。x = 3 # 将3赋给变量x -
+=加法赋值运算符:将左操作数加上右操作数,并将结果赋给左操作数。x = 3 x += 2 # 等同于 x = x + 2, x现在的值为5 -
-=减法赋值运算符:将左操作数减去右操作数,并将结果赋给左操作数。x = 5 x -= 2 # 等同于 x = x - 2, x现在的值为3 -
*=乘法赋值运算符:将左操作数乘以右操作数,并将结果赋给左操作数。x = 3 x *= 2 # 等同于 x = x * 2, x现在的值为6 -
/=除法赋值运算符:将左操作数除以右操作数,并将结果赋给左操作数。x = 6 x /= 2 # 等同于 x = x / 2, x现在的值为3.0 -
%=取模赋值运算符:将左操作数除以右操作数并取余数,并将结果赋给左操作数。x = 7 x %= 3 # 等同于 x = x % 3, x现在的值为1
5. 位运算符
位运算符用于对二进制数字进行操作。
-
&按位与运算符:将两个操作数的每一位都按位比较,如果相应位均为1,则该位的结果为1;否则,该位的结果为0。a = 5 # 二进制为101 b = 3 # 二进制为011 c = a & b # 二进制为001,即1 -
|按位或运算符:将两个操作数的每一位都按位比较,如果相应位有至少一个为1,则该位的结果为1;否则,该位的结果为0。a = 5 # 二进制为101 b = 3 # 二进制为011 c = a | b # 二进制为111,即7 -
^按位异或运算符:将两个操作数的每一位都按位比较,如果相应位只有一个为1,则该位的结果为1;否则,该位的结果为0。a = 5 # 二进制为101 b = 3 # 二进制为011 c = a ^ b # 二进制为110,即6 -
~按位取反运算符:将操作数的每一位都按位取反。注意:由于Python使用补码表示负数,在对负数进行按位取反时,需要先将负数的绝对值减1,然后再按位取反,最后将结果取负数。a = 5 # 二进制为101 b = ~a # 结果为-6,因为Python对负数采用补码表示方式 -
<<左移运算符:将左操作数向左移动右操作数指定的位数。左边缺少的位将用0填充。a = 5 # 二进制为101 c = a << 2 # 二进制为10100,即20 -
>>右移运算符:将左操作数向右移动右操作数指定的位数。右边缺少的位将用0填充。注意:由于Python使用补码表示负数,在对负数进行右移操作时,应该使用算术右移,即保留符号位不变,并在左侧补上符号位的值。a = 22 # 二进制为10110 c = a >> 2 # 二进制为00101,即5 b = -22 # 二进制为111010 d = b >> 2 # 二进制为111110, 十进制为-6
6. 成员运算符
成员运算符用于检查一个序列(如字符串、列表或元组)中是否包含某个元素。
-
in存在运算符:如果在指定的序列中找到了指定的值,则返回True;否则,返回False。a = [1, 2, 3, 4, 5] b = 3 c = (b in a) # True -
not in不存在运算符:如果在指定的序列中没有找到指定的值,则返回True;否则,返回False。a = [1, 2, 3, 4, 5] b = 6 c = (b not in a) # True
7. 身份运算符
身份运算符用于比较两个对象的内存地址(即它们是否引用同一个对象)。
-
is是运算符:如果两个操作数引用同一个对象,则返回True;否则,返回False。a = [1, 2, 3] b = a c = (a is b) # True -
is not不是运算符:如果两个操作数引用的不是同一个对象,则返回True;否则,返回False。a = [1, 2, 3] b = [1, 2, 3] c = (a is not b) # True,因为a和b引用的不是同一个对象
这就是Python中的所有主要运算符。希望这份列表能够帮助您更好地理解Python编程语言。
8. 运算符优先级
当有多个运算符混合在一起时,Python遵循一定的优先级规则来确定哪些运算符应该先计算。下面是Python中常用的运算符优先级(从高到低):
()括号(最高优先级)**幂运算符*、/、//、%算术运算符+、-算术运算符<<、>>位运算符&位运算符^、|位运算符<、<=、>、>=比较运算符==、!=比较运算符=,+=,-=,*=,/=,//=,%=,**=赋值运算符is,is not身份运算符in,not in成员运算符not逻辑运算符and逻辑运算符or逻辑运算符(最低优先级)
当表达式中存在多个运算符时,Python将按照上述优先级顺序依次计算。如果需要改变优先级顺序,可以使用括号来明确指定计算顺序。
例如,对于以下表达式:
a = 5 + 6 * 2
因为乘法运算符的优先级高于加法运算符,所以Python会先计算6 * 2,结果为12,然后将5加上12,最终将结果17赋给变量a。
如果想让加法运算先执行,可以使用括号来改变优先级顺序:
a = (5 + 6) * 2
这样,Python会先计算括号中的加法运算,结果为11,然后将11乘以2,最终将结果22赋给变量a。
9. 其他运算符
除了上述常用的运算符外,Python还提供了一些其他的运算符。
-
.属性访问符:用于访问对象的属性或方法。例如,object.property可以获取对象的属性值,object.method()可以调用对象的方法。my_string = "Hello, World!" length = my_string.upper().count('O') # 计算字符串中大写字母'O'出现的次数 -
:切片运算符:用于从序列中获取子序列。冒号前面的数字表示起始位置(包含该位置),冒号后面的数字表示结束位置(不包含该位置)。a = [1, 2, 3, 4, 5] b = a[1:3] # 获取a列表中索引为1和2的元素,结果为[2, 3] -
,分隔符:用于分隔参数、元素等。print("Hello", "World") # 输出两个参数之间有空格的字符串"Hello World" a = [1, 2, 3, 4, 5] b = (1, 2, 3, 4, 5) -
=关键字:用于在函数定义时指定参数默认值、在循环语句中遍历列表等。def greet(name="World"): # 定义带有默认参数的函数 print(f"Hello, {name}!") greet() # 输出"Hello, World!" greet("Alice") # 输出"Hello, Alice!" for num in [1, 2, 3]: # 循环遍历列表中的元素 print(num)
这些运算符虽然不如常用运算符频繁使用,但它们在Python编程中也非常重要。