目录
-
基本运算符
- 算术运算符
- 比较运算符
- 赋值运算符
- 逻辑运算符
- 身份运算符
- python运算符优先级
- 链式赋值
- 交叉赋值
- 解压缩
算术运算符
从小学开始我们就使用算数运算符,常用的有+ - * / % ** //
print(1+1) # 2
print(7-2) # 5
print(3*8) # 24
print(9/4) # 2.25 得到一个浮点型
print(11%3) # 2
print(7**2) # 49
print(19//6) # 3
下面给一张图给大家作参考
比较运算符
比较运算符就是做比较的,它的运算值返回类型为布尔类型
==,!=,<>,>,<,>=,<=
pwd='1234'
print(pwd!='1234')
print(pwd=='1234')
#
False
True
下面直接贴图啦!
赋值运算符
最常见的就是 =
age=19
age=age+1 # 相当于age+=1
print(age)
age=19
age+=1
print(age)
20
20
下面直接放图片啦
逻辑运算符
and 条件一起满足
or 条件满足其一
not 条件进行否定
print(3>1 and 5<4)
print(3>1 or 5<4)
print(not 'gelinli 很丑')
False
True
False
# 从左到右的方式找到逻辑运算符,找到逻辑运算符的左边,左边成立,再去找逻辑运算符的右边
print(3>7 and 6<9 or 10!=1)
身份运算符
身份运算符用于比较两个对象的存储单元,其实在内存空间地址的比较,是否相同
下面给个图理解一下
is和==的区别:is用于判断两个变量引用对象是否为同一个(是否在同一块内存空间中),==用于判断引用变量的值是否相等。
X=258
Y=X
Z=258
print(f'X is Y :{X is Y}')
print(f'X == Y :{X is Y}')
print(f'X == Z :{X is Y}')
X is Y :True
X == Y :True
X == Z :True
python运算符优先级
python运算符的优先级相当于数学中的先算乘除再算加减,想要优先算哪一个也可以用括号括起来。
下面给一张图
链式赋值
a=10
b=10
c=10
d=10
print(f'a:{a},b:{b},c:{c},d:{d}')
a:10,b:10,c:10,d:10
a=b=c=d=10
print(f'a:{a},b:{b},c:{c},d:{d}')
a:10,b:10,c:10,d:10
交叉赋值
x=198
y=78
temp=x
x=y
y=temp
print(f'x:{x},y:{y}')
x:78,y:198
x=198
y=78
x,y=y,x
print(f'x:{x},y:{y}')
x:78,y:198
解压缩
如果我们给出一个列表,我们需要一次性取出多个值,我们是不是可以用下面的方法实现呢?
hobby_list=['read','run','basketball']
x=hobby_list[0]
y=hobby_list[1]
z=hobby_list[2]
print(f'x: {x},y: {y},z: {z}')
x: read,y: run,z: basketball
变量值的解压缩可以这样理解,超市打包是把多个商品放在一起,解压缩其实就是解包把多个产品一次性拿出来
hobby_list=['read','run','basketball']
x,y,z=hobby_list
print(f'x: {x},y: {y},z: {z}')
x: read,y: run,z: basketball
有时候我们解压的值可能是我们不想要的,那么可以使用下滑线,万能的下划线
hobby_list=['read','run','basketball','work']
x,y,z,a=hobby_list
print(f'x: {x},y: {y},z: {z}')
现在我需要前面三个,后面一个我不想要
hobby_list=['read','run','basketball','work']
x,y,z,_=hobby_list
print(f'x: {x},y: {y},z: {z}')
现在我只想要x和z
hobby_list=['read','run','basketball','work']
x,_,z,_=hobby_list #_相当于告诉计算机不要了,变量名一般不能以_开头和结尾,也有以_开头的变量,这个后面会讲到
print(f'x: {x},y: {_},z: {z}') # 这里其实_是变量,最后输出的值是最后被赋的值work,开始是run
x: read,y: work,z: basketball
还有更省略的操作
hobby_list=['read','run','basketball','work','writting','swimming']
x,y,_,_,_,Z=hobby_list
x,y,*_,z=hobby_list
print(f'x: {x},y: {y},z: {z}')
print(*_)
x: read,y: run,z: swimming
basketball work writting
其实在下划线 _ 以及*_ 的使用,主要还是想完的把列表或者字典表达出来,而需要的用方便的变量表示,方便取出,也可以取出一大块区间的数据,按照相应的位置。
写程序不是用来装逼的,关键是创造价值。python追求的是简洁性,代码不要写的太长了。因此字典也是可以的,但是字典的解压是key。
info={'name':'gelinli','age':18}
x,y=info
print(x,y)
name age