Python星火计划
2021-11-03 18:40:44 0 举报
星星之火可以燎原,人生苦短我用Python,学习Python的一些笔记索引,希望能帮到各位想学Python的朋友~
作者其他创作
大纲/内容
Python基础 Python安装包自带IDLE
开发环境搭建
使用Python2还是Python3
Python环境的下载安装 → 官网安装包 or Anaconda
pip包管理工具&虚拟环境
pip包简介与使用
pip包安装慢的两种解法 → 镜像源 & 本地安装whl
虚拟环境 → 开发环境隔离
强大的PyCharm
基本使用 → 新建项目和程序、编写运行程序、错误定位
断点调试 → 下断点、单步调试、值跟踪
全局Python解释器
注释与模块
单行注释 & 多行注释
if __name__ == '__main__' 的作用
重复导入一个模块会怎样
模块的搜索路径与顺序 → sys.path可查看
__init__.py 文件的作用
模块迁移到新环境 → pipreqs & freeze
模块重载 → imp.reload()
基本常识
标识符命名规则 → 字母数字下划线组成,首字符不能为数字,不能与关键字重名
查看关键词 → keyword.kwlist
print() → 格式化输出%号间隔,默认换行,可设置end参数覆盖
input() → 以回车结束,读取时会自动忽略换行
dir() → 查看对象中所有属性与方法
help() → 查看函数或模块的详细说明
type(变量名) → 获取变量类型,isinstance(变量名,类型) → 判断变量是否为该类型
行与缩进
pass空语句
变量、常量与运算符
什么是变量
变量使用示例 → 使用前要先定义
多个变量赋值 → a = b = c = 1 or a,b,c = 1,2,"Python"
del关键字 → 删除对象引用
常量 → 大写变量名标识,仅仅起提示效果,本质上还是变量
运算符 → 算术、赋值、比较、位、逻辑、成员、身份
空值、布尔类型、数字类型
空值 → None,空对象
布尔类型(Bool) → True 和 False
数字类型(Number) → int(整数)、float(浮点数)、complex(复数)
类型转换函数
数学函数
三角函数
随机数函数
列表&元组
列表(List) → 有序,长度内容可变,中括号[]表示,元素间逗号分隔,元素类型可不一致
列表操作 → 创建、访问元素、切片、更新追加插入元素、删除元素、遍历、其他函数
元组(Tuple) → 受限的列表,元素不能改变,小括号()表示,只有一个元素时,要在元素后加逗号(1,)
占更少内存,常用于把不能修改的参数传递给函数, 逗号分隔没小括号,Python会把变量当成元组,如a=1,2,3
字典
字典(Dict) → 键值对存储数据,键不能重复,不可变,使用冒号:分隔键值,多个键值对用逗号分隔,无序
字典操作 → 创建(大括号、dict()、fromkeys())、访问元素、修改字典、遍历、有序字典(collection.OrderedDict)
集合
集合(Set) → 无序且自动去重,使用大括号包裹元素,逗号分隔
集合操作 → 创建、有无元素、增删元素、遍历、清空
集合运算 → 子集、并集、交集、差集、对称差
字符串
字符串(String) → 0个或多个字符组成的字符序列,需用单双三引号中的一种包裹
反斜杆转义字符
字符串操作 → 索引访问、拼接、重复、切片、判断是否含子串、获取长度、排序
字符串常用函数 → 常量集合、大小写转换、内容判断、填充、搜索、替换、添加、修剪、切割
format格式化函数
条件判断&循环
条件判断 → if、else、elif
条件表达式 → c = a if a > b else b
循环 → for、while
循环控制 → break、continue
循环嵌套 & 死循环
函数(上)
函数定义 → def 函数名(传入参数),return返回值,不谢默认返回None,返回值可以有多个,本质是元组
形参 & 实参 → Python采用传对象引用的方式
关键字参数 & 默认参数
可变参数 → 函数定义前加*,本质是打包成元组,如果想打包成字典,用两个*
全局变量 → 当试图在函数中修改时,会自动在内部新建一个相同名字的局部变量代替,如果想修改可用global修饰
局部变量 → 函数外部无法访问的原因,运行函数时会用Stack来存储数据,执行完函数后,所有数据会自动删除
内部函数 → 函数嵌套,内部函数无法修改外部函数的变量,可用容器存或使用nonlocal修饰
闭包 → 函数嵌套、内部函数引用外部函数变量、外部函数返回内部函数
lambda表达式 → 创建匿名函数,省去定义函数的步骤
递归 → 函数调用自身,要有结束条件,以避免递归的无休止调用
函数(下)
迭代器 → 用于访问集合,一种可记住遍历位置的对象,从第一个元素开始访问,直到结束
生成器 → yield关键字返回一个生成器
装饰器 → 帮助其他函数在不改动代码的情况下增加额外的功能
异常 & 断言
语法错误 & 运行时异常
Python中的常见异常 → Exception是所有异常类的父类
异常捕获 → try-except-else 和 try-finally
异常抛出 → raise关键字
自定义异常
sys.exc_info() → 获取异常
断言 → 检查非法情况,以便快速定位到问题位置,assert
类 & 对象
对象引入 → 万物皆对象,所有事物都有两个特点:有什么、能做什么
类的引入 → 把具有相同或相似性质的对象进行抽象(共性抽取)
类设计的要求和思想 → 高内聚、低耦合,以对象为中心先开发类,得到对象,再通过对象间的相互通信实现功能
定义类与实例
__init__() → 初始化函数,控制初始化过程,添加属性,额外操作,发生在类实例创建完后,对象级函数
__new()__ → 构造函数,控制生成实例的过程,类级别的函数,在__init__()前调用
类属性 & 实例属性
类函数 & 成员函数
静态函数 → 使用@staticmethod装饰器声明
访问控制 → 名字改编技术,私有命名会加上两个下划线,如__skill,伪私有,改成了_类名私有属性/函数名
动态绑定 → Python中可以动态地为类或对象绑定属性或函数
继承
组合
对象相关的内置函数
文件存储
open() & 文件打开模式
file对象相关函数
文件常见操作 → 创建、写入、读取、追加
os模块常用函数
os.path模块常用函数
实用代码示例 → 批量替换文件内容、批量修改文件名
常用模块(上)
time模块
datetime模块
logging模块
常用模块(下)
json模块
pickle模块 → 对象序列化与反序列化
hashlib模块 → 字符串加密
base64模块 → 二进制字节流编码为64个字符
Python爬虫
基础概念
爬虫概念
爬虫是什么、能做什么
爬虫组成 → 模拟请求、数据解析、数据保存
HTTP协议概述
简述一次网络请求
URI、URL和URN
HTTP请求报文 → 请求行(请求方法、URL、HTTP协议版本)、请求头、空行、请求正文
HTTP响应报文 → 状态行(协议版本、状态码、状态码描述)、响应头、空行、响应正文
Session & Cookies → 前者服务端保存状态,后者客户端保存状态
HTTPS协议概述
HTTP协议的问题 → 不安全,通过TCP协议传入,依靠IP协议寻址,传输内容为明文
中间人攻击
摘要与加密 → MD5算法是一种用于计算摘要的散列/哈希算法,并非加密算法
对称加密 → 加解密使用同一串密钥,加密过程算法公开,DES、AES等
非对称加密 → 加、解密使用不同密钥,公钥解私钥加密,私钥解公钥加密,如RSA
HTTPS证书机制 → 数字证书、证书签名、证书链、HTTPS通信图解
Web基础
HTML → 结构,决定网页的结构与内容 → 是什么?
CSS:表现,设定网页的表现形式 → 什么样?
JavaScript:行为,控制网页的行为 → 做什么?
抓包
Chrome抓包
模拟请求 urllib模块
requests模块
数据解析
lxml模块 → 解析HTML、XML,有Xpath语法详解
BeautifulSoup模块 → 最简单易用,需要依赖lxml
PyQuery → 解析HTML,有CSS选择器语法详解
正则表达式 → 字符串解析神器
数据存储
CSV & EXCEL → csv、xlwt、xlrd
Python Web
Van Python & 第三方库练手
Van Python | 如何用Python投机倒把几天“暴富” → 用python亏最多的钱
Van Python | 安静!吵到我用TNT了 → python-pptx模块
公号文章排版利器 | 耗子尾汁Markdown转换工具 → mistune模块解析markdown
好家伙 | 自己写一个视频字幕提取工具
记两件「会门脚本语言真香」的小事 → 批处理脚本简化工作
Van Python | 某站点课程的简单爬取 → selenium自动化 + browsermob-proxy
Van Python | 某星球的简单爬取 → pyppeteer自动化
机器学习
量化交易
0 条评论
下一页