Python 提供了丰富的运算符,用于执行各种数学运算、逻辑运算、比较运算等。以下是 Python 中常用的运算符及其用法。(一定要自己敲一次最好不要粘贴,粘贴毫无意义,眼过十遍不如手过一遍,大佬随意)
用于执行基本的数学运算。
运算符 | 描述 | 示例 | 结果 |
---|---|---|---|
+ |
加法 | 3 + 2 |
5 |
- |
减法 | 5 - 2 |
3 |
* |
乘法 | 3 * 2 |
6 |
/ |
除法 | 10 / 2 |
5.0 |
// |
整除(取整) | 10 // 3 |
3 |
% |
取余(取模) | 10 % 3 |
1 |
** |
幂运算 | 2 ** 3 |
8 |
# 加法 + addition
addition1 = 3
addition2 = 2
print(addition1,addition2,"加法运算结果:",addition1+addition2)
# 减法 - subtraction
subtraction1 = 5
subtraction2 = 2
print(subtraction1,subtraction2,"减法运算结果:",subtraction1-subtraction2)
# 乘法 * multiplication
multiplication1 = 3
multiplication2 = 2
print(multiplication1,multiplication2,"乘法运算结果:",multiplication1*multiplication2)
# 除法 / division
division1 = 10
division2 = 2
print(division1,division2,"除法运算结果:",division1/division2)
# 整除(取整) // rounding
rounding1 = 10
rounding2 = 3
print(rounding1,rounding2,"整除(取整)运算结果:",rounding1//rounding2)
# 取余(取模) % modulo
modulo1 = 10
modulo2 = 3
print(modulo1,modulo2,"取余(取模)运算结果:",modulo1 % modulo2)
# 幂运算 ** exponentiation
exponentiation1 = 2
exponentiation2 = 3
print(exponentiation1,exponentiation2,"幂运算运算结果:",exponentiation1 ** exponentiation2)
'''
输出结果
3 2 加法运算结果: 5
5 2 减法运算结果: 3
3 2 乘法运算结果: 6
10 2 除法运算结果: 5.0
10 3 整除(取整)运算结果: 3
10 3 取余(取模)运算结果: 1
2 3 幂运算运算结果: 8
'''
用于比较两个值,返回布尔值(True
或 False
)。
运算符 | 描述 | 示例 | 结果 |
---|---|---|---|
== |
等于 | 3 == 2 |
False |
!= |
不等于 | 3 != 2 |
True |
> |
大于 | 3 > 2 |
True |
< |
小于 | 3 < 2 |
False |
>= |
大于等于 | 3 >= 3 |
True |
<= |
小于等于 | 3 <= 2 |
False |
# 比较运算符 compare
compare_dim1 = 3
compare_dim2 = 2
print("运算符等于运算结果",compare_dim1==compare_dim2)
print("运算符不等于运算结果",compare_dim1!=compare_dim2)
print("运算符大于运算结果",compare_dim1>compare_dim2)
print("运算符小于运算结果",compare_dim1=compare_dim2)
print("运算符小于等于运算结果",compare_dim1<=compare_dim2)
'''
输出结果
运算符等于运算结果 False
运算符不等于运算结果 True
运算符大于运算结果 True
运算符小于运算结果 False
运算符大于等于运算结果 True
运算符小于等于运算结果 False
'''
用于组合多个条件,返回布尔值(True
或 False
)。
运算符 | 描述 | 示例 | 结果 |
---|---|---|---|
and |
逻辑与 | True and False |
False |
or |
逻辑或 | True or False |
True |
not |
逻辑非 | not True |
False |
#逻辑运算符 logic
logic1 = 1==1
logic2 = 2==1
print("逻辑运算符and运算结果",logic1 and logic2)
print("逻辑运算符or运算结果",logic1 or logic2)
print("逻辑运算符not运算结果", not logic2)
'''
输出结果
逻辑运算符and运算结果 False
逻辑运算符or运算结果 True
逻辑运算符not运算结果 True
'''
用于为变量赋值或进行运算后赋值。
运算符 | 描述 | 示例 | 等价于 |
---|---|---|---|
= |
赋值 | x = 5 |
x = 5 |
+= |
加后赋值 | x += 2 |
x = x + 2 |
-= |
减后赋值 | x -= 2 |
x = x - 2 |
*= |
乘后赋值 | x *= 2 |
x = x * 2 |
/= |
除后赋值 | x /= 2 |
x = x / 2 |
//= |
整除后赋值 | x //= 2 |
x = x // 2 |
%= |
取余后赋值 | x %= 2 |
x = x % 2 |
**= |
幂运算后赋值 | x **= 2 |
x = x ** 2 |
# 赋值运算符 =
assignment1 = 5
print('直接赋值结果:',assignment1)
# 赋值运算符 需要注意不能直接写 assignment2 += 2 需要提前定义assignment2 = 2 否则会显示未定义
assignment2 = 2
assignment2 += 2
print('+=赋值结果:',assignment2)
# 赋值运算符 需要注意不能直接写 assignment3 -= 2 需要提前定义assignment3 = 2 否则会显示未定义
assignment3 = 2
assignment3 -= 2
print('-=赋值结果:',assignment3)
# 赋值运算符 需要注意不能直接写 assignment4 *= 2 需要提前定义assignment4 = 2 否则会显示未定义
assignment4 = 2
assignment4 -= 2
print('*=赋值结果:',assignment4)
# 赋值运算符 需要注意不能直接写 assignment4 *= 2 需要提前定义assignment4 = 2 否则会显示未定义
assignment4 = 2
assignment4 -= 2
print('*=赋值结果:',assignment4)
# 赋值运算符 需要注意不能直接写 assignment5 /= 2 需要提前定义assignment5 = 2 否则会显示未定义
assignment5 = 2
assignment5 /= 2
print('/=赋值结果:',assignment5)
# 赋值运算符 需要注意不能直接写 assignment6 //= 2 需要提前定义assignment6 = 2 否则会显示未定义
assignment6 = 2
assignment6 //= 2
print('//=赋值结果:',assignment6)
# 赋值运算符 需要注意不能直接写 assignment7 //= 2 需要提前定义assignment7 = 2 否则会显示未定义
assignment7 = 10
assignment7 %= 2
print('%=赋值结果:',assignment6)
# 赋值运算符 需要注意不能直接写 assignment8 **= 2 需要提前定义assignment8 = 2 否则会显示未定义
assignment8 = 2
assignment8 **= 2
print('**=赋值结果:',assignment8)
'''
输出结果
直接赋值结果: 5
+=赋值结果: 4
-=赋值结果: 0
*=赋值结果: 0
*=赋值结果: 0
/=赋值结果: 1.0
//=赋值结果: 1
%=赋值结果: 1
**=赋值结果: 4
'''
用于对二进制数进行操作。
首先看下二进制位运算怎么计算在学习10进制的位运算就很好理解了(进制转化点击链接查看文章即可)
运算名称 | 符号 | 规则 | 示例(均以0001和0010为例 即1和2) |
---|---|---|---|
与(AND) | & |
两位都为1时结果为1,否则为0。 | 0001 & 0010 = 0000 (1 & 2 = 0) |
或(OR) | | | 任一位为1时结果为1,否则为0。 | 0001 | 0010 = 0011 (1 | 2 = 3) |
异或(XOR) | ^ |
两位不同时结果为1,否则为0。 | 0001 ^ 0010 = 0011 (1 ^ 2 = 3) |
非(NOT) | ~ |
每位取反(0变1,1变0)。 (注意:结果取决于二进制位数和计算机的表示方式。) |
|
左移(Left Shift) | << |
将所有位向左移动,右侧补0。 | 1 << 2 = 8 |
右移(Right Shift) | >> |
将所有位向右移动,左侧补0(逻辑右移)或补符号位(算术右移)。 | 1010 >> 1 = 0101 (10 >> 1 = 5) |
运算符 | 描述 | 示例 | 结果 |
---|---|---|---|
& |
按位与 | 1 & 2 |
0 |
| |
按位或 | 1|2 | 3 |
^ |
按位异或 | 1 ^ 2 |
3 |
~ |
按位取反 | ~1 |
-2 |
<< |
左移 | 1 << 2 |
4 |
>> |
右移 | 8 >> 2 |
2 |
# 位运算 按位与 两位都为1时结果为1,否则为0。
bitwise1 = 1 # 二进制表示:0001
bitwise2 = 2 # 二进制表示:0010
result = bitwise1 & bitwise2 # 二进制表示:0000
print('1 & 2按位与结果:',result)
# 位运算 按位或 任一位为1时结果为1,否则为0。
bitwise1 = 1 # 二进制表示:0001
bitwise2 = 2 # 二进制表示:0010
result = bitwise1 | bitwise2 # 二进制表示:0011
print('1 | 2按位或结果:',result)
# 位运算 异或 两位不同时结果为1,否则为0。
bitwise1 = 1 # 二进制表示:0001
bitwise2 = 2 # 二进制表示:0010
result = bitwise1 ^ bitwise2 # 二进制表示:0011
print('1 ^ 2异或结果:',result)
# 位运算 非 每位取反(0变1,1变0)(注意:结果取决于二进制位数和计算机的表示方式。) 注意了 一定要去看补码按位取反
bitwise1 = 1 # 二进制表示:0001
result = ~bitwise1 # 二进制表示:1010
print('1非结果:',result)
# 位运算 左移 将所有位向左移动,右侧补0
bitwise1 = 1 << 2
print('1左移2位结果:',bitwise1)
# 位运算 右移 将所有位向右移动,左侧补0(逻辑右移)或补符号位(算术右移)。
bitwise1 = 8 >> 2
print('8右移2位结果:',bitwise1)
'''
输出结果
1 & 2按位与结果: 0
1 | 2按位或结果: 3
1 ^ 2异或结果: 3
1非结果: -2
1左移2位结果: 4
8右移2位结果: 2
'''
用于比较两个对象的内存地址是否相同。
运算符 | 描述 | 示例 | 结果 |
---|---|---|---|
is |
是同一个对象 | a is b |
False |
is not |
不是同一个对象 | a is not b |
True |
# 身份运算符 is 与 is not
identity1 ='aa'
identity2 = 'aa'
identity3 = identity1 is identity2
print(identity3) # True
identity3 = identity1 is not identity2
print(identity3) # False
优先级 | 运算符 | 描述 |
---|---|---|
1 | () |
括号(最高优先级) |
2 | ** |
指数运算 |
3 | ~ |
按位取反 |
4 | + (正号), - (负号) |
正负号 |
5 | * , / , // , % |
乘法、除法、整除、取模 |
6 | + , - |
加法、减法 |
7 | << , >> |
左移、右移 |
8 | & |
按位与 |
9 | ^ |
按位异或 |
10 | | | 按位或 |
11 | == , != , > , < , >= , <= |
比较运算符 |
12 | is , is not |
身份运算符 |
13 | not |
逻辑非 |
14 | and |
逻辑与 |
15 | or |
逻辑或 |
16 | = |
赋值运算符 |