zoukankan      html  css  js  c++  java
  • Python进阶小结

    一、异常TODO

    万能捕捉异常公式

    try:
        # 逻辑代码
        1/0
    except Exception as e:
        print(e)
    
    division by zero
    

    二、深浅拷贝

    2.1 拷贝

    拷贝/浅拷贝/深拷贝都是针对可变类型数据而言的

    l1 = ['a','b','c',['d','e','f']]
    l2 = l1
    
    l1.append('g')
    
    print(l1)  # ['a','b','c',['d','e','f'],'g']
    print(l2)  # ['a','b','c',['d','e','f'],'g']
    

    如果l2是l1的拷贝对象,则l1内部的任何数据类型的元素变化,则l2内部的元素也会跟着改变,因为可变类型值变id不变

    2.2 浅拷贝

    import copy
    
    
    l1 = ['a','b','c',['d','e','f']]
    l2 = copy.copy(l1)
    
    l1.append('g')
    
    print(l1)  # ['a','b','c',['d','e','f'],'g']
    print(l2)  # ['a','b','c',['d','e','f']]
    
    l1[3].append('g')
    
    print(l1)  # ['a','b','c',['d','e','f','g'],'g']
    print(l2)  # ['a','b','c',['d','e','f','g']]
    

    如果l2是l1的浅拷贝对象,则l1内的不可变元素发生了改变,l2不变;如果l1内的可变元素发生了改变,则l2会跟着改变

    2.3 深拷贝

    import copy
    
    
    l1 = ['a','b','c',['d','e','f']]
    l2 = copy.deepcopy(l1)
    
    l1.append('g')
    
    print(l1)  # ['a','b','c',['d','e','f'],'g']
    print(l2)  # ['a','b','c',['d','e','f']]
    
    l1[3].append('g')
    
    print(l1)  # ['a','b','c',['d','e','f','g'],'g']
    print(l2)  # ['a','b','c',['d','e','f']]
    
    

    如果l2是l1的深拷贝对象,则l1内的不可变元素发生了改变,l2不变;如果l1内的可变元素发生了改变,l2也不会变,即l2永远不会因为l1的变化而变化

    三、数据类型内置方法

    3.1 数字类型内置方法

    3.1.1 整型

    1. 作用:定义年龄/身高/体重/id号
    2. 定义方式:
    age = 18
    age = int('18')
    
    1. 方法: + - * / % // **
    2. 多个值or一个值:一个值
    3. 有序or无序:压根没有有序无序这一说
    4. 可变or不可变:不可变
    • 可变:值变id不变,值变id也变

    3.1.2 浮点型

    1. 作用:定义薪资/价格
    2. 定义方式:
    salary = 3.2
    
    salary = float('3.2')
    
    1. 方法:+ - * / % // **
    2. 多个值or一个值:一个值
    3. 有序or无序:压根没有有序无序这一说
    4. 可变or不可变:不可变

    3.2 字符串类型内置方法

    1. 作用:姓名/
    2. 定义方式:
    name = 'nick'
    name = "nick"
    name = '''
    nick
    nick
    '''
    name = """
    nick
    nick
    """
    name = "'nick'"
    name = '"nick"'
    
    1. 方法
      1. 优先掌握
        1. 索引取值
        2. 切片
        3. 长度
        4. 切分split
        5. 除两边空白strip
        6. 成员运算in not in
        7. for循环
      2. 需要掌握
        1. lstrip/rstrip:左/右除空白
        2. rsplit:从右开始切割
        3. upper/lower:大写/小写
        4. startstwith/endswith:以某开头/以某结尾
        5. join:连接列表为字符串
        6. replace:替换字符
        7. isdigit:判断是否为数字
      3. 了解
        1. find/rfind/index/rindex/count:查找/从右开始查找/索引结果/从右开始索引结果/计数
        2. center/ljust/rjust/zfill:居中填充/居左填充/居右填充/填充0
        3. expantabs:扩展tab键
        4. capitalize/swapcase/title:大写/大小写转换/首字母大写
        5. is系列:略
    2. 多个值or一个值:一个值
    3. 有序or无序:有序
    4. 可变or不可变:不可变

    3.3 列表类型内置方法

    1. 作用:多个女朋友/
    2. 定义方式:[]内用逗号隔开多个任意数据类型的元素
    friends_list = ['longzeluola','canglaoshi','qiaobenai','nick']
    lis = list('abcd')
    
    1. 方法:
      1. 优先掌握
        1. 索引取值(即可取又可改)
        2. 切片
        3. 长度
        4. append
        5. 成员运算
        6. for循环
      2. 需要掌握
        1. count:元素个数计数
        2. remove:移除元素
        3. reverse:反转列表
        4. pop:删除元素
        5. insert:插入元素
        6. sort:列表排序
        7. index:索引元素
        8. del:删除元素
        9. extend:扩展列表
        10. clear:清除列表
    2. 多个值or一个值:多个值
    3. 有序or无序:有序
    4. 可变or不可变:可变

    3.4 元祖类型内置方法

    1. 作用:类似于列表,可以取不可以存
    2. 定义方式:
    friends_tuple = ('longzeluola','canglaoshi','qiaobenai','nick')
    tup = tuple('abcd')
    
    1. 方法
      1. 优先掌握
        1. 索引取值(无法更改)
        2. 切片
        3. 长度
        4. 成员运算
        5. for循环
        6. count:元素个数计数
        7. index:元素位置索引
    2. 多个值or一个值:多个值
    3. 有序or无序:有序
    4. 可变or不可变:无可变不可变这一说

    3.5 字典类型内置方法

    1. 作用:值太多列表存容易,取麻烦时使用字典
    2. 定义方式:
    nick_info_dict = {
    'name':'nick',
    'height':180,
    'weight':140,
    'hobby_list':['read','run','music','fishing','programming','coding','debugging']
    }
    
    for k,v in nick_info_dict.items():
    	print(k,v)
    
    1. 方法
      1. 优先掌握
        1. 按键取值
        2. 长度
        3. keys/values/items
        4. for循环
        5. 成员运算
      2. 需要掌握
        1. pop:删除元素
        2. fromkeys:由一个列表生成一个字典,默认值为None
        3. setdefault:有指定key不会改变值;无指定key则改变值
        4. get:通过key获取value,无key默认获取None
        5. update:扩展字典
        6. del:删除字典键值对
    2. 多个值or一个值:多个值
    3. 有序or无序:无序
    4. 可变or不可变:可变

    3.6 集合类型内置方法

    1. 作用:存多个值,为了集合之间做运算
    2. 定义方式:
    s = set()
    
    s = {1,2,3,4,5,1}
    
    1. 方法:
      1. 优先掌握
        1. 去重
        2. 并集 |
        3. 交集 &
        4. 差集 -
        5. 对称差集 ^
        6. 父集 > >=
        7. 子集 <&emsp;<=
        8. ==
      2. 需要掌握
        1. add:添加元素
        2. difference_update:更新该集合没有的元素
        3. isdisjoint:如果两个元素交集为空返回True,否则返回False
        4. remove:移除元素 # 值不存在会报错
        5. discard :移除元素 # 不会报错
    2. 多个值or一个值:多个值
    3. 有序or无序:无序
    4. 可变or不可变:可变

    3.7 布尔类型

    1. 作用:一般用于判断,除了0/None/空/False自带布尔值为False,其他的数据类型自带布尔值为True

    四、数据类型分类

    4.1 按值个数

    一个值 多个值
    整型/浮点型/字符串 列表/元祖/字典/集合/

    4.2 按有序无序

    有序 无序
    字符串/列表/元祖 字典/集合

    4.3 按可变不可变

    可变 不可变
    列表/字典/集合 整型/浮点型/字符串
  • 相关阅读:
    Centos7下PyCharm2019安装
    企业的web项目类型、企业项目开发流程、立项申请阶段、需求分析、导航菜单、轮播图、退出登录、登录注册、课程列表、创建虚拟环境、依赖包安装、创建项目、调整目录、创建代码版本git、日志配置、异常处理、创建数据库、
    增量式爬取阳光热线网
    分布式爬取阳光热线网
    什么是接口测试,为什么做接口测试
    什么是接口、接口优势、类型(详解)
    187. Repeated DNA Sequences
    274. H-Index
    299. Bulls and Cows
    36. Valid Sudoku
  • 原文地址:https://www.cnblogs.com/nickchen121/p/11069996.html
Copyright © 2011-2022 走看看