Python 运算符详解:算术、赋值、比较、逻辑及其他运算符详细注解
1. Python 运算符概述
运算符是用于执行程序代码运算的特殊符号。Python 语言支持多种类型的运算符,用于处理各种数据运算和逻辑判断。掌握这些运算符是编写 Python 程序的基础。
2. 算术运算符
算术运算符用于执行基本的数学运算,如加、减、乘、除等,除法除出来是小数,整除除不尽取整数部分。
1.特别注意%运算符常用,数m对n求余有n-1种情况,从0到n,比如任何数对2取余只有两种情况0和1,这个也特别用于判断数的奇偶性。
| 运算符 | 描述 | 示例 | 结果 |
|---|---|---|---|
| + | 加法 | 10 + 5 | 15 |
| - | 减法 | 10 - 5 | 5 |
| * | 乘法 | 10 * 5 | 50 |
| / | 除法 | 10 / 5 | 2.0 |
| % | 取模(余数) | 10 % 3 | 1 |
| ** | 幂运算 | 2 ** 3 | 8 |
| // | 整除(向下取整) | 10 // 3 | 3 |
# 算术运算符示例
a = 10
b = 3
print(a + b) # 输出:13
print(a - b) # 输出:7
print(a * b) # 输出:30
print(a / b) # 输出:3.3333333333333335
print(a % b) # 输出:1
print(a ** b) # 输出:1000
print(a // b) # 输出:3
3. 赋值运算符
赋值运算符用于给变量赋值,还可以与算术运算符结合使用。
| 运算符 | 描述 | 等价于 | 示例 |
|---|---|---|---|
| = | 简单赋值 | x = 5 | x = 5 |
| += | 加法赋值 | x = x + 3 | x += 3 |
| -= | 减法赋值 | x = x - 3 | x -= 3 |
| *= | 乘法赋值 | x = x * 3 | x *= 3 |
| /= | 除法赋值 | x = x / 3 | x /= 3 |
| %= | 取模赋值 | x = x % 3 | x %= 3 |
| **= | 幂赋值 | x = x ** 3 | x **= 3 |
| //= | 整除赋值 | x = x // 3 | x //= 3 |
# 赋值运算符示例
x = 10
x += 5 # x = x + 5,x 变为 15
print(x) # 输出:15
x -= 3 # x = x - 3,x 变为 12
print(x) # 输出:12
x *= 2 # x = x * 2,x 变为 24
print(x) # 输出:24
x //= 5 # x = x // 5,x 变为 4
print(x) # 输出:4
4. 比较运算符
比较运算符用于比较两个值,返回布尔值 True 或 False。
| 运算符 | 描述 | 示例 | 结果 |
|---|---|---|---|
| == | 等于 | 5 == 5 | True |
| != | 不等于 | 5 != 3 | True |
| > | 大于 | 5 > 3 | True |
| < | 小于 | 5 < 3 | False |
| >= | 大于等于 | 5 >= 5 | True |
| <= | 小于等于 | 5 <= 3 | False |
# 比较运算符示例
a = 10
b = 20
print(a == b) # 输出:False
print(a != b) # 输出:True
print(a > b) # 输出:False
print(a < b) # 输出:True
print(a >= 10) # 输出:True
print(b <= 20) # 输出:True
5. 逻辑运算符
逻辑运算符用于组合条件语句,常用于 if 语句和循环中,
1.这里的and or 返回的值是从运算符左右两边找值,找到的值是决定逻辑运算结果或期望的结果,比如说and 左边为真 就返回右边,因为左边已经为真了,看右边的是真结果就是真,是假结果就是假,确定了左边的值,只有右边的值能决定结果 。
2.or 和 and一样找能决定结果的那一边的值
3.not就是结果取反
| 运算符 | 描述 | 示例 | 结果 |
|---|---|---|---|
| and | 逻辑与(两个条件都为 True 时返回 True) | True and False | False |
| or | 逻辑或(至少一个条件为 True 时返回 True) | True or False | True |
| not | 逻辑非(反转布尔值) | not True | False |
# 逻辑运算符示例
age = 25
has_license = True
使用 and 运算符
if age >= 18 and has_license:
print("可以驾驶") # 输出:可以驾驶
使用 or 运算符
score = 85
if score >= 90 or score < 60:
print("优秀或不及格")
else:
print("中等") # 输出:中等
使用 not 运算符
is_raining = False
if not is_raining:
print("天气晴朗,适合外出") # 输出:天气晴朗,适合外出
6. 其他运算符
Python 还提供了其他几种有用的运算符。
6.1 成员运算符
用于测试序列(如字符串、列表、元组)中是否包含某个成员。
| 运算符 | 描述 | 示例 | 结果 |
|---|---|---|---|
| in | 如果在序列中找到值返回 True | 'a' in 'apple' | True |
| not in | 如果在序列中没有找到值返回 True | 'b' not in 'apple' | True |
# 成员运算符示例
fruits = ['apple', 'banana', 'cherry']
print('apple' in fruits) # 输出:True
print('orange' in fruits) # 输出:False
print('grape' not in fruits) # 输出:True
字符串中的成员测试
text = "Hello World"
print('World' in text) # 输出:True
print('Python' not in text) # 输出:True
6.2 身份运算符
用于比较两个对象的存储单元(内存地址)是否相同,适用于引用类型的语言,比如数组,看两个数组是否指向同一个内存地址。
| 运算符 | 描述 | 示例 | 结果 |
|---|---|---|---|
| is | 如果两个变量引用同一个对象则返回 True | x is y | 取决于对象 |
| is not | 如果两个变量引用不同对象则返回 True | x is not y | 取决于对象 |
# 身份运算符示例
a = [1, 2, 3]
b = [1, 2, 3]
c = a
print(a is b) # 输出:False(虽然值相同,但不是同一个对象)
print(a is c) # 输出:True(c 引用了 a 的同一个对象)
print(a == b) # 输出:True(值相等)
小整数缓存(Python 对小整数有优化)
x = 256
y = 256
print(x is y) # 输出:True(小整数缓存)
x = 257
y = 257
print(x is y) # 输出:False(大整数不缓存)
6.3 位运算符
位运算符直接对整数在内存中的二进制位进行操作。
1.&运算符对二进制数进行运算,权重一样的各个位对齐,比如a = 0b0101, b = 0b101
b的各位和a的后三位依次对齐在b的101前面加个零,比较上下两个数各位相同都是1取1,其他情况都是0 ,看结果
2.| 和&对齐规则一样,各位上下比较有1就取1,全是0才是0
3.^ 各位对其,相同为0,不同为1
4.<< 这个符号左边数转化为二进制数,右边是几就往数的后面加几个零,比如0101二进制数就一直是四位,5 << 1就是01010
5.>>这符号左边转化为二进制数,右边是几就在数的前面加几个0,属的位数不变,比如0101二进制数就一直是四位,5 >> 1就是0010
6.位运算符1Byte = 8bit
| 运算符 | 描述 | 示例 | 结果 |
|---|---|---|---|
| & | 按位与 | 5 & 3 | 1 |
| | | 按位或 | 5 | 3 | 7 |
| ^ | 按位异或 | 5 ^ 3 | 6 |
| << | 左移 | 5 << 1 | 10 |
| >> | 右移 | 5 >> 1 | 2 |
# 位运算符示例
a = 5 # 二进制:0101
b = 3 # 二进制:0011
print(a & b) # 输出:1 (0101 & 0011 = 0001)
print(a | b) # 输出:7 (0101 | 0011 = 0111)
print(a ^ b) # 输出:6 (0101 ^ 0011 = 0110)
print(~a) # 输出:-6 (按位取反)
print(a << 1) # 输出:10 (0101 左移1位 = 1010)
print(a >> 1) # 输出:2 (0101 右移1位 = 0010)
7. 运算符优先级
当表达式中包含多个运算符时,Python 会按照优先级顺序进行计算。以下是从高到低的优先级顺序:
总的优先级排序是算数运算符 > 比较运算符 > 逻辑运算符 > 赋值运算符,其他不常用。
- () - 括号(最高优先级)
- ** - 指数
- ~ + - - 按位取反,一元加号和减号
- * / % // - 乘、除、取模、整除
- + - - 加、减
- >> << - 右移、左移
- & - 按位与
- ^ | - 按位异或、按位或
- <= < > >= - 比较运算符
- <> == != - 等于运算符
- = %= /= //= -= += *= **= - 赋值运算符
- is is not - 身份运算符
- in not in - 成员运算符
- not or and - 逻辑运算符(最低优先级)
# 运算符优先级示例
result = 10 + 5 * 2 ** 3 # 先计算 2**3=8,然后 5*8=40,最后 10+40=50
print(result) # 输出:50
使用括号改变优先级
result = (10 + 5) * 2 ** 3 # 先计算 10+5=15,然后 2**3=8,最后 15*8=120
print(result) # 输出:120
8. 总结
Python 提供了丰富的运算符类型,包括算术运算符、赋值运算符、比较运算符、逻辑运算符以及其他运算符(成员、身份、位运算符)。理解这些运算符的用法和优先级对于编写正确的 Python 程序至关重要。在实际编程中,合理使用括号可以明确运算顺序,避免因优先级问题导致的错误。
更多推荐
所有评论(0)