基本运算符
(一)算数运算符
(1)加法运算符+
#1.加法
x=20
y=10
print(x+y)#30
(2)减法运算符-
#2.减法
x=20
y=10
print(x-y)#10
(3)乘法运算符*
#3.乘法
x=20
y=10
print(x*y)#200
(4)除法运算符/
#4.除法
x=20
y=10
print(x/y)#2.0
(5)取整数运算符//
#5.取整数//
x=20
y=6
print(x//y)#3
(6)求余数运算符%
#6.求余数%
x=20
y=6
print(x%y)#2
(7)幂运算符**
#7.幂运算
x=20
y=6
print(x**2)#400
print(y**3)#216
(二)比较运算符
(1)相等运算符 ==
x=10
y=5
print(x==y)#False
(2)不等运算符 !=
x=10
y=5
print(x!=y)#True
(3)大于运算符 >
x=10
y=5
print(x>y)#True
(4)小于运算符 <
x=10
y=5
print(x<y)#False
(5)大于等于运算符 >=
x=10
y=5
print(x>=y)#True
(6)小于等于运算符 <=
x=10
y=5
print(x<=y)#False
(三)赋值运算符
- Python支持增量赋值、链式赋值、交叉赋值、解压赋值
(1)增值赋值
- 增量赋值运算符用于将变量与右侧的表达式相结合,并将结果赋值给变量。这样可以简化表达式,提高代码的可读性。
x=10
y=5
x+=y#相当于是x=x+y的简写
print(x)#15
(2)链式赋值
- 链式赋值允许在单一语句中给多个变量赋值。这样可以减少代码行数,提高代码的紧凑性。
a=b=c=20#把20赋值给了a,b,c
print(a,b,c)#20 20 20
(3)交叉赋值
- 交叉赋值允许在不使用临时变量的情况下,交换两个变量的值。
a=10
b=20
a,b=b,a #交换了a,b的值
print(a,b)#20 10
(4)解压赋值
- 解压赋值允许将一个可迭代对象(如列表、元组等)的值解压到多个变量中,以便进一步使用。
res=(10,20)
a,b=(10,20)
print(a,b)#10 20
(四)逻辑运算符 not and or (非、与、或)
(1)与运算符and
- 两个条件都是True时,返回True。只要有一个False就会返回False
x = 10
y = 20
res = (x > 0) and (y > 0)#True
print(res)
(2)或运算符or
- 两个条件只要有一个为True,则返回的是True
x = 10
y = 20
res1 = (x > 0) or (y > 0)#True
print(res1)
(3)非运算符not
- 条件是错误的时候,返回的是True,反之取False
x = 10
y = 20
res2 = not (x < 0)#True
print(res2)
(4)not and or优先级
- 在逻辑运算中,
not
的优先级最高,其次是and
,最后是or
。 - 当表达式中同时包含这三种运算符时,
not
会首先被计算,然后是and
,最后是or
。
print(3 > 4 and 4 > 3 or 1 == 3 and 'x' == 'x' or 3 > 3)
# False True False True False
# False False False
# False
########################False
(五)成员运算符
(1)in运算符
- 如果在指定的序列中找到值返回 True,否则返回 False。
name=['syh','susu','su']
print('syh' in name)#True
print('susu' in name)#True
(2)not in运算符
- 如果在指定的序列中没有找到值返回 True,否则返回 False。
name=['syh','susu','su']
print('haha' not in name)#True
print('syh' not in name)#False
(六)身份运算符
- 身份运算符用于比较对象的内存地址,即判断两个对象是否指向同一块内存地址。
(1)is运算符
- 如果两个变量引用同一个对象,则返回 True,否则返回 False。
x=[1,2,3,4]
y=x
z=[1,2,3,4]
print(x is y)#True
print(x is z )#False
(2)is not运算符
- 如果两个变量引用的不是同一个对象,则返回 True,否则返回 False。
x=[1,2,3,4]
y=x
z=[1,2,3,4]
print(x is not y)#False
print(x is not z )#True
- 身份运算符主要是检查对象的标识,就是内存地址是否一致。
补充:==和is
==
双等号比较的是value是否相等is
用于比较两个对象的标识id(内存地址)是否相同- 在实际应用中,特别是对于可变对象,
==
通常更适合用于比较值,而is
更适合用于比较对象的身份。 - id相同,内存地址必定相同,意味着type和value必定相同
- value相同type肯定相同,但id可能不同