python基础
对python基础的一些查漏补缺
三千。
这个作者很懒,什么都没留下…
展开
-
Python中的装饰器
装饰器 decorator在不改变原函数代码,且保持原函数调用方法不变的情况下,给原函数增加新的功能,或者给类增加属性和方法。装饰器定义核心思想:用一个函数(或者类)去装饰一个旧函数(或者类),造出一个新函数(或者新类)语法规则:在原有的函数上加上 @符,装饰器会把下面的函数当作参数传递到装饰器中,@符又被成为 语法糖应用场景:引入日志,函数执行时间的统计,执行函数前的准备工作,执行函数后的处理工作,权限校验,缓存等###1.装饰器原型(闭包) 利用闭包,把函数当作参数传递,并且在函数内原创 2020-06-30 12:47:04 · 85 阅读 · 0 评论 -
OOP-描述符与设计模式
1.描述符当一个类中,包含了三个魔术方法(__get__,__set__,__delete__)之一或者全部时,那么这个类就称为描述符类。1.1 作用描述符的作用就是对一个类中的某个成员进行一个详细的管理操作(获取,赋值,删除);描述符就是代理了一个类中的成员的操作,描述符属于类,只能定义类的属性。一个类的成员的值是另一个描述符类的对象;那么当对这个类的成员进行操作时,等于是在操作另一个对象1.2 三个魔术方法'''__get__(self, instance, owner) 触发原创 2020-06-30 12:45:54 · 124 阅读 · 0 评论 -
OOP-内置成员及魔术方法
面向对象-OOP-内置成员和魔术方法1. 内置成员#定义一个类Aclass A(): name = 'cxy' age = 24 def func(self): print('学到头秃')a = A()a.h = '99' # 获取类/对象的所属成员 类/对象.__dict__res = A.__dict__ # 获取当前类的所属成员res = a.__dict__ # 获取当前对象的所属成员# 获取类的说明文档 类/对象.__doc__原创 2020-06-30 12:44:31 · 105 阅读 · 0 评论 -
OOP的三大特性:封装、继承、多态
面向对象的三大特性:封装,继承,多态1.封装封装就是使用特殊的语法,对成员属性和成员方法进行包装,达到保护和隐藏的目的;但是一定注意,不能把成员全部封装死,就失去意义了;被封装的成员主要是供类的内部使用,是限制了访问的权限,并不是完全不让访问;被特殊语法封装的成员,会有不同的访问的权限。正常来说在类的外部不能操作受保护的成员:_成员 ,但是python中可以封装的级别封装的级别: 成员 ==> 公有的 public _成员 ==> 受保护的 prot原创 2020-06-30 12:44:06 · 943 阅读 · 1 评论 -
Python中的面向对象-OOP
面向对象-OOP面向对象编程——Object Oriented Programming,简称OOP,是一种以对象为中心的程序设计思想。面向过程编程——Procedure Oriented Programming,简称POP,是一种以过程为中心的程序设计思想。##1.面向过程与面向对象###区别和优缺点:面向过程:遇到问题后,分析解决问题的步骤,然后一步步去实现;面向过程的核心是过程,过程就是指解决问题的步骤。优缺点:优点:将负责的问题流程化,进而实现简答化缺点:扩展性差(更新原创 2020-06-30 12:42:59 · 168 阅读 · 0 评论 -
Python中的异常处理
异常1.什么是异常【异常在python中是一个对象】异常简单理解,就是非正常,没有达到预期目标。异常是一个事件,并且这个异常事件在我们程序员的运行过程中出现,会影响我们程序正常执行。异常分两种:语法错误导致的异常逻辑错误导致的异常#在程序无法正常运行处理时,就会出现一个异常,在python中异常是一个对象,表示一个错误。#例如:获取一个不存在的索引a = [1,2,3]print(a[5])>>>Traceback (most recent call原创 2020-06-30 12:42:34 · 1177 阅读 · 0 评论 -
Python中的第三方库的管理和虚拟环境
Python中的第三方库的管理和虚拟环境1. 第三方库(包)的管理第三方库(包)就是不是官方提供的库,是大佬们自己开发的开源库第三方库的管理网站 https://pypi.org/安装第三方库:使用pippip:pip就是python的包管理工具,解决了包之间的依赖关系。可以方便的管理第三方库(包).类似于PHP中Composer,或者Nodejs中的npm,或者Linux中的yum。如何使用pip:pip install 包名(库名)安装指定版本的包:pip in原创 2020-06-30 12:41:57 · 433 阅读 · 0 评论 -
Python中的模块与包
Python中的模块与包1.模块:就是python脚本定义的一个python的文件,后缀名为.py。这个文件被称为模块。模块中通常会定义一些相似的 类,函数等代码内容,提供给别的程序引入后使用。1.1 系统模块:之前讲的内置模块系统模块就是一个python的程序脚本,专门提供给我们自己的程序使用。它们是在安装好python环境时,就已经存在的,需要的时候可以使用 import 导入到程序中使用。import os,zipfile,json,shutil,time1.2 自定义模块就原创 2020-06-30 12:41:23 · 101 阅读 · 0 评论 -
Python中的时间模块
内置模块-时间模块1.time 时间模块:import timeimport time概念:时间戳: 1574905882.6581771 表示从1970年1月1日0时0分0秒到现在的一个秒数,目前可以计算到2038年时间字符串: Thu Nov 28 09:54:08 2019时间元组: time.struct_time(tm_year=2019, tm_mon=11, tm_mday=28, tm_hour=9, tm_min=55, tm_sec=32, tm_wday=3, tm_原创 2020-06-30 12:40:51 · 213 阅读 · 0 评论 -
Pyhton中的内置模块
系统内置模块系统内置模块就是安装python解释器后,系统给提供的模块在需要时可以导入后使用,例如:json,re,os等等1.序列化模块:方便数据存储和传输序列化是指可以把python中的数据,以文本或二进制的方式进行转换,并且还能反序列化为原来的数据;数据在程序与网络中进行传输和存储时,需要以更加方便的形式进行操作,因此需要对数据进行序列化;对数据进行序列化的主要方法有以下两种二进制序列化模块 pickle (python专用)文本序列化模块 json (通用)原创 2020-06-30 12:40:25 · 103 阅读 · 0 评论 -
Python中的File操作
Python中的File(文件)操作针对磁盘中的文件的读写。文件I/O I 输入(input) O输出(Output)文件操作步骤:1.打开文件 2.读写文件 3.关闭文件###写入文件的操作:打开文件 open()写入内容 write()关闭文件 close()###读取文件的操作:打开文件 open()读取内容 read()关闭文件 close()文件操作相关函数1. open() 打开文件格式: open(文件的路径,打开模式,[encoding])原创 2020-06-15 16:51:42 · 1061 阅读 · 0 评论 -
数据类型详解之集合
数据类型详解-集合确定的一组无序的数据的组合当前集合中元素的值不能重复由多个数据组合的复合型数据(容器类型数据)集合中的数据没有顺序功能:成员检测、从序列中去除重复项以及数学中的集合类计算,例如交集、并集、差集与对称差集等等。1.集合的定义可以直接使用 {} 来定义集合可以使用set()进行集合的定义和转换使用集合推导式完成集合的定义集合中的元素不能重复,集合中存放的数据:Number,Strings,Tuple,冰冻集合2.集合的基本操作和常规函数定义集合a =原创 2020-06-15 16:51:07 · 259 阅读 · 0 评论 -
数据类型详解之字典
数据类型详解-字典字典是一种数据的集合,由键值对组成的数据集合,字典中的键不能重复,但是值可以;字典是一种映射类型;字典中的键必须是不可变的数据类型,常用的键主要为:字符串,整型等。1.字典的定义:【注意使用dict()函数定义时里面的形参命名】字典可以通过将以逗号分隔的 键: 值 对列表包含于花括号之内来创建字典也可以通过 dict 构造器来创建【使用dict()函数进行定义时,key是字符串不能带引号,这里类似关键字传参】【使用dict()函数进行定义时,这里就!是!关键字传原创 2020-06-15 16:50:37 · 3326 阅读 · 0 评论 -
数据类型详解之元组
数据类型详解-元组元组和列表一样都是一组有序的数据的组合。元组中的元素一但定义不可以修改,因此元组称为【不可变数据类型】1.元组定义定义空元组 a = (),或者 a=tuple()还可以使用 a = (1,2,3) 定义含有数据的元组【注意:如果元组中只有一个元素时,必须加逗号 a=(1,)】如果不加,a就是int类型a = (1)print(a,type(a))>>>1 <class 'int'>a = (1,)print(a,ty原创 2020-06-15 16:50:08 · 3444 阅读 · 0 评论 -
数据类型详解之列表
数据类型详解-列表列表就是一组有序的数据组合,列表中的数据可以被修改1. 列表的定义可以使用 中括号进行定义 []也可以使用 list函数 定义在定义列表中的元素时,需要在每个元素之间使用逗号,进行分隔。[1,2,3,4]列表中的元素可以是任意类型的,通常用于存放同类项目的集合2. 列表的基本操作列表定义-[],list()列表相加-拼接:直接用+号,print(a + b + [11,22])列表相乘-重复:print(a*3) >>>[1,2,1原创 2020-06-15 16:49:36 · 684 阅读 · 0 评论 -
数据类型详解之字符串
数据类型详解-字符串1.转义字符一个普通的字符出现在转义符 \ 的后面时,实现了另外一种意义\ 转义符,续行符。作为续行符时,在行尾使用了\后,可以换行继续书写内容;a = '123'\ '12'print(a)>>>12312作为转义符时,在\后面出现的字符可能会实现另外一种意义:\n 换行符a = '123\n12'print(a)>>>123 12\r 代表光标位置(从\r出现的位置开始作为光标的起点)a原创 2020-06-15 16:49:12 · 470 阅读 · 0 评论 -
内置函数
内置函数内置函数就是在系统安装完python解释器时,python解释器自带的函数1. range()函数:遍历range()函数功能:能够生成一个指定的数字序列参数: start : 开始的值 ,默认值为0 stop : 结束的值 [, step]: 可选,步进值 默认值为1返回值: 可迭代的对象,数字序列提取range()函数返回的数字序列的方法:# 获取range函数返回的数字序列的方法res = range(10)# 1.转为list列表数据pr原创 2020-06-08 12:21:07 · 654 阅读 · 0 评论 -
递归等高阶函数
函数的一些高阶用法1.递归函数:我调我自己递归函数就是定义了一个函数,然后在函数内,自己调用了自己这个函数;递归函数内必须要有结束,不然就会一直调用下去,直到调用的层数越来越多,栈溢出;递归函数:一层一层的进入,再一层一层的返回。【注意!!一定是有进入有返回!!!】# 初步认识 递归函数 3 2 1 0def digui(num): print(num) # 3 2 1 0 # 检测当前的值是否到了零 if num > 0: # 调用函数.原创 2020-06-08 12:20:18 · 147 阅读 · 0 评论 -
函数的基本概念
模块化编程指把程序进行封装(函数封装、面向对象、文件封装)函数:function###1.什么是函数函数就是一个具有特定功能的代码块作用:将代码进行封装,以提高代码的重用性,提高开发效率###2.函数的定义和使用#定义函数def 函数名(形参,形参,形参(形参可写可不写)): 函数具体功能的代码 。。。# 函数封装完并不会执行,只是把函数定义了而已# 如果想使用定义的函数,那么就需要用语法来进行函数的调用# 调用函数函数名() 3.函数特征及注意事原创 2020-06-08 12:19:12 · 717 阅读 · 0 评论 -
数据类型
##1. 元组tuple:元素不可以修改a = ( )#也可以 a = 1, 2, 3, 这样定义出来的a也是元组;#注意:如果元组里只有一个元素,则必须在该元素后面加一个逗号。a= (123, )##2. 列表list:元素可修改可多维a = []#可以是二维列表。##3. 字典dict:元素为键值对a = {}#key-value对,key不能重复。重复则覆盖。#key只能为字符串或者数字类型,value可以是任意类型##4. 集合set:无序的不重复的元素序原创 2020-06-08 12:18:28 · 80 阅读 · 0 评论 -
流程控制
写代码块的时候注意缩进!!!python中的流程控制:1.顺序结构:自上而下2.分支结构单向分支if 表达式: 代码双向分支if 表达式: 代码else: 代码多向分支if 表达式: 代码elif 表达式: 代码elif 表达式: 代码else: 代码巢状分支:嵌套分支if 表达式: 代码 if 表达式: 代码 else: 代码原创 2020-06-08 12:17:10 · 63 阅读 · 0 评论 -
运算符
python3运算符运算符类型:算 ,字(字符串),赋, 比, 逻, 位, 它(其他运算符号)算术运算符比较(关系)运算符赋值运算符逻辑运算符位运算符成员运算符身份运算符运算符优先级1.算术运算符(算)加减乘除(结果为float)取模(返回余数)幂整除(结果为int)+-*/%**//2.字符串运算(其实是拼接)####2.1 字符串与数字不能直接参与运算print('1'+ 2) #错####2.2 字符串的拼接原创 2020-06-02 22:09:01 · 218 阅读 · 0 评论