Python自学第3天:运算符

算术运算符


用于基本数学运算

运算符描述
+加 - 两个对象相加
-减 - 得到负数或是一个数减去另一个数
*乘 - 两个数相乘或是返回一个被重复若干次的字符串
/除 - x 除以 y
%取模 - 返回除法的余数
**幂 - 返回x的y次幂
//取整除 - 往小的方向取整数
print(f"{a} + {b} = {a + b}")  # 加法 13
print(f"{a} - {b} = {a - b}")  # 减法 7
print(f"{a} * {b} = {a * b}")  # 乘法 30
print(f"{a} / {b} = {a / b}")  # 除法 3.333...
print(f"{a} % {b} = {a % b}")  # 取模 1
print(f"{a} ** {b} = {a ** b}") # 幂运算 1000
print(f"{a} // {b} = {a // b}") # 整除 3

注意: 除法和整除的区别。 咦,多了一道/就行。

比较运算符


用于比较值

运算符描述
==等于 - 比较对象是否相等
!=不等于 - 比较两个对象是否不相等
>大于 - 返回x是否大于y
<小于 - 返回x是否小于y。所有比较运算符返回1表示真,返回0表示假。这分别与特殊的变量True和False等价。注意,这些变量名的大写。
>=大于等于 - 返回x是否大于等于y。
<=小于等于 - 返回x是否小于等于y。
print(f"{a} == {b}: {a == b}")  # False
print(f"{a} != {b}: {a != b}")  # True
print(f"{a} > {b}: {a > b}")    # True
print(f"{a} < {b}: {a < b}")    # False
print(f"{a} >= {b}: {a >= b}")  # True
print(f"{a} <= {b}: {a <= b}")  # False

赋值运算符


用于变量赋值

算符描述
=简单的赋值运算符
+=加法赋值运算符
-=减法赋值运算符
*=乘法赋值运算符
/=除法赋值运算符
%=取模赋值运算符
**=幂赋值运算符
//=取整除赋值运算符
:=海象运算符,在表达式中同时进行赋值和返回赋值的值。Python3.8 版本新增
x = 5  # 基本赋值
x += 3  # 等同于 x = x + 3  
x -= 3  # 等同于 x = x - 3
x *= 1  # 等同于 x = x * 1
x /= 1  # 等同于 x = x / 1
x %= 2  # 等合于 x = x % 2

y = 10
y **= 2  # y = y ** 2
print(f"y **= 2 → {y}")  # 100

# 海象运算符(Python 3.8+)
if (n := len("hello")) > 3:
    print(f"字符串长度{n} > 3")

#对比正常写法
n = len("hello")
if n > 3:
    print(f"字符串长度{n}>3")

逻辑运算符


用于布尔逻辑

运算符逻辑表达式描述
andx and y布尔"与" - 如果 x 为 False,x and y 返回 x 的值,否则返回 y 的计算值。
orx or y布尔"或" - 如果 x 是 True,它返回 x 的值,否则它返回 y 的计算值。
notnot x布尔"非" - 如果 x 为 True,返回 False 。如果 x 为 False,它返回 True。
print(f"True and False: {True and False}")  # False
print(f"True or False: {True or False}")    # True
print(f"not True: {not True}")              # False

# 短路特性
def test():
    print("函数被调用")
    return True

print(False and test())  # test()不会被调用

位运算符


用于二进制位操作

运算符描述
&按位与运算符:参与运算的两个值,如果两个相应位都为1,则该位的结果为1,否则为0
|按位或运算符:只要对应的二个二进位有一个为1时,结果位就为1。
^按位异或运算符:当两对应的二进位相异时,结果为1
~按位取反运算符:对数据的每个二进制位取反,即把1变为0,把0变为1。~x 类似于 -x-1
<<左移动运算符:运算数的各二进位全部左移若干位,由"<<"右边的数指定移动的位数,高位丢弃,低位补0。
>>右移动运算符:把">>"左边的运算数的各二进位全部右移若干位,">>"右边的数指定移动的位数
m, n = 5, 3  # 二进制: 101 & 011
print(f"{m} & {n} = {m & n}")  # 按位与 1 (001)
print(f"{m} | {n} = {m | n}")  # 按位或 7 (111)
print(f"{m} ^ {n} = {m ^ n}")  # 按位异或 6 (110)
print(f"~{m} = {~m}")          # 按位取反 -6
print(f"{m} << 1 = {m << 1}")  # 左移 10 (1010)
print(f"{m} >> 1 = {m >> 1}")  # 右移 2 (010)

成员运算符


用于检查序列成员。

运算符描述
in如果在指定的序列中找到值返回 True,否则返回 False。
not in如果在指定的序列中没有找到值返回 True,否则返回 False。
lst = [1, 2, 3, 4, 5]
print(f"3 in {lst}: {3 in lst}")      # True
print(f"6 not in {lst}: {6 not in lst}") # True

身份运算符


用于检查对象身份

运算符描述
isis 是判断两个标识符是不是引用自一个对象
is notis not 是判断两个标识符是不是引用自不同对象
x = [1, 2, 3]
y = x
z = [1, 2, 3]

print(f"x is y: {x is y}")      # True (同一对象)
print(f"x is z: {x is z}")      # False (不同对象)
print(f"x is not z: {x is not z}")   # True(不同对象)
print(f"x == z: {x == z}")      # True (值相同)

运算符优先级


解释了运算的执行顺序

1**

幂运算

2~ + -

按位取反, 正负号

3* / % //

乘除

4+ -

加减

5

<< >>

位移
6

&

按位与

7

^ |

按位异或/或

8

< <= > >= == !=

比较

9

= += -= *= /= %= **= //=

 赋值

10

is is not

身份

11

in not in

成员

12

not and or

逻辑

1. **                         

result = 5 + 3 * 2 ** 2  # 等同于 5 + (3 * (2 ** 2)) = 17
print(f"\n5 + 3 * 2 ** 2 = {result}")

 没有了。今天 就到这里吧。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

ghost143

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值