zoukankan      html  css  js  c++  java
  • python入门007

    一、深浅copy

    浅拷贝:是把原列表第一层的内存地址完全拷贝一份给新列表。即只能保证对原列表中第一层地址(不可变类型)的改操作不受影响,涉及到原列表中第二层地址(可变类型)的改操作时,原列表变,新列表也跟着变-

    深拷贝:将两个列表的改操作完全的独立开。即不管原列表对第几层地址的改操作,新列表都不受影响,保持最开始复制的列表元素不变。

    二、循环之while循环

    什么是循环结构:

    循环结构就是重复执行某段代码块

    为什么要用循环结构:

    让计算机能够具备人重复执行某件事情的能力

    如何使用循环结构

    1.while循环语法

    while 条件:
         代码1
         代码2
         代码3
    '''
    while的运行步骤:
    步骤1:如果条件为真,则自上而下的执行代码1、2、3...
    步骤2:执行完最后一条代码时再次判断条件,如果条件为Treu则重复步骤1,如果条件为False,则结束循环
    
    '''
    

    2.基本使用

    count=0
    while count < 5:
        print(count)
        count+=1 
    
    print('顶级代码----->')
    

    3.死循环与效率问题

    count=0
    while count < 5: # 5 < 5
        print(count) # 0,1,2,3,4
    
    while True:
        name=input('your name >>>> ')
        print(name)
    
    纯计算无io的死讯会导致致命的效率问题
    while True:
        1+1
    
    while 1:
        print('xxxx')
    

    4.循环的应用

    username = 'egon'
    password = '123'
    
    两个问题:
    1、重复代码
    2、输对了应该不用再重复
    while True:
        inp_name=input('请输入您的账号:')
        inp_pwd=input('请输入您的密码:')
    
        if inp_name  == username and inp_pwd == password:
            print('登录成功')
        else:
            print('账号名或密码错误')
    

    4、退出循环的两种方式

    方式一:将条件改为False,等到下次循环判断条件时才会生效
    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====')
    
    方式二:break,只要运行到break就会立刻终止本层循环
    while True:
        inp_name=input('请输入您的账号:')
        inp_pwd=input('请输入您的密码:')
    
        if inp_name  == username and inp_pwd == password:
            print('登录成功')
            break # 立刻终止本层循环
        else:
            print('账号名或密码错误')
    
        # print('====end====')
    

    7、while循环嵌套与结束

    tag=True
    while tag:
        while tag:
            while tag:
                tag=False
    

    每一层都必须配一个break

    while True:
        while True:
            while True:
                break
            break
        break
    

    break的方式:

    while True:
        inp_name=input('请输入您的账号:')
        inp_pwd=input('请输入您的密码:')
    
        if inp_name  == username and inp_pwd == password:
            print('登录成功')
            while True:
                cmd=input("输入命令>: ")
                if cmd == 'q':
                    break
                print('命令{x}正在运行'.format(x=cmd))
            break # 立刻终止本层循环
        else:
            print('账号名或密码错误')
    
        print('====end====')
    

    改变条件的方式:

    tag=True
    while tag:
        inp_name=input('请输入您的账号:')
        inp_pwd=input('请输入您的密码:')
    
        if inp_name  == username and inp_pwd == password:
            print('登录成功')
            while tag:
                cmd=input("输入命令>: ")
                if cmd == 'q':
                    tag=False
                else:
                    print('命令{x}正在运行'.format(x=cmd))
        else:
            print('账号名或密码错误')
    

    8、while +continue:结束本次循环,直接进入下一次
    强调:在continue之后添加同级代码毫无意义,因为永远无法运行

    count=0
    while count < 6:
        if count == 4:
            count+=1
            continue
            # count+=1 # 错误
        print(count)
        count+=1
    
    作者:Joab
    本文版权归作者和博客园所有,欢迎转载,转载请标明出处。
    如果您觉得本篇博文对您有所收获,请点击右下角的 [推荐],谢谢!
  • 相关阅读:
    iis管理器的程序应用池中没有Asp.NET v4.0
    Rowlock、UPDLOCK
    转SQLSERVER 会不会自动加锁
    安装IE11必备更新
    阻止表单提交刷新页面的问题
    C#分屏控件用法实例
    Flex内存泄露解决方法和内存释放优化原则
    DataSet.Clear() Method()
    短文件名漏洞修复
    vs2017创建dotnetcore web项目,并部署到centos7上
  • 原文地址:https://www.cnblogs.com/linqiaobao/p/12451701.html
Copyright © 2011-2022 走看看