Day02
1.可变不可变类型
可变类型
(1)值改变,id不变,证明改变的是原值,证明原值是可以改变的
list、dict是可变类型
不可变类型
值改变,ID也变,证明是产生了新的值,压根没有改变原值,证明原值是不可以改变的
int、float、str、bool 是不可变类型
2.逻辑运算符(偷懒原则、短路运算)
优先级not>and>or
2.1成员运算符
in/not in 判断一个小的变量是否在大变量中(字典是判断key值)
2.2 身份运算(is)
3. if判断
#语法1
if 条件:
command#自上而下依次运行
#语法2
if 条件:
command1
else:
command2
#语法3
if 条件:
command1
elif 条件:
command2
....
else:
commandn
4.深浅拷贝
4.1深拷贝
import copy
l=[111,222,33,444,[4445555,6666]]
old_l =copy.copy(l)
new_l=copy.deepcopy(l)
print(id(l))
print(id(old_l),id(new_l))
l[4].append(5555)
print(l,id(l))
print(old_l,id(old_l))
print(new_l,id(new_l))
#结果
#1635013018816
#1635013020928 1635013018752
#[111, 222, 33, 444, [4445555, 6666, 5555]] 1635013018816
#[111, 222, 33, 444, [4445555, 6666, 5555]] 1635013020928
#[111, 222, 33, 444, [4445555, 6666]] 1635013018752
4.2 浅拷贝
源列表不加区分把第一层的内存地址完全copy给新列表
list1=[111,222,1333]
list2=list1.copy()