基本运算符

发布时间 2023-11-28 20:16:13作者: 苏苏!!

基本运算符

(一)算数运算符

(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可能不同