python笔记day07
深浅copy
主要区别在于可变类型是否生成一个新的地址,否则不可变类型会同步修改
a=b.copy()
import copy
a=copy.deepcopy(b)
list1=[
"egen",'lxx',[1,2]
]
l=list1#内存地址给l 指向相同的堆区 二者分割不开,一个改变另一个跟着改变
#拷贝列表-使两个列表完全独立开-针对改操作而非读操作
#浅拷贝
list2=list1.copy()
print(id(list1))
print(id(list2))#列表id不同
print(id(list1[0]))
print(id(list2[0]))#列表索引对应的地址相同
list1[0]='EGEN'#不可变类型-新地址
list1[1]='LXX'
list1[2][0]=222#可变类型-list1,list2指向l[1,2]索引指向[222,333]
list1[2][1]=333
print(list1)
print(list2)#可变类型被修改了
#深拷贝
import copy
list3=copy.deepcopy(list1)
print(id(list1))#列表id不同
print(id(list3))
print(id(list1[0]),id(list1[1]),id(list1[2]))#可变类型id相同,不可变类型id不同
print(id(list3[0]),id(list3[1]),id(list3[2]))
list1[0]='aaa'
list1[1]='bbb'
list1[2][1]=123
list1[2][0]=000
print(list1)
print(list3)#list3完全不变
while循环
break 退出当前循环
continue 退出本次循环
while+else
用while死循环控制输入
代码1
代码2
'''
count=0
while count<5:
print(count)
count+=1
print("嘻嘻")
#2.死循环与效率问题
while True:#风扇框框转
1+1
while True:
name=input('your name>>>>')
print(name)
#纯计算无io的死循环会导致效率问题
#3。循环的应用
inp_name=input("您的账号:")
inp_pwd=input("您的密码:")
if name == usernameusername and inp_pwd==password:
print('登录成功')
else:
print("账号或密码错误")#需要重复运行
#退出循环-1条件改成假 下次判断条件时才会生效
username='egen'
password='1234'
tag=True
while tag:
inp_name=input("您的账号:")
inp_pwd=input("您的密码:")
if inp_name == username and inp_pwd==password:
print('登录成功')
tag=False
else:
print("账号或密码错误")#需要重复运行
print('====end====')
#2.break 立刻结束本层循环
while True:
inp_name=input("您的账号:")
inp_pwd=input("您的密码:")
if inp_name == username and inp_pwd==password:
print('登录成功')
break
else:
print("账号或密码错误")#需要重复运行
print('====end====')
#while循环嵌套
while True:
while True:
while True:
break
break
break
while tag:
while tag:
tag=False
while True:
inp_name=input("您的账号:")
inp_pwd=input("您的密码:")
if inp_name == username and inp_pwd==password:
print('登录成功')
while True:
cmd=input("输入命令")
print('命令{x}正在运行'.format(x=cmd))
if cmd=='q':break
break
else:
print("账号或密码错误")#需要重复运行
print('====end====')
#contine 跳出本次循环
count=0
while count<6:
if count==4:
count+=1#必须加在continue之前
continue
print(count)
count+=1
# while+else
count=0
while count<6:
if count==4:
count+=1#必须加在continue之前
continue
print(count)
count+=1
else:
print('else代码会在while没有被break打断正常结束后运行')
#输错3此退出
count=0
while count<3:
inp_name=input("您的账号:")
inp_pwd=input("您的密码:")
if inp_name == username and inp_pwd==password:
print('登录成功')
while True:
cmd=input("输入命令")
print('命令{x}正在运行'.format(x=cmd))
if cmd=='q':break
break
else:
print("账号或密码错误")#需要重复运行
count+=1
print('====end====')
else:
print("账号密码错误3次,退出")```

浙公网安备 33010602011771号