1. Python 运算符概述

运算符是用于执行程序代码运算的特殊符号。Python 语言支持多种类型的运算符,用于处理各种数据运算和逻辑判断。掌握这些运算符是编写 Python 程序的基础。

2. 算术运算符

算术运算符用于执行基本的数学运算,如加、减、乘、除等,除法除出来是小数,整除除不尽取整数部分。

1.特别注意%运算符常用,数m对n求余有n-1种情况,从0到n,比如任何数对2取余只有两种情况0和1,这个也特别用于判断数的奇偶性。

运算符描述示例结果
+加法10 + 515
-减法10 - 55
*乘法10 * 550
/除法10 / 52.0
%取模(余数)10 % 31
**幂运算2 ** 38
//整除(向下取整)10 // 33
# 算术运算符示例
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 = 5x = 5
+=加法赋值x = x + 3x += 3
-=减法赋值x = x - 3x -= 3
*=乘法赋值x = x * 3x *= 3
/=除法赋值x = x / 3x /= 3
%=取模赋值x = x % 3x %= 3
**=幂赋值x = x ** 3x **= 3
//=整除赋值x = x // 3x //= 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 == 5True
!=不等于5 != 3True
>大于5 > 3True
<小于5 < 3False
>=大于等于5 >= 5True
<=小于等于5 <= 3False
# 比较运算符示例
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 FalseFalse
or逻辑或(至少一个条件为 True 时返回 True)True or FalseTrue
not逻辑非(反转布尔值)not TrueFalse
# 逻辑运算符示例
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如果两个变量引用同一个对象则返回 Truex is y取决于对象
is not如果两个变量引用不同对象则返回 Truex 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 & 31
|按位或5 | 37
^按位异或5 ^ 36
<<左移5 << 110
>>右移5 >> 12
# 位运算符示例
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 会按照优先级顺序进行计算。以下是从高到低的优先级顺序:

总的优先级排序是算数运算符 > 比较运算符 > 逻辑运算符 > 赋值运算符,其他不常用。

  1. () - 括号(最高优先级)
  2. ** - 指数
  3. ~ + - - 按位取反,一元加号和减号
  4. * / % // - 乘、除、取模、整除
  5. + - - 加、减
  6. >> << - 右移、左移
  7. & - 按位与
  8. ^ | - 按位异或、按位或
  9. <= < > >= - 比较运算符
  10. <> == != - 等于运算符
  11. = %= /= //= -= += *= **= - 赋值运算符
  12. is is not - 身份运算符
  13. in not in - 成员运算符
  14. 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 程序至关重要。在实际编程中,合理使用括号可以明确运算顺序,避免因优先级问题导致的错误。

更多推荐