python复习笔记 记录一下观看milo在网易云课堂上《疯狂的python》的复习笔记,源视频地址戳这里
第一章:导论
课时1-2:简介
- 编译python文件,生成pyc文件
|
|
- 编译python文件,生成pyo文件
|
|
课时3:变量
- 变量赋值
|
|
- python变量特性
|
|
课时4:运算符和表达式
- 赋值运算符
|
|
- 算术运算符
|
|
- 关系运算符
|
|
- 逻辑运算符
|
|
- 小练习
|
|
第二章:数据类型
主要数据类型五种包括数字、字符串、元组、列表和字典
课时5:数字和字符串
- 数字类型包括整型、长整型、浮点型、复数型
|
|
- 字符串类型可以使用单引号、双引号、三单引定义
|
|
- 字符串切片
|
|
课时6:元组
列表、元组和字符串都是序列,序列的主要特点是索引操作符合切片操作符
- 序列的基本操作
|
|
- 元组 通过小括号定义(),元组和列表类似,不过元组被使用元组的值也不改变。
|
|
课时7:列表
- 列表操作方法 通过中括号定义[],列表是可变类型的数据
|
|
- 对象和类快速入门 对象=属性+方法
课时8:字典
使用花括号定义,字典是python中唯一的映射类型(哈希表),字典的对象是可变的,但字典的键必须使用不可变对象,并且一个字典中可以使用不同类型的键 keys()或者values()返回键列表或者值列表,items()返回包含键值对的元组。
- 例子 可以直接使用key访问,key不存在会报错,可以使用had_key()方法或者in/not in来判断,另had_key()方法即将弃用
|
|
- 使用dict方法生成字典和使用fromkeys生成字典
|
|
- 字典的添加和删除 字典是无序的所以可以任意添加元素,列表就不行
|
|
第三章:流程控制
主要包括判断和循环
课时9:分支结构
逻辑值(bool)用来表示诸如:对和错、真和假、空与非空等概念。逻辑值True表示非空的量如(string,tuple,list,set,dictonary等),逻辑值False表示0,None,空的量等。
- if else判断
|
|
- elif 多条件判断
|
|
课时10:逻辑运算符
逻辑运算符包括"and",“or”,“not”
- 无聊的例子
|
|
- 有用的not
|
|
课时11:for循环
使用for可以循环字符串、元组和列表
- 使用for循环字符串
|
|
- 使用range方法快速生成序列
|
|
- 小题:计算1到100累加的值
|
|
课时12:遍历
遍历对象可以是字符串、元组、列表
- 使用索引遍历
|
|
- 字典的遍历
|
|
- 字典元组拆分法
|
|
课时13:循环控制
主要使用for和while进行循环控制
- Python特殊的for循环,在python中for循环是可以有else的
|
|
- 使用break跳出循环
|
|
- 使用continue跳出本次循环
|
|
- 使用pass进行占位操作(代码桩)
|
|
- 使用exit退出程序
|
|
课时14:while循环
主要做条件循环,直到表达式为假跳出循环,在设计while循环时一定要让有条件退出
- 最简单的死循环
|
|
- 使用条件退出while
|
|
- 使用while表达式进行条件判断退出
|
|
- while中的else
|
|
第四章:函数
函数就是完成特定功能的语句组,可以通过函数名在程序不同位置多次执行(函数调用)。
课时15:函数定义和调用
- 使用def定义函数,括号里面是参数列表()
|
|
- 基本函数和返回值初探
|
|
课时16:函数形参、实参、默认参数
在定义函数时函数名后面括号中的变量叫做形参,在调用函数时函数名后面的括号中的变量叫做实参
- 简单例子
|
|
- 默认参数例子
|
|
课时17:变量作用域
在python中任何变量都有其特定的作用域,一般在函数中定义的变量只能在函数内部使用,也叫局部变量。在一个文件顶部定义的变量可以提供给该文件中的任何函数调用,也叫全局变量。
- 一个例子
|
|
- 使用global将局部变量声明为全局变量
|
|
课时18:函数返回值
函数被调用后会返回一个指定的值即返回值,不指定默认返回None,可以使用return直接指定,返回值可以是任意类型,return执行后函数终止
- 一个例子
|
|
课时19:冗余参数处理
- 正常多类型传值
|
|
- 传递元组到多个参数,号和**的使用 传递元组使用,传递字典使用**,推荐使用**,原因看例子
|
|
- 冗余例子,args的使用 关于args的意思是接收多余的参数,把这些参数当做一个元组,这个元组名称为args,使用**args冗余字典方式的参数
|
|
课时20:匿名函数lambda
lambda表达式函数是一种快速定义单行的最小函数,从Lisp借用而来,可使用在任何需要函数的地方。
- 最简实例
|
|
- reduce函数的使用 括号中第一项为函数,第二项为列表,一次作用两个值,配合lambda很好用。
|
|
课时21:实现分支结构
switch语句用于编写多分支结构的程序类似if else,但python并未提供switch语句。在python当中使用字典来实现相同的功能。
- 精简的例子
|
|
- 通过字典调用函数
|
|
- 上个例子的复杂方式,有多余的判断方便和上面例子对比
|
|
课时22:常用内置函数
- 使用callable检测是否可以直接调用函数
|
|
- 使用abs取绝对值
|
|
- 使用max取最大值,使用min取最小值
|
|
- 取列表长度
|
|
- 测试数据类型是否相同
|
|
- 使用cmp判断字符串是否一样
|
|
- 类型转换函数
|
|
课时23:与类相关的内置函数
- 与string相关的几个函数
|
|
- 直接使用内置函数跟使用import导入的小区别
|
|
- 使用filter函数过滤
|
|
课时24:序列处理函数
- 使用zip或map进行并行遍历 使用zip只能对元素数量一样的,map可以将数量不同的地方用None代替
|
|
- map函数高阶用法,可以对遍历后的数据进行函数操作
|
|
- reduce阶乘例子
|
|
课时25:模块和包
模块是python组织代码的基本方式,python脚本都是以py为扩展名的文件保存,一个脚本可以单独运行也可以导入另一个脚本运行,当导入运行时,被导入的脚本就称作模块(module)。模块名与脚本名字相同,如test.py的模块名就是test可以通过import test导入。
- python找寻模块路径优先级
|
|
- 实用的__name__,python内置当直接运行脚本返回为__main__,当被调用执行返回为脚本名。
|
|
- 简单例子
|
|
- Python模块可以按目录组织成包
|
|
第五章:正则表达式
课时26:简介
正则表达式(RE)是一种小型的、高度专业化的编程语言,它内嵌在python中,并通过re模块实现。
- 小例子
|
|
课时27:元字符
- 普通字符包括大多数字母和字符以及数字等都匹配自身
|
|
- 元字符包括.^$*+?{}[]|()
|
|
- 关于转义的列表
|
|
- 关于重复的正则 其中*表示0次或多次、+表示一次或多次,?表示0次或一次,".“表示匹配一次
|
|
- 关于花括号灵活用法
|
|
课时28:正则表达式常用函数
- 正则表达式编译执行,经常用的话建议采用这种方法
|
|
- match和search方法
|
|
- sub函数替换字符串
|
|
- 使用re.split进行带正则的分割
|
|
课时29:正则表达式内置属性及分组
- 正则编译标志
|
|
- 关于S的例子
|
|
- 关于M的例子
|
|
- 关于X的例子,当正则是多行时使用
|
|
- 分组匹配
|
|
- 利用分组特性的例子
|
|
课时30:一个小爬虫
- 下载贴吧或空间中所有图片
|
|
课时31:数据结构之深拷贝和浅拷贝
python对内存的使用,浅拷贝就是对引用的拷贝,而深拷贝是对对象资源的拷贝
- 实例特点
|
|
高级功能
课时32:文件读写
- 文件的读写,使用open或file函数实现
|
|
- 使用open和file打开、读取、关闭文件
|
|
- 使用write对文件写入
|
|
课时33:文件对象方法
- 文件对象方法
|
|
- 使用for遍历文件行
|
|
- 使用readline读取行,使用readlines返回列表
|
|
- 使用next,返回当前行,并将指针指到下一行
|
|
- 使用writelines实现多行写入 可以多行写,效率比write高,速度快
|
|
- 关于指针seek简单操作
|
|
- 使用flush提交更新,可以在不使用close的情况下查看文件的写入情况
|
|
- 查找hello的个数
|
|
- 文件内容替换
|
|
课时34:OS模块
- os模块常用函数
|
|
- 实例参照
|
|
课时35:目录遍历
- 列出多级目录中的文件路径(自写)
|
|
- 利用walk模块递归
|
|
课时36:异常处理
- 常见python异常
|
|
- 异常及异常抛出 使用try时报错会终止执行错误语句以下的语句
|
|
- finally子句,不关心捕获什么异常,代码必须执行,如文件关闭、释放锁、把数据库连接返还给连接池等。
|
|
- 使用raise抛出异常,抛出的异常类型必须是python中已定义的类型,不能随意起名
|
|
课时37:mysql数据库模块
- 安装MySQL-python模块
|
|
- 使用MySQLdb模块,交互模式下
|
|
- 在脚本中使用的例子
|
|
课时38:面向对象编程之类和对象
在python中将所有类型都当做对象
- 类和对象
- 面向过程和面向对象的编程 面向过程的编程:函数式编程、c程序等 面向对象的编程:C++,Java,Python等
- 类和对象是面向对象中的两个重要概念 类:是对事物的抽象,如汽车模型 对象:是类的一个实例,如轿车、客车
- 范例说明 汽车模型可以对汽车的特征和行为进行抽象,然后可以实例化为一台真实的汽车实体出来。
- Python类定义
- Python类的定义 使用class关键字定义一个类,并且类名的首字母要大写;当程序员需要创建的类型不能用简单类型表示时就需要创建类;类把需要的变量和函数结合在一起,这种包含也称为封装。
- Python类的结构
class 类名: … 成员变量 … 成员函数(至少有一个形参self) …
- 简单的例子
|
|
- 对象的创建 创建对象的过程称之为实例化;当一个对象被创建后,包括三方面的特征:对象的句柄、属性和方法。 句柄用于区分不同的对象 对象的属性和方法与类中的成员变量和成员函数对应
小例
if name == “main” … myClass1 = MyClass()
ok, python复习告一段落,下一阶段docker进阶