AutoCV:Python基础总结

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 模块的 dumpload 函数实现对 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 语法,调用大量的库包,高效愉快的完成自己的工作

最后,总结一句,收获颇丰,感谢杜老师!!!🤞

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

爱听歌的周童鞋

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值