运算符

一、算术运算符

#标准运算发
print(1+2)  #加法运算
print(2-1)  #减法运算
print(2*3)  #乘法运算
print(1/2)  #除法运算

print(11/2)
print(11//2)#整除运算

#取余运算符
print(11%2) #取余运算7

#幂运算
print(2**4)

运算结果:

3
1
6
0.5
5.5
5
1
16

例外:

  • %:取余运算时一正一负需要遵守公式——余数=被除数-除数*商
  • 整数:一正一负向下取整

二、赋值运算

#赋值运算符:运算顺序从右到左

#链式赋值——由输出结果可以看到,以下三个变量都指向同一个内存块
a=b=c=20

print(a,id(a))
print(b,id(b))
print(c,id(c))

#支持系列解包赋值
#解包赋值左右俩边的个数需要相等

m,n=20,30
print(m,type(m))
print(n,type(n))

#解包赋值带来的好处——可以直接交换两个变量带来的值的变化
print('交换前')
a,b=30,40
print(a,type(a))
print(b,type(b))
print('交换后')
a,b=b,a
print(a,type(a))
print(b,type(b))


运算结果:

20 1767116860304
20 1767116860304
20 1767116860304
20 <class 'int'>
30 <class 'int'>
交换前
30 <class 'int'>
40 <class 'int'>
交换后
40 <class 'int'>
30 <class 'int'>

三、比较运算 

# = 称为赋值运算符
# == 称为比较运算符,由于一个变量由标识,类型和值组成。== 比较的是变量的值
# is 用于比较对象的标识

a=10
b=10
print('a与b的值是否相等',a==b)
print('a与b的标识是否相等',a is b)

list1=[11,22,33,44]
list2=[11,22,33,44]

print(id(list1))
print(id(list2))
print(list1==list2)    #比较的是值
print(list1 is list2)  #比较的是id

运算结果:
a与b的值是否相等 True
a与b的标识是否相等 True
2847174183872
2847174181696
True
False

四、布尔运算符

print('not——对bool类型操作数取反')
f1=True
print(f1)
print(not f1)

print('in------------not in')
s='ashfvhbjdchj'
print('w' in s)
print('a' in s)

print('w' not in s)
print('a' not in s)


运算结果:

not——对bool类型操作数取反
True
False
in------------not in
False
True
True
False

  

五、位运算符

#位运算符
print(4&8)
#按位与 & 同时为1结果为1

print(4|8)
#按位或 | 同时为0结果才为0


print(4<<1)
#向左移动一位,相当于乘以2
print(4>>1)
#向右移动一位,相当于除以2

运算结果:

0
12
8
2