Python 课时安排

课次(2课时) 标题 内容
1 Python 初探 安装,猜数字游戏、数学运算
2 Python 基础 变量,数据类型,输入,注释
3 Python 流程控制1 判断,循环、
4 Python 流程控制2 嵌套循环,乘法口诀表
5 Python 列表 列表的创建、添加、删除、修改
6 Python 字典 字典的创建、添加、删除、修改
7 Python 字符串 字符串处理及常用方法
8 Python 打印 格式化输出
9 Python 函数 创建函数,变量作用域
10 Python 匿名函数 lambda 表达式,filter,map
11 Python 对象1 对象的定义、创建,实例
12 Python 对象2 对象的属性、方法
13 Python 对象3 一个示例对象
14 Python 对象4 对象的多态
15 Python 对象5 对象的继承
16 Python 魔法1 基本的魔法方法
17 Python 魔法2 迭代器
18 Python 魔法3 生成器
19 Python 模块 创建模块,使用模块
20 Python 包 包结构
21 Python 常用模块1 datetime 模块
22 Python 常用模块2 OS 模块
23 Python 文件 文件读取,文件写入
24 Python GUI1 GUI 输入,猜数字游戏
25 Python GUI2 Skier 游戏
26 Python GUI3 Skier 游戏进阶
27 Python 练习题 常见练习题集及参考解析
28 Python Quizes 基础测试题及参考答案解析

Python 能做什么

Python 被称为“胶水”语言,它像一种粘合剂,为各行各业的工作人员提供简单易用的接口,调用其他语言既有的强大成熟模块。套用 Apple 的一句广告词:there is a module for that。不管你想做什么,总能找到一个Python 模块,来帮助你更好更高效的完成工作。如果没找到,那么机会来了,编写一个模块,成为它的第一个贡献者,发布到开源社区,在大家共同的努力下,不断协作完善。Get the job done!

数据分析挖掘

利用Python基础库,如Numpy、Pandas与可视化Matplotlib等等库实现对数据分析挖掘

  1. Kaggle入门:泰坦尼克号幸存者
  2. 电影人物关系提取
  3. 出租车与网约车调度
  4. 租房问题
  5. NBA比赛结果预测

    机器学习与深度学习

    利用机器学习算法和深度学习算法解决问题

  6. 人脸识别

  7. K-近邻算法实现手写数字识别
  8. 中文错别字高亮系统
  9. 街边字符识别

    网络开发

    利用Python网络框架,如Flask、Django及异步框架Toronto等等实现网站开发

  10. Django搭建个人博客

  11. Flask实现简易聊天室
  12. 信息管理系统

    爬虫

    利用Python基础库,如Request库及相应提取文本方式获取目标信息

  13. 微信好友信息批量获取

  14. 微博热搜
  15. 爬取知乎图片
  16. 爬取天气预报
  17. 网易云音乐

本课程不教什么

由于 Python 语言的语法,非常接近自然语言的语法,所以市面上充斥着大量的《Python:从入门到精通》、《2小时学会Python》等等。此类课程更像是一场电影,听的时候什么能都听懂,内容非常精彩,但过后什么不记得。准确的说本质上什么都没有学会,仅仅是了解了世界上有一种开发语言,语法易懂,上手容易。

Python的语法简单易学,2小时从入门到“精通”后,大部分网络课程,就开始百科全书式的罗列常用模块,以及常用类中提供的各种“魔法”方法。在我们看来,这样跟通读Python官方文档,没有任何本质上的区别。

  1. >>> la = [1, 2, 3, 4, 5, 6]
  2. >>> lb = la[::-1]
  3. >>> lb
  4. [6, 5, 4, 3, 2, 1]

简单的一个操作 la[::-1],得到倒序排列的数组 [6, 5, 4, 3, 2, 1],厉害吧?不,这仅仅是Python为我们提供了很多便捷的“操作”而已。这个操作很“厉害”,但学员并不一定厉害,真正掌握了背后的处理原理,甚至自己写出一套更加便捷的处理程序,才算是真正的“厉害”。

本课程不教:语法“糖”,不罗列“魔法”方法,不百科全书式的念文档、举例子、展示执行结果。

本课程教什么

会说话吗?会看懂220个基本的 Sight Words 吗?那么你一定能看懂绝大部分 Python 语句,剩下看不懂的怎么办?预测 -> 执行 -> 验证 -> 学习 -> 掌握

预测至上

编程是一门互动性非常强的课程,绝对不是老师在上面讲,学生在下面听就能学好的。

以学员为中心,自己推导出来的结论,印象才更深刻,理解才更透彻。世界上有非常多种编程语言,Python仅仅是几十种主流编程语言中的一种。所以掌握Python的编程语法是远远不够的,更重要的是掌握编程这件事背后的思维方式:计算思维。

Python恰巧是我们学习这种思维方式的一种介质,所以本课程会弱化编程语言的概念,逐步强化计算思维这种新的思维方式,也是本课程设立的初衷。

不“乱”猜答案

根据下面的代码:

  1. >>> print('Hello World')
  2. Hello World
  3. >>>

预测,下面的一段代码,会发生什么?

  1. >>> name = "Pitt"
  2. >>> print('Hello' + name)

稍微变更一下代码,又会发生什么呢?

  1. >>> print('Hello', name)

预测不是“瞎”猜。预测是“合理”推断,合哪个理呢?不管哪个理,有个理就行,有理就不是瞎猜,不管此理正确与否。在初始阶段,合自己的理就行,如果预测对了,会进一步强化自己的理,如果预测错了,学会一步步调整自己的理,直至预测正确。

实际上,机器学习大体上也就是这么个过程,机器学习的优势在大数据,样本多,调整快,但本质上机器并不懂为什么,也就是机器是依靠大力出奇迹。我们的优势在于,能搞明白为什么,进而有目的,有方向的调整,以达到更好的结果。

那么上面的两段代码会有什么样的输出呢,你预测到了吗?

  1. HelloPitt
  2. >>>
  3. Hello Pitt
  4. >>>

再来几个例子:

  1. age = 15
  2. if age >= 18:
  3. print("You're old enough to buy a ticket for this film.")
  4. else:
  5. print(f"You'll be old enough in {18 - age} years")
  1. favorite_foods = ["Sushi", "Apple", "Mango", "Pizza", "Chicken"]
  2. print(favorite_foods[2])
  3. print(favorite_foods[10])

IPO: 输入、处理、输出

image.png

本课程:推理能力,创造轮子(module)的能力。