python进阶小结(代码片段)

nickchen121 nickchen121     2022-12-22     205

关键词:

异常TODO

万能捕捉异常公式

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

深浅拷贝

拷贝

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

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不变

浅拷贝

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会跟着改变

深拷贝

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的变化而变化

数据类型内置方法

数字类型内置方法

整型

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

浮点型

  1. 作用:定义薪资/价格
  2. 定义方式:
salary = 3.2

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

字符串类型内置方法

  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
      3. expantabs
      4. capitalize/swapcase/title
      5. is系列
  2. 多个值or一个值:一个值
  3. 有序or无序:有序
  4. 可变or不可变:不可变

列表类型内置方法

  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不可变:可变

元祖类型内置方法

  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不可变:无可变不可变这一说

字典类型内置方法

  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
      3. setdefault
      4. get
      5. update
      6. del
  2. 多个值or一个值:多个值
  3. 有序or无序:无序
  4. 可变or不可变:可变

集合类型内置方法

  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
      4. remove # 值不存在会报错
      5. discard # 不会报错
  2. 多个值or一个值:多个值
  3. 有序or无序:无序
  4. 可变or不可变:可变

布尔类型

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

数据类型分类

按值个数

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

按有序无序

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

按可变不可变

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

android进阶——图形显示系统之底层图像显示原理小结(代码片段)

文章大纲引言一、图形显示系统概述二、图形显示系统基础理论1、屏幕刷新率2、逐行扫描3、**帧率**(FrameRate)4、画面闪烁(撕裂)的原因5、双缓冲和三缓冲FrameBuffer机制三、VSync(VerticalSynchronization)1、VSync... 查看详情

android进阶——图形显示系统之底层图像显示原理小结(代码片段)

文章大纲引言一、图形显示系统概述二、图形显示系统基础理论1、屏幕刷新率2、逐行扫描3、**帧率**(FrameRate)4、画面闪烁(撕裂)的原因5、双缓冲和三缓冲FrameBuffer机制三、VSync(VerticalSynchronization)1、VSync... 查看详情

android进阶——性能优化之电量优化全攻略及实战小结(代码片段)

文章大纲引言一、在低电耗模式和应用待机模式下进行测试1、在低电耗模式下测试您的应用2、在应用待机模式下测试您的应用3、列入白名单的可接受用例4、确定当前充电状态5、监控充电状态变化6、确定当前电池电量7、监控... 查看详情

android进阶——性能优化之电量优化全攻略及实战小结(代码片段)

文章大纲引言一、在低电耗模式和应用待机模式下进行测试1、在低电耗模式下测试您的应用2、在应用待机模式下测试您的应用3、列入白名单的可接受用例4、确定当前充电状态5、监控充电状态变化6、确定当前电池电量7、监控... 查看详情

android进阶——性能优化之电量优化全攻略及实战小结(代码片段)

文章大纲引言一、偷懒至上的原则二、低电耗模式1、低电耗模式概述2、低电耗模式限制3、适配适应低电耗模式三、应用待机模式对其他用例的支持引言电池续航时间是移动用户体验中最重要的一个方面。没电的设备完全无法使... 查看详情

android进阶——性能优化之电量优化全攻略及实战小结(代码片段)

文章大纲引言一、偷懒至上的原则二、低电耗模式1、低电耗模式概述2、低电耗模式限制3、适配适应低电耗模式三、应用待机模式对其他用例的支持引言电池续航时间是移动用户体验中最重要的一个方面。没电的设备完全无法使... 查看详情

python进阶_生成器&生成器表达式(代码片段)

...成器特性生成器表达式生成器表达式样例小结相关知识点Python进阶_迭代器&列表解析生成器带有yield关键字的的函数在Python中被称之为generator(生成器)。Python解释器会将带有yield关键字的函数视为一个generator来处理。一个函数或... 查看详情

python进阶装饰器(decorator)(代码片段)

装饰器(Decorator)装饰器1.装饰器的定义2.装饰器的示例代码3.装饰器的语法糖写法4.小结装饰器的使用1.装饰器的使用场景2.装饰器实现已有函数执行时间的统计2.小结通用装饰器的使用1.装饰带有参数的函数2.装饰带有返... 查看详情

python进阶闭包(closure)(代码片段)

【Python进阶】闭包闭包1.闭包的介绍2.闭包的构成条件3.简单闭包的示例代码4.闭包的作用5.小结6.实例代码1.案例2.实现步骤说明3.功能代码的实现4.小结闭包学习目标能够知道闭包的构成条件能够知道定义闭包的语法格式1.闭包的... 查看详情

python搭建本地静态web服务器(多任务进阶版)(代码片段)

Python搭建本地静态Web服务器静态Web服务器-多任务版1.静态Web服务器的问题2.静态Web服务器-多任务版的示例代码3.小结静态Web服务器-面向对象开发1.以面向对象的方式开发静态Web服务器2.静态Web服务器-面向对象开发的示例代码3.小... 查看详情

rabbitmq高级进阶(2021.05.29)(代码片段)

前篇回顾:RabbitMQ入门学习前篇回顾:springboor整合RabbitMQ1.RabbitMQ高级特性1.1消息的可靠投递在使用RabbitMQ的时候,作为消息发送方希望杜绝任何消息丢失或者投递失败场景。RabbitMQ为我们提供了两种方式用来控制消息... 查看详情

c++进阶模板(代码片段)

目录类模板 模板的特化函数模板特化:类模板特化:全特化:偏特化/半特化模板分离编译=====>>> 分析解决方案:按需实例化 模板小结类模板 //类模板template<classT>classStackpublic: Stack(int... 查看详情

python进阶(代码片段)

defgenerator_function(): foriinrange(10): yieldiif__name__==‘__main__‘: foritemingenerator_function(): printitem gen=generator_function() printnext(gen) printnext(gen) printnext(gen) printnext(gen) 查看详情

python进阶实战之三级菜单(代码片段)

目录Python进阶实战之三级菜单面条版文艺青年版Python进阶实战之三级菜单打印省、市、县三级菜单可返回上一级可随时退出程序面条版menu='北京':'海淀':'五道口':'soho':,'网易':,'google':,'中关... 查看详情

python基础:变量进阶(理解)函数进阶(代码片段)

...全局变量01.变量的引用变量和数据都是保存在内存中的在Python中函数的参数传递以及返回值都是靠引用传递的1.1引用的概念在Python中变量和数据是分开存储的数据保存在内存中的一个位置变量中保存着数据在内存中的地址变量中... 查看详情

知识点——python进阶-2(代码片段)

Python进阶–2面向对象–基础引入理解https://blog.csdn.net/shenzixincaiji/article/details/83576687类、对象、属性、方法基础classstudent: #类age=18 #类的属性tall=175phone='huawei'defsleep(self): #类的方法print 查看详情

android进阶——framework核心之lowmemorykiller机制和进程优先级小结(代码片段)

文章大纲引言一、LinuxOOMKill1、按需分配物理页面2、MemoryOvercommit3、OOMKill4、交换空间二、AndroidLowMemoryKiller1、LowMemoryKiller概述2、lmkd守护进程2.1、lmkd参数2.2、`lmkd`会接收Framework的命令,进行相应的操作2.3、`lmkd`sock... 查看详情

android进阶——framework核心之lowmemorykiller机制和进程优先级小结(代码片段)

文章大纲引言一、LinuxOOMKill1、按需分配物理页面2、MemoryOvercommit3、OOMKill4、交换空间二、AndroidLowMemoryKiller1、LowMemoryKiller概述2、lmkd守护进程2.1、lmkd参数2.2、`lmkd`会接收Framework的命令,进行相应的操作2.3、`lmkd`sock... 查看详情