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