- 课程名称:Python编程与实践
- 教师:陈光 (@爱可可-爱生活)
- 时间:周五上午 8:00-9:35
本课程旨在通过编程学习Python,在解决问题的过程中了解Python编程的基础知识。一起编程,一起爱上Python。
推荐参考书:
《Think Python 2nd Edition》 by Allen B. Downey
中文版: 免费在线浏览
课程视频(Bilibili): 北邮陈光《Python编程与实践》(2020)
日期 | 内容 | 视频 |
---|---|---|
2020.2.28 | 第1讲:轻松起航,一起爱Python 摘要:为什么要学编程?为什么是Python?有啥缺点吗?有什么“用武之地”?为什么是我?参考什么书?该怎么学?实践体验入门 PPT下载 ![]() |
L1 |
- | 零基础安装配置Anaconda开发环境 摘要:Anaconda及相关概念介绍;Python 2.x和3.x的故事及如何选择;Anaconda国内镜像的使用;Anaconda基本组件的介绍和实战;Python的交互式、批量式运行方式介绍;Jupyter Notebooks使用初步;conda使用初步 |
L1.1 |
2020.3.6 | 第2讲:初次尝试 摘要:如何做到“聪明地努力学习”?Python最常用的知识是什么?实战入门第一站。 ![]() |
L2 |
- | 第2讲答疑(问题列表) 摘要: 缩进相同但不挨着的代码什么关系、代码缩进用空格还是Tab、字符串里的%%什么意思、Python和之前学习的其他语言混淆怎么办、pass是什么、如何命名可改善可读性、Python代码块区分是否只能用缩进、新手应该多学几种语言还是专攻一种、如何判断代码出错位置、Python中的变量内涵是什么、a+a内部是怎么处理的、Python里是不是只能用半角、命令行运行和notebook运行有何区别、怎么写.py文件、Python适用的应用场景、in的使用、去哪里找练习题、print输出格式的控制、一行代码里两个print为什么会自动换行、如何锻炼分析问题的抽象思维、如何整体运行代码、random库的其他用法、Python代码安全性问题、Jupyter Notebook核连不上的问题、Python中[]和()的区别、随机数是否可用时间生成、如何更改cell的执行顺序、显示[*]不运行是咋回事、有什么知名Python项目、学习应以自学为主还是以课程内容为主、Python和C++的最大区别、关键字和关键语句的掌握 |
L2.1 |
- | 聊聊Python的“四大皆空” 摘要:把Python语言里四个“看不见”和“没用”的东西拢成一堆儿聊一聊,希望能帮你解开一些日常的小迷惑 ![]() |
L2.2 |
2020.3.13 | 第3讲:挑战猜数字和猜字母小游戏。 摘要:带大家编程实现猜数字和猜字母小游戏,通过实战熟悉Python基本知识,还有两个“蠢”bug ![]() |
L3 |
- | 第3讲答疑(问题列表) 摘要: Jupyter Notebook里cell的运行方式、字符串里的转义用法、Tab的用法、除random还有哪些常用的库/包、如何记住Python的语句、in的用法、关于ASCII表、Notebook里IN[*]的含义、 if语句能否写成一行、Python包应该怎么学、用函数控制函数的实现、整段代码缩进的操作、文字的随机选择、如何入门网络编程、import和C语言里include的关系、Python编程的随意性会有什么隐患、hash函数可以用在哪、range函数的三参数用法、ipythhon如何进行断点调试、Python是否有类似指针的用法 |
L3.1 |
- | 手把手:配置Sublime Text3编程环境 摘要:面向新手的零基础Win10轻量IDE编程环境配置指南 |
L3.2 |
- | 聊聊hash函数与id函数 摘要:深入了解hash和id两个“小众”函数,探索Python的内存分配和垃圾回收机制、字典和集合背后的秘密、可变元素与不可变元素的概念,用代码的方式知其所以然 |
L3.3 |
2020.3.20 | 第4讲:玩转简单加密 摘要:一起践行先实现、再完善的开发过程,通过简单文字加密的代码实现,看函数如何应需而生、命名空间的概念、简单的%pdb代码调试技巧、Python代码重构思路、函数说明文档书写规范,体会对“好代码”的感觉。 代码:Jupyter Notebook ![]() |
L4.1 |
- | 第4讲答疑(问题列表) 摘要:变量批量改名小技巧、Python负数取余的实现机制、如何实现类似switch的分支条件、global使用释疑、IPython Notebooks撤销操作小技巧、字符串如何修改、用Python Tutor网站可视化运行分析代码的小技巧、函数传参与global的关系、函数参数注解的作用、(True)与True、代码该简化思路、.py文件间是否可引用变量和函数、Python解释器检查函数、变量是否已定义的时机、Sublime Text如何用input、函数形参的作用、函数是否必须返回值、函数是否可以自己调用自己、Python函数能否重载 |
L4.2 |
2020.3.27 | 第5讲:分久必合·合久必分 摘要:现在就开始你的简单项目,在不断探索、思考、出错的过程中学习编程!复盘之前实现的加密/解密代码,反思函数和变量的命名、函数默认参数是使用场景,分析注释(包括文档字符串)面向的读者、写注释的出发点和思考角度。对加密/解密函数进行“极限”压缩,其间介绍自增等操作符、列表、列表推导、字符串的split/join操作、代码续行技巧;通过对比几种实现探讨长代码、短代码的利弊,如何打磨代码、兼顾精炼的同时提高可读性,如何用函数嵌套实现“局部重用”,探索函数结构设计之道。 代码:Jupyter Notebook ![]() |
L5.1 |
- | 第5讲答疑(问题列表) 摘要:lambda内联函数的使用、有问题如何搜索、嵌套列表的使用、字符串操作的常用函数、列表和数组的关系、代码重用是否关乎性能、如何区分可变类型和非可变类型、空字符串能否显示、成员函数的调用为什么要加点、《Think Python 2e》和讲授内容如何组合学习、注释的度应该怎么把握、代码精简到什么程度合适、Python里有没有多维列表、续行时断开位置有什么特殊要求、如何测量程序运行时间、为什么全局变量不推荐使用、列表和元组的区别等 |
L5.2 |
2020.4.3 | 第6讲:可交付的随机加密 摘要:梳理 表-表、表+位置偏移、ASCII偏移置换 三种简单加密单字符转换的实现,思考使用随机码本的加密/解密和交付方式。本节我们会一起探索:函数化如何将全局变量局部化、Python中的常量、用random.shuffle()函数打乱排序、通过list.copy()函数实现浅拷贝避免数据被意外篡改、随机乱排的时机选择问题、用pickle实现序列化/反序列化、用open()函数已制定模式打开文件、文件的二进制读写模式('b')、用write()和read()实现文件内容的读写、用with实现区间内对文件的访问和出区间文件自动关闭、notebook里用!运行命令行指令、字典的初步知识。 代码:Jupyter Notebook ![]() |
L6.1 |
- | 第6讲答疑(问题列表) 摘要:赋值浅拷贝与沉拷贝、Notebook里的魔术指令、文件系统绝对路径与相对路径、容器的类型和应用场景、Python课如何复习是否应该重看视频、if __name__ == '__main__'的用法和意义、除shuffle以外的列表打乱方法、函数任意参数/不定长参数的设定、常量的使用、pickle的dump/load释疑、Python源码如何保护/防止逆向、列表与C++数组的差别、微博上竞猜题目的解析、字典如何排序、字典如何打乱顺序、with的用法、字典键值如何互换、Python是面向对象还是面向过程、字典如何通过容器实现一对多和多对一映射、Windows下more的使用等 |
L6.2 |
2020.4.10 | 第7讲:类化之路 摘要:字典的特性、字典键/值的取值限制、字典常用函数、字典in的遍历、字典的两种常用遍历方法、类的抽象、类的三方面作用:封装细节、重用函数和变量间的联系、提高可读性,什么时候应该用类、类的初始化、类变量与实例变量、类方法定义里self的用法、为什么不建议用可变类型作类变量、类的实例化、莫尔斯电码问题的提出、用Excel+字符串split()函数实现数据规整。 代码:Jupyter Notebook ![]() |
L7.1 |
学习资源推荐: