Python 篇章(六)
一、算术运算符(常用)
- 功能:进行相关符号的运算,不会改变变量的值
- 值:相关的数学运算结果;(2 + 1 = 3)
1. 运算符
- +(加)
- -(减)
- *(乘)
- /(除)
- %(取余)
- //(取整)
- **(求幂[次方])
2. 语法格式
- 2 + 1
- 2 - 1
- 2 * 1
- 2 / 1
- 2 % 1
- 2 // 1
- 2 ** 1
3.示例
注意:在进行相关符号运算的时候,是不会修改变量值的
num1 = 5
num2 = 3
print(num1 + num2 ) # 8
print(num1 - num2 ) # 2
print(num1 * num2 ) # 15
print(num1 / num2 ) # 1.6666666666666667
print(num1 % num2 ) # 2
print(num1 ** num2 ) # 125
print(num1 // num2 ) # 1
print(num1, num2) # 5 3 不会改变变量的值
二、赋值运算符(常用)
- 功能:计算了等号右侧 "表达式"的值,并赋值给等号左侧的变量
- 值:赋值结束后变量的值
1. 运算符
- =
- +=
- -=
- *=
- **=
- /=
- %=
- //=
2. 语法格式
3. 示例
- +=
num = 1
while num <= 5:
print("num = %d" % num)
num += 1
- -=
num = 5
while num > 0:
print("num = %d" % num)
num -= 1
三、比较运算符(常用)
- 功能:计算 "表达式1" 和 "表达式2"的值
- 值:如果关系成立,整个关系运算表达式的值为真,否则为假
1. 运算符
2. 语法格式
- 表达式1 比较运算符 表达式2
3. 示例
# 成立的表达式
if 10 == 10:
print("True")
else:
print("False")
# 不成立的表达式
if 10 == 11:
print("True")
else:
print("False")
四、逻辑运算符(常用)
1. 逻辑与 and 运算符
1.1 格式 & 原理
- 格式:表达式1 and 表达式2
- 原理:两个表达式有一个是假 就为假;两个表达式都是真 才为真
- 如果表达式1的值为真,表达式2的值为真,整体逻辑与运算表达式的值为真
- 如果表达式1的值为真,表达式2的值为假,整体逻辑与运算表达式的值为假
- 如果表达式1的值为假,表达式2的值为真,整体逻辑与运算表达式的值为假
- 如果表达式1的值为假,表达式2的值为假,整体逻辑与运算表达式的值为假
1.2 短路原则
表达式1 and 表达式2 and 表达式3 and 表达式4 and .......
原理一样,无论有多少个表达式,必须要所有的表达式为真才为真,否则为假!!!
1.3 示例
# 都为真
num1 = 1 < 2
num2 = 2 == 2
if num1 and num2:
print("*******")
# 一个真,一个假
num1 = 1 > 2
num2 = 2 == 2
if num1 and num2:
print("*******")
2.逻辑或 or 运算符
2.1 格式 & 原理
- 格式:表达式1 or 表达式2
- 原理:两个表达式有一个是真 就为真;两个表达式都是假 才为假
- 如果表达式1的值为真,表达式2的值为真,整体逻辑与运算表达式的值为真
- 如果表达式1的值为真,表达式2的值为假,整体逻辑与运算表达式的值为真
- 如果表达式1的值为假,表达式2的值为真,整体逻辑与运算表达式的值为真
- 如果表达式1的值为假,表达式2的值为假,整体逻辑与运算表达式的值为假
2.2 短路原则
表达式1 or 表达式2 or 表达式3 or 表达式4 or .......
原理一样,无论有多少个表达式,只要有一个表达式是真 就为真,表达式都是假 才为假!!!
2.3 示例
num1 = 1 > 2
num2 = 2 == 2
if num3 or num4:
print("&&&&&&&&&&")
3.逻辑非 not 运算符
3.1 格式 & 原理
- 格式:not 表达式
- 原理:颠倒黑白
- 如果表达式的值为真。整体逻辑非运算表达式的值为假
- 如果表达式的值为假。整体逻辑非运算表达式的值为真
3.2 示例
if not 0:
print("@@@@@@@@@")
五、成员运算符(常用)
1. in 和 not in 的作用
- 用来测试实例中包含了一系列的成员,包括字符串,列表或元组。
运算符 | 描述 | 实例 |
---|---|---|
in | 如果在指定的序列中找到值返回 True,否则返回 False。 | x 在 y 序列中 , 如果 x 在 y 序列中返回 True。 |
not in | 如果在指定的序列中没有找到值返回 True,否则返回 False。 | x 不在 y 序列中 , 如果 x 不在 y 序列中返回 True。 |
2. 示例
- string
str1 = "lemon is a good man!"
print("good" in str1) # True
print("good" not in str1) # False
- list
list1 = ["lemon", 18]
print(18 in list1) # True
print(18 not in list1) # False
- tuple
tuple1 = ("lemon", 18)
print("lemon" in tuple1) # True
print("lemon" not in tuple1) # False
六、身份运算符(常用)
1. is 和 is not 的作用
- 身份运算符用于比较两个对象的存储单元
- 说白了就是判断两个标识符的内存地址是否相同
运算符 | 描述 | 实例 |
---|---|---|
is | is 是判断两个标识符是不是引用自同一个对象 | x is y, 类似 id(x) == id(y) 。如果引用的是同一个对象则返回 True,否则返回 False |
is not | is not 是判断两个标识符是不是引用自不同对象 | x is not y , 类似 id(a) != id(b) 。如果引用的不是同一个对象则返回结果 True,否则返回 False。 |
2. 示例
num1 = 100
num2 = num1
print(num1 is num2) #True
print(num1 is not num2) #False
print("num1_id = ", id(num1)) #num1_id = 1853852880
print("num2_id = ", id(num2)) #num2_id = 1853852880
七、三目运算符(不太常用)
1. 作用
- 简化版的 if-else语句
- 格式:
- 条件成立要执行的语句 if 条件 else 条件不成立要执行的语句
2. 示例
a = 3
b = 4
c = (a * 2 if a > b else b * a) #条件成立则执行if语句:(a * b),否则就执行else语句:(b * a)
print(c)
- 需求:有两个变量,比较大小,如果变量1大于变量2就执行变量1 - 变量2;否则变量2 - 变量1
a1 = 19
a2 = 10
print(a1 - a2) if a1 > a2 else print(a2 - a1)
八、位 操作符(不太常用)
该运算符按二进制位对值进行操作
& 按位与:参与运算的两个值,如果两个相应位都为1,则该位的结果为1,否则为0
| 按位或:只要对应的两个二进位有一个为1时,结果位就为1
^ 按位异或:当两对应的二进位相异时,结果为1
~ 按位取反:对数据的每个二进制位取反,即把1变为0,把0变为1
<< 右移动:运算数的各二进位全部左移若干位,由<<右边的数字指定了移动的位数,高位丢弃,低位补0
>> 右移动:左边的运算数的各二进制位全部右移若干位,>>右边的数字指定了移动的位数
print(0b110 & 0b010) #2
print(3|2) #3
print(3^2) #1
print(~2) #-3
print(1<<2) #4
print(4>>2) #1
1、& 按位与 运算符
# 位运算符:按位运算符是把数字看作二进制来进行计算
# 相应的位数都为1,则该位的结果为1,否则为0
print(5 & 7) # 5
5: 101
7: 111
------
1 0 1
2、| 按位或 运算符
# 两个二进制位有一个位为1,结果为1
print(5 | 7) # 7
5: 101
7: 111
------
1 1 1
3、 ^ 按位异或 运算符
# 二进制的两位相异时,结果为1
print(5 ^ 7) # 2
5: 101
7: 111
------
0 1 0
4、 ~ 按位取反 运算符
# 每个二进制数据位取反,在进行转码
print(~ 5) # 6
00000101
11111010
10000110
5、 << 左移动运算符
# 各二进制位全部左移动若干位,由<<右侧的数字决定,低位补0
print(131 << 2) # 524
---------------
# 131:10000011
# 10000011 向左移动两位 #1000001100
6、>> 右移动运算符
# 各二进制位全部右移动若干位,由>>右侧的数字决定,低位丢弃,高位补0
print(131 >> 2) # 32
# 131:10000011
# 10000011 向右移动两位 # 00100000
九、运算符的优先级(重点)
- 以下表格列出了从最高到最低优先级的所有运算符
运算符 | 描述 |
---|---|
** | 指数 (最高优先级) |
~ + - | 按位翻转, 一元加号和减号 (最后两个的方法名为 +@ 和 -@) |
* / % // | 乘,除,取模和取整除 |
+ - | 加法减法 |
>> << | 右移,左移运算符 |
& | 位 'AND' |
^ | | 位运算符 |
<= < > >= | 比较运算符 |
<> == != | 等于运算符 |
= %= /= //= -= += *= **= | 赋值运算符 |
is is not | 身份运算符 |
in not in | 成员运算符 |
not or and | 逻辑运算符 |
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律