python 学习第四天

2023-01-31 00:01:44 python 学习 第四天

目录

  • 基本运算符
    • 算术运算符
    • 比较运算符
    • 赋值运算符
    • 逻辑运算符
    • 身份运算符
    • 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

相关文章