python运算符

1. 算术运算符

算术运算符用于执行基本数学运算,包括加、减、乘、除和取模等。

在 Python 中,算术运算符包括:

运算符描述实例
+1 + 1 输出结果为 2
-1 - 1 输出结果为 0
*2 * 2 输出结果为 4
/10 / 2 输出结果为 5
//整除9 // 4 输出结果为 2
%取余(取模)9 % 4 输出结果为 1
**幂指数2 ** 4 输出结果为 16,即2的4次方,2 * 2 * 2 * 2
()小括号小括号用来提高运算优先级,即 (1 + 2) * 3 输出结果为 9

例:

num1 = 20 
num2 = 6
num3 = 5
​
# 四则运算 + - * /
print(f'加:{num1 + num2}')
print(f'减:{num1 - num2}')
print(f'乘:{num1 * num2}')
print(f'除:{num1 / num2}')

# 1 整除
print(f'整除:{num1 // num2}')
# 2 求余数
print(f'余数:{num1 % num2}')
# 3 幂指数
print(f'幂指数:{num2 ** 3}')
# 4 圆括号
print(f'优先级:{(num1 + num2) * num3}')

2. 赋值运算符

2.1 = 赋值运算符

运算符描述实例
=赋值将=右侧的结果赋值给等号左侧的变量

把某个值赋值给某个变量

num = 10

多个变量同时进行赋值操作

n = 5
f = 10.88
s = 'hello world'

简写为:

n, f, s = 5, 10.88, 'hello world'
print(n)
print(f)
print(s)

多个变量赋予相同的值

a = 10
b = 10

简写为:

a = b = 10

2.2 复合赋值运算符

复合赋值运算符的计算顺序 = 先执行算术运算符,执行完毕后,把结果再赋值给左边的变量。

例:

i = 1
# 相加并赋值,先加1,然后把结果赋值给左边的变量
i += 1
print(f'更新后,i的值为:{i}')
​
num1 = 9
# 取模并赋值,先求余数,然后在把结果赋值给左边的变量
num1 %= 2
print(f'更新后,num1的值为:{num1}')
​
num2 = 2
# 幂指数并赋值,先求幂指数,然后把结果赋值给左边的变量
num2 **= 3
print(f'更新后,num2的值为:{num2}')

3. 比较运算符

比较运算符用于比较两个值的大小,并返回一个布尔值。

在 Python 中,比较运算符包括:

例:

a = 5
b = 3
print(a == b)  # 输出:False
print(a != b)  # 输出:True
print(a > b)   # 输出:True
print(a < b)   # 输出:False
print(a >= b)  # 输出:True
print(a <= b)  # 输出:False

4. 逻辑运算符

Python中常用的逻辑运算符有三种:and、or、not。

例:

a = 1
b = 2
c = 3
​
print((a > b) and (b > c))  # False
print((a > b) or (b > c))   # False
print((a < b) or (b > c))   # True
print(not (a > b))          # True

说明:

  • and 运算符只有在两个操作数都为 True 时结果为 True,否则为 False;

  • or 运算符只要有一个操作数为 True 就返回 True;

  • not 运算符则是对操作数取反,如果操作数为 True 则返回 False,否则返回 True。

5. 位运算符

Python 位运算符是对二进制数进行操作的运算符,位运算符是按位进行计算的,即按照二进制位进行操作。

Python 支持的位运算符有:

  • 按位与(&)

  • 按位或(|)

  • 按位异或(^)

  • 取反(~)

  • 左移(<<)

  • 右移(>>)

其中:

  • 按位与(&):对两个数的二进制位进行与操作,只有当两个对应位都为 1 时,结果为 1,否则为 0。

  • 按位或(|):对两个数的二进制位进行或操作,只要两个对应位中有一个为 1,结果为 1,否则为 0。

  • 按位异或(^):对两个数的二进制位进行异或操作,当两个对应位不同时,结果为 1,否则为 0。

  • 取反(~):对一个数的二进制位进行取反操作,将 0 变成 1,将 1 变成 0。

  • 左移(<<):将一个数的二进制位左移动指定的位数,左移的结果等同于将这个数乘以 $2$ 的左移次幂。

  • 右移(>>):将一个数的二进制位右移动指定的位数,右移的结果等同于将这个数除以 $2$ 的右移次幂。

例如:

a = 0b1010  # 十进制数为 10
b = 0b1100  # 十进制数为 12
​
# 按位与
print(a & b)  # 输出为 0b1000,即十进制数 8
​
# 按位或
print(a | b)  # 输出为 0b1110,即十进制数 14
​
# 按位异或
print(a ^ b)  # 输出为 0b0110,即十进制数 6
​
# 取反
print(~a)     # 输出为 -11
​
# 左移
print(a << 1)  # 输出为 0b10100,即十进制数 20
​
# 右移
print(b >> 1)  # 输出为 0b110,即十进制数 6

在实际开发中,位运算符常常被用来进行二进制数的操作,例如,可以使用位运算符进行位掩码操作,也可以用来判断一个数的奇偶性等。

6. 运算符的优先级

  • 不要把一个表达式写得过于复杂,如果一个表达式过于复杂,尝试把它拆分来书写。

  • 不要过于依赖运算符的优先级来控制表达式的执行顺序,这样可读性太差,应尽量使用()来控制表达式的执行顺序。

7. 短路运算

在Python代码中,逻辑运算符的运算,要遵循短路运算原则。

表达式1 and 表达式2

说明:

  • 如果表达式1为真,则最终的运算结果由右边的表达式2来决定。

  • 如果表达式1条件为假,则最终结果为假,其右边的表达式2不需要在进行运算。

表达式1 or 表达式2
  • 如果表达式1为真,则最终的运算结果由表达式1来决定,为真,表达式2不需要在进行运算。

  • 如果表达式1为假,则最终结果由表达式2来决定,如果表达式2为真,则最终结果为真;如果表达式2为假,则最终结果为假。

在逻辑运算中,不一定逻辑运算符的两边都是纯表达式,也可以是数值类型的数据或字符串类型的数据。

print(3 and 4 and 5)  # 5
print(5 and 6 or 7)   # 6
4 > 3 and print('hello world')  # 输出hello world

说明:

  • Python把0、空字符串和None看成 False,其他数值和非空字符串都看成 True。

  • 在计算 a and b 时,如果 a 是 False,则根据与运算法则,整个结果必定为 False,因此返回 a;如果 a 是 True,则整个计算结果必定取决与 b,因此返回 b。

print(3 and 4)  # 4
print(0 and 1)  # 0
  • 在计算 a or b 时,如果 a 是 True,则根据或运算法则,整个计算结果必定为 True,因此返回 a;如果 a 是 False,则整个计算结果必定取决于 b,因此返回 b。 所以Python解释器在做布尔运算时,只要能提前确定计算结果,它就不会往后算了,直接返回结果。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值