zoukankan      html  css  js  c++  java
  • 深浅拷贝问题

    一、深浅拷贝

      1.浅拷贝

        浅copy:是把原列表第一层的内存地址不加区分完全copy一份给新列表

        

        1.对于不可变类型的赋值,都是产生了新值,让原列表的索引指向新的内存地址,不会影响新列表
        2.但对于可变类型,我们可以改变可变类型中包含的值,但内存地址不变即原列表的索引指向仍然指向原来的内存地址,于是新列表也跟着一起受影响!

      2.深拷贝

          深拷贝:要想copy得到的新列表与原列表的改操作完全独立开必须有一种可以区分开可变类型与不可变类型的copy机制,这就是深copy

        

    二、while循环

      1.循环的语法与基本使用  

    print(1)
    while 条件:
         代码1
         代码2
         代码3
    print(3)

      2.死循环与效率问题

    while True:
    name=input('your name >>>> ')print(name)
     纯计算无io的死讯会导致致命的效率问题
     while True:
         1+1

      3.退出循环的两种方式

        1.条件为False

    tag=True
    while tag:
        inp_name=input('请输入您的账号:')
        inp_pwd=input('请输入您的密码:')
    
        if inp_name  == username and inp_pwd == password:
            print('登录成功')
            tag = False # 之后的代码还会运行,下次循环判断条件时才生效
        else:
            print('账号名或密码错误')

        2.break,只要运行到break就会立刻终止本层循环

    while True:
        inp_name=input('请输入您的账号:')
        inp_pwd=input('请输入您的密码:')
        if inp_name  == username and inp_pwd == password:
            print('登录成功')
            break # 立刻终止本层循环
       else:
           print('账号名或密码错误')

      4.while循环的嵌套与结束

    tag=True
    while tag:
        while tag:
            while tag:
                tag=False
    
    
    # 每一层都必须配一个break
    while True:
        while True:
            while True:
                break
            break
        break

      5.while +continue:结束本次循环,直接进入下一次

          强调:在continue之后添加同级代码毫无意义,因为永远无法运行
    count=0
    while count < 6:
        if count == 4:
            count+=1
            continue
           # count+=1 # 错误
        print(count)
        count+=1

      6.while +else:针对break

    count=0
    while count < 6:
        if count == 4:
            count+=1
            continue
        print(count)
        count+=1
    else:
        print('else包含的代码会在while循环结束后,并且while循环是在没有被break打断的情况下正常结束的,才不会运行')
    
    count=0
    while count < 6:
        if count == 4:
            break
        print(count)
        count+=1
    else:
        print('======>')
  • 相关阅读:
    1834. 单线程 CPU sort+优先队列 过了,学习vector<vector<int>>排序
    552. 学生出勤记录 II 力扣(困难) 记忆化搜索/dp 不会做,学习记忆化搜索转dp的学习
    526. 优美的排列 力扣(中等) dfs暴搜/ 状压dp是没想到的
    576. 出界的路径数 力扣(中等) 路径dp/记忆化搜索 都不会做
    1583. 统计不开心的朋友 力扣(中等) 模拟,思考一下
    233. 数字 1 的个数 力扣(困难) 数位dp/数学 不会做
    516. 最长回文子序列 力扣(中等) 区间dp,不会做
    446. 等差数列划分 II
    7.14 数据结构板子
    7.13 树上问题
  • 原文地址:https://www.cnblogs.com/qjk95/p/12449919.html
Copyright © 2011-2022 走看看