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)
print(l2) # ['a', 'b', 'c', ['d', 'e', 'f'], 'g']
# ['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)
print(l2) l1[3].append('g') print(l1)
print(l2) # ['a', 'b', 'c', ['d', 'e', 'f'], 'g']
# ['a', 'b', 'c', ['d', 'e', 'f']]
# ['a', 'b', 'c', ['d', 'e', 'f', 'g'], 'g']
# ['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)
print(l2) l1[3].append('g') print(l1)
print(l2) # ['a', 'b', 'c', ['d', 'e', 'f'], 'g']
# ['a', 'b', 'c', ['d', 'e', 'f']]
# ['a', 'b', 'c', ['d', 'e', 'f', 'g'], 'g']
# ['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 字符串类型内置方法

name = 'nick'
name = "lwx"
name = '''
lwx
lwx
'''
name = """
lwx
lwx
"""
name = "'lwx'"
name = '"lwx"'

3.2.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系列:略
  4. 多个值or一个值:一个值
  5. 有序or无序:有序
  6. 可变or不可变:不可变

3.3 列表类型内置方法

friends_list = ['longzeluola','canglaoshi','qiaobenai','nick']
lis = list('abcd')

3.3.1 方法

  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 元祖类型内置方法

friends_tuple = ('longzeluola','canglaoshi','qiaobenai','nick')
tup = tuple('abcd')

3.4.1 方法

  1. 方法

    1. 优先掌握

      1. 索引取值(无法更改)
      2. 切片
      3. 长度
      4. 成员运算
      5. for循环
      6. count:元素个数计数
      7. index:元素位置索引
  2. 多个值or一个值:多个值
  3. 有序or无序:有序
  4. 可变or不可变:无可变不可变这一说

3.5 字典类型内置方法

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)

3.5.1 方法

  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 集合类型内置方法

s = set()

s = {1,2,3,4,5,1}

3.6.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 布尔类型

四、数据类型分类

4.1 按值个数

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

4.2 按有序无序

4.3 按可变不可变

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

最新文章

  1. JavaWeb——Filter
  2. HDU4430 Yukari&#39;s Birthday(枚举+二分)
  3. tar.gz file installation
  4. HTTP权威指南阅读笔记五:Web服务器
  5. 13SpringMvc_限定某个业务控制方法,只允许GET或POST请求方式访问
  6. nyist 599 奋斗的小蜗牛
  7. tableview 刷新 @property属性的用法
  8. 图的最短路算法 Bellman-Ford
  9. HTML5之兴趣爱好
  10. JQuery 选择器 *很重要 多记
  11. win7下安装Ubuntukylin-14.04双系统
  12. ReactiveCocoa 设置绑定注意事项
  13. 《JAVASCRIPT高级程序设计》第五章(1)
  14. html5 textarea 文本框根据输入内容自适应高度
  15. ASP.NET异常处理机制
  16. (function(root,factory){})(this,function($){}) 一个立即执行的匿名函数自调
  17. grep 及正则表达式
  18. kvm-virsh管理工具
  19. MySQL中的主键,外键有什么作用详解
  20. Struts2基础2

热门文章

  1. B. Split a Number(字符串加法)
  2. 【更新中】Hotspot tracer
  3. POJ 3617 Best Cow Line 字典序最小
  4. OfficeCommandbarDesigner20170202.rar
  5. android电子书App、自定义图表、仿腾讯漫画App、仿淘宝优惠券、3D选择容器等源码
  6. [LC] 244. Shortest Word Distance II
  7. 学习python-20191217(1)-Python Flask高级编程开发鱼书_第04章_应用、蓝图与视图函数
  8. prisoners-of-war|
  9. put out|smashed|As soon as|provided
  10. 吴裕雄--天生自然Android开发学习:android 背景相关与系统架构分析