一、异常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 按可变不可变

可变 不可变
列表/字典/集合 整型/浮点型/字符串

Python进阶小结的更多相关文章

  1. 47-Python进阶小结

    目录 Python进阶小结 一.异常TODO 二.深浅拷贝 2.1拷贝 2.2 浅拷贝 2.3 深拷贝 三.数据类型内置方法 3.1 数字类型内置方法 3.1.1 整型 3.1.2 浮点型 3.2 字 ...

  2. Python进阶 - 对象,名字以及绑定

    Python进阶 - 对象,名字以及绑定 1.一切皆对象 Python哲学: Python中一切皆对象 1.1 数据模型-对象,值以及类型 对象是Python对数据的抽象.Python程序中所有的数据 ...

  3. Python进阶:设计模式之迭代器模式

    在软件开发领域中,人们经常会用到这一个概念——“设计模式”(design pattern),它是一种针对软件设计的共性问题而提出的解决方案.在一本圣经级的书籍<设计模式:可复用面向对象软件的基础 ...

  4. Python进阶:全面解读高级特性之切片!

    导读:切片系列文章连续写了三篇,本文是对它们做的汇总.为什么要把序列文章合并呢?在此说明一下,本文绝不是简单地将它们做了合并,主要是修正了一些严重的错误(如自定义序列切片的部分),还对行文结构与章节衔 ...

  5. Python进阶:自定义对象实现切片功能

    2018-12-31 更新声明:切片系列文章本是分三篇写成,现已合并成一篇.合并后,修正了一些严重的错误(如自定义序列切片的部分),还对行文结构与章节衔接做了大量改动.原系列的单篇就不删除了,毕竟也是 ...

  6. Python进阶:迭代器与迭代器切片

    2018-12-31 更新声明:切片系列文章本是分三篇写成,现已合并成一篇.合并后,修正了一些严重的错误(如自定义序列切片的部分),还对行文结构与章节衔接做了大量改动.原系列的单篇就不删除了,毕竟也是 ...

  7. Python 进阶_生成器 & 生成器表达式

    目录 目录 相关知识点 生成器 生成器 fab 的执行过程 生成器和迭代器的区别 生成器的优势 加强的生成器特性 生成器表达式 生成器表达式样例 小结 相关知识点 Python 进阶_迭代器 & ...

  8. 魔法方法推开Python进阶学习大门

    热爱Python Python是Guido van Rossum设计出来的让使用者觉得如沐春风的一门编程语言.2020年11月12日,64岁的Python之父宣布由于退休生活太无聊,自己决定加入Mic ...

  9. Python 学习小结

    python 学习小结 python 简明教程 1.python 文件 #!/etc/bin/python #coding=utf-8 2.main()函数 if __name__ == '__mai ...

随机推荐

  1. Elasticsearch实现复合查询,高亮结果等技巧

    一.Es的配置 实现es的全文检索功能的第一步,首先从与es进行连接开始,这里我使用的是es的5.x java api语法. public TransportClient esClient() thr ...

  2. python中使用adb命令的方法

    在python中使用adb命令,可以导入os模块. 1 简单的adb命令. 如:os.system('adb version') 2 稍微复杂的adb命令. 如:os.system('adb shel ...

  3. nginx配置文件 http 强跳转 https

    路径 /usr/local/nginx/conf/conf.d/test.jackcui.com.conf server { listen 80; server_name test.jackcui.c ...

  4. nova安装与配置

    一.实验目的: 1.理解nova服务在OpenStack中的作用 2.掌握在控制节点上安装配置nova的方法和步骤 3.掌握在计算节点上安装与配置nova的方法和步骤 二.实验步骤: 1.在contr ...

  5. Java连载55-接口的作用、接口举例

    一.接口的作用 1.可以使项目分层,所有层都面向接口开发,开发效率提高了. 2.接口使代码和代码之间的耦合度降低,就像内存条和主板的关系,变得“可插拔”,可以随意切换. ​总结:接口和抽象类能够完成某 ...

  6. CTPN网络理解

    本文主要对常用的文本检测模型算法进行总结及分析,有的模型笔者切实run过,有的是通过论文及相关代码的分析,如有错误,请不吝指正. 一下进行各个模型的详细解析 CTPN 详解 代码链接:https:// ...

  7. 通过jgit一次性升级fastjson版本

    背景:笔者所在公司经历了三次fastjson的升级,由于集群,工程数量众多,每次升级都很麻烦.因此开发了一个java的升级工具. 功能介绍: 功能介绍:一个jar文件,通过java -jar命令,输入 ...

  8. 传统jdbc存在的问题总结

    1.数据库连接创建.释放频繁造成系统资源浪费,影响系统性能,可使用数据库连接池解决此问题. 2.sql语句中在代码中硬编码,代码不易维护,sql变动需要改变java代码. 3.使用preparedSt ...

  9. SpringBoot无法访问webapp目录下的文件

    springboot version:2.1.9-RELEASE 解决方案: 在pom中添加此段 完美解决,代码的作用是让src/main/webapp在编译的时候在resoureces路径下也生成w ...

  10. 基于asp.net(C#)MVC+前端bootstrap+ztree+lodash+jquery技术-Angel工作室通用权限管理

    一.Angel工作室简单通用权限系统简介 AngelRM(Asp.net MVC Web api)是基于asp.net(C#)MVC+前端bootstrap+ztree+lodash+jquery技术 ...