python笔记day07

链接: https://www.bilibili.com/video/BV1QE41147hU/?spm_id_from=333.1391.0.0&p=108&vd_source=63a0ef3000f5739a62568e915c165084

深浅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次,退出")```
posted @ 2025-03-02 20:31  anozzz  阅读(30)  评论(0)    收藏  举报