day04
一、可变和不可变类型
1、可变类型:list,dict
在值改变的情况下,id号不变,也就是说内存地址不变,证明就是在改原来内存空间中的值,即原值可变
2、不可变类型:int,float,str
在值改变的情况下,id号也跟着变了,也就是说内存地址变了,证明不是在改原来内存空间中的值,而是申请了新的内存空间,产生了新的值,即原值不可变
注:字典的value可以是任意类型,但是字典的key必须是不可变类型
了解:不可哈希类型就是可变类型,可哈希类型就是不可变类型
二、赋值运算符补充
1、增量赋值
age=18 age += 1 print(age)
2、链式赋值
x=10 y=x z=y z = y = x = 10 print(x, y, z) print(id(x), id(y), id(z))
3、交叉赋值
m = 111 n = 222 temp=m m=n n=temp m, n = n, m print(m, n)
4、解压赋值
salaries = [1.1, 2.2, 3.3, 4.4, 5.5] mon0 = salaries[0] mon1 = salaries[1] mon2 = salaries[2] mon3 = salaries[3] mon4 = salaries[4] mon0, mon1, mon2, mon3, mon4 = salaries print(mon0) print(mon1) print(mon2) print(mon3) print(mon4)
注:变量名的个数必须与包含的值的个数相同,多一个不行,少一个不行
mon0, mon1, mon2, *_ = salaries print(mon0) print(mon1) print(mon2) print(_) *_, x, y, z = salaries print(x) print(y) print(z) x, *_, z = salaries print(x) print(z) dic={"k1":111,"k2":222} del dic['k1'] print(dic) dic["kkk"]=111 print(dic)
注:对于字典来说解压赋值取出来的是字典的key
dic = {"k1": 111, "k2": 222}
x, y = dic
print(x, y)
了解:
a,b,c,d,e="hello" print(a,type(a)) print(b) print(c) print(d) print(e)
三、身份运算
1、==判断的是值是否相等
x = ['a', 'b'] y = ['a', 'b'] print(x == y)
2、is判断的是id是否相等
print(id(x)) print(id(y)) print(x is y)
注:is判断的结果为True,即二者的id一样,即二者内存地址一样,即二者就是一个东西,即值一定相等。如果==判断的结果为True,即二者的值一样,那么二者的内存地址可能不一样。
x=None y=None # print(x == None) print(x is None) print(x is y) print((10 > 3) is True) print((10 > 3) == True) x=True y=True z=True print(id(x)) print(id(y)) print(id(z))
结论:如果要变量一个变量是否等于None、True、False,推荐使用is去判断
x = 10 y = 10 # print(x is y) print(x == y) # print(x == 10) # print(x is 10) # 不要这么用
四、流程控制之if判断
1、什么是if判断
判断 条件1 并且 条件2:
做什么事。。。
否则:
做什么事。。。
2、为何要有if判断
为了能控制计算机能够像人一样完成判断的过程
3、如何用if判断
①介绍
# print('start....')
# if 3 != 3 and 10 > 8:
# print("条件成立1")
# print("条件成立2")
# print("条件成立3")
# else:
# print("条件不成立1")
# print("条件不成立2")
# print("条件不成立3")
# print('end....')
if 条件1:
子代码块1
elif 条件2:
子代码块2
elif 条件3:
子代码块3
...
else:
子代码块
②必须要有的是if,只有一个if是可以的
浙公网安备 33010602011771号