目录
- Python基础总结
- 前言
- Python基础课程总结
- 第一课:开发环境和基本数据类型
- 第二课:控制流程和函数
- 第三课:闭包和根号2的求解
- 第四课:类和三大神器
- 第五课:文件IO和pickle、json
- 第六课:作用域、模块和包、Dataset和DataLoader、argparse模块
- 个人总结
Python基础总结
前言
本次主要是对前面的 Python 基础课程进行一个总结
Python基础课程总结
学了一段时间的 Python 基础课程了,到底学了个啥🤔。下面是根据我个人的学习进度做的一个简单的思维导图
根据上面的思维导图,让我们一起来回顾下这段时间学习的内容吧🚀🚀🚀
第一课:开发环境和基本数据类型
本次课程主要学习了开发环境的配置 Pycharm + Anaconda + Jupyter notebook
在这里认识到了一些工具的重要性如 chatGPT、Google、DeepL 等,学会利用工具来提升自己的学习效率。
认识了 Python 中的基本数据类型,int、float、str、bool、list、tuple、dict、set
重新认识了 zip 函数封包的使用,解决了我之前在检测器后处理代码中遇到的困惑
最后我们重点学习了字符串的使用方式,包括字符串的拼接(+、join)、切片([:])、查找(find)、替换(replace)等
第二课:控制流程和函数
本次课程主要学习了 Python 中的控制流程语句(if else、for、while)和函数(def、递归、匿名)。
我们首先学习了基于 if 的条件语句和基于 while、for 的循环语句,并完成了一个简易计算器的作业。
然后我们认识了 Python 中的函数和其四种类型的函数参数(位置参数、命名参数、默认参数、可变参数)
并学习了两种特殊的函数:递归函数(函数内部调用自身的函数)和匿名函数(lambda函数,无需定义函数名)。我们使用递归函数完成了斐波拉契数列的实现,匿名函数则可应用于排序的简单场景。
第三课:闭包和根号2的求解
本次课程主要学习了 Python 中闭包的概念并通过求解 2 \sqrt2 2 了解 ML 基础知识。
我们首先了解了闭包函数的特点,即内部函数可访问外部函数的局部变量、外部函数返回内部函数。我们使用闭包函数完成了统计函数执行耗时的作业。
从求解 2 \sqrt2 2 的问题出发,引入了导数、梯度等概念,并利用梯度下降法(沿着梯度的负方向进行优化)和牛顿法(不断逼近函数的零点来求解方程的根)完成了 2 \sqrt2 2 问题的求解。
最后重温了一遍常用函数的求导和链式法则,对于后续 BP 算法打下基础。
第四课:类和三大神器
本次课程主要学习 Python 中的类和三大神器:生成器、迭代器和装饰器。
首先,我们学习了类的基本概念(用来描述和创建对象的模板),包括类的实例化(创建一个实际对象)和魔法函数(如
__init__
、__call
)的使用。接下来,我们了解了生成器的概念,它代表的是一种范式,一种规范的实践,通过生成器函数(yield)和生成器表达式可用于生成一个生成器对象。
然后,我们学习了迭代器的使用,它必须实现
__iter
和__next
两个方法。通过__iter__
方法返回迭代器对象本身吗,通过__next__
方法可以逐个获取容器中的元素,迭代器可用于数据集的加载。最后,我们学习了装饰器的使用,装饰器本质上是一个函数,其参数和返回值都是函数对象,我们了解了类作为装饰器的两种形式,即类的
__init__
作为装饰入口和类的__call__
作为装饰入口,同时学习了 Python 中常见的内置装饰器,如@classmethod
、@staticmethod
、@property
。作业方面我们通过迭代器完成了 Fib 类的实现,通过装饰器完成了 Fib 类的修改。
第五课:文件IO和pickle、json
本次课程主要学习了文件操作和序列化模块:pickle 和 json。
我们学习了如何通过 Python 内置的函数对文件进行打开(open、with open)、读取(read、readline)、写入(write)以及关闭(close)操作。
还学习了如何使用 with 语句来自动管理文件的打开和关闭,防止文件句柄泄露和资源浪费。
我们重点学习了 XML 文件的解析,通过自定义解析和利用 ElementTree 模块完成 xml 的转换,这对于后续处理标签文件非常有帮助。
我们还学习了如何使用 pickle 模块的
dump
和load
函数实现对 Python 对象的二进制序列化和反序列化,如何使用 json 模块实现 Python 对象的文本序列化和反序列化。
第六课:作用域、模块和包、Dataset和DataLoader、argparse模块
本次课程主要学习 Python 中的作用域和模块以及用于数据集解析的 Dataset 和 DataLoader。
首先,我们学习了 Python 程序中的作用域,通过
locals
函数可以用来查看当前作用域中的符号,符号的查找和读取遵循就近原则。然后我们区分了 Python 程序中的脚本(独立的 Python 代码文件,例如 add.py)、模块(一组相关的 Python 代码,比如 math.py)和包(模块+
__init__
,比如 algorithm.py)的概念,并对 import 导入的处理进行了详细分析(import module 和 import package.module)。我们还利用 setup.py 打包并发布了自定义的模块。
通过 Dataset 数据集和 DataLoader 数据加载器完成了对 MNIST 数据集的解析工作,这对于后续 DL 中处理相关数据集非常有帮助。
最后,我们简单了解了三个常用的第三方库 numpy、cv2、matplotlib,并学习了命令行参数解析模块 argparse,可以根据用户在命令行输入的参数执行不同的操作。
个人总结
Python 基础课程告一段落了,期待下后续的 deep learning 和 3D 基础课程😄。
🚀🚀🚀正确使用 Python 的方式:使用基本的 Python 语法,调用大量的库包,高效愉快的完成自己的工作
最后,总结一句,收获颇丰,感谢杜老师!!!🤞