实践之道: 编写40个具有挑战性的Python程序 | The Art of Doing: Code 40 Challenging Python Programs Today!
通过 Python 应用程序进行计算机科学。通过实践学习。
你将会学到的
- 可以跨所有编程语言转移的计算机科学的基本概念。
- Python 语言的基础以及如何导入和使用 8 个库,例如 random、matplotlib 和 tkinter。
- 如何真正编写自己的程序。你不会坐视不管。你会去做的!
- 40 个“挑战问题”,包括问题描述、详细指南、示例输出和完整代码。
- 通过基于每个确定的文本主体对信息进行编码/解码,与朋友秘密交流。
- 模拟强力球彩票,看看调整球数如何影响成为亿万富翁的可能性。
- 查看利息对学生贷款的破坏性影响并绘制结果。
- 创建一个 GUI 界面来模拟传染病在人群中的传播。
要求
- 具有 Internet 连接并可以访问 Web 浏览器的工作计算机。
- 已安装 Python 3(可选)。
- 有学习的欲望!
说明
你好,我的名字是迈克尔·埃拉莫。我是一位经验丰富的教育家、终身学习者和自学成才的程序员。我拥有音乐产业、教育和物理学的官方学士学位、数学科学硕士学位和微软的软件开发证书。虽然我在音乐、物理、数学和教育方面拥有广泛的知识基础,但我的许多优秀教育工作者都与我共事过,但我对计算机科学的理解完全是我自己的。
我从未参加过“官方”的计算机科学课程;我完全是自学的。但是,不要让这阻止您参加本课程!相反,让它激励你,你也可以学习任何你想学的东西。我不仅做到了,而且我开始意识到什么最适合自学成才的程序员,并且我已经完善了这个过程!
看,在我儿子出生后,我就深深地害怕我已经完成了作为一个个体的成长;我 30 岁的时候将和我 55 岁的时候一样。我觉得除了上班和当爸爸之外,一天中几乎没有时间做任何事情。也就是说,直到我买了一本关于计算机科学的书,一种奇妙的感觉被唤醒了。我阅读了无数书籍,观看了数百个视频,并花费了数千小时探索和编写代码。我通常会在凌晨 3:00 起床学习几个小时,然后我不得不去我的全职工作,教高中,然后我去我兼职的大学教学工作。日子很长,但凌晨 3:00 起床阅读、学习或编写代码比多睡几个小时让我受益匪浅。它帮助我意识到我从未完成过学习;从未完成成长。
我有多年的高中物理老师、计算机科学老师和大学数学教授的课堂经验。我是纽约州硕士教师计划的一员;一个由全州 800 多名优秀公立学校教师组成的网络,他们对自己的 STEM 学习以及与同事合作以激励下一代 STEM 领导者有着共同的热情。最重要的是,我知道是什么促使人们自学;在没有时间的时候找到一种方法来创造时间学习。我明白时间是宝贵的,所有的学习都应该是吸引人的、有意义的、有目的的。
结合我作为教育工作者的专业知识和我个人对自学计算机科学的兴趣,我有了一个明显的认识; 对于自学成才的程序员来说,大多数教育材料根本不是教育材料。相反,它属于以下两类之一:
- 编写脱离上下文的程序的小“片段”,似乎根本没有任何目的,坦率地说,是在用户之下。主要示例包括使用 for 循环打印从 1 到 100 的所有偶数或使用 if 语句来响应通用用户输入。在这里,用户感到无聊,并且没有挑战去创造任何有意义的东西。除了获得本质上是事实水平的知识外,几乎没有其他目的。这是浪费你的时间。
- 看着其他人编写整个“应用程序”而不真正了解正在发生的事情。这些程序的范围超出了用户的范围,其中没有明确的指南来引导用户完成思考过程,而不仅仅是给他们答案。在这里,如果没有适当的支持和指导,用户只是默认让其他人为他们展开解决方案。看别人工作的投入很少,很少有自己产生的想法。这是浪费时间。
是的,我承认一些学习确实发生在做简单的任务或看着别人完成复杂的任务。事实上,我学到的很多东西都是这样完成的。 然而,我告诉你,与通过做有意义和适当具有挑战性的工作所发生的学习相比,它显得相形见绌。这是做事的艺术。
做事的艺术是将自己从一个被动的观察者转变为真正看到学习过程的人的艺术形式;一种改善自己的机制。 在“做事的艺术”中,我非常努力地整理了 40 个有意义的、引人入胜的、有目的的“挑战问题”供您解决。
每个挑战问题针对 3 个学习级别进行区分。
- 首先,您将获得您要创建的程序的描述和示例输出。这使用户有机会解决在范围内有意义且适当的明确定义的问题。在这里,所有的解决方案都是用户生成的。它是参与式学习。
- 其次,您将获得一份综合指南,该指南将帮助您进行成功编写程序所需的思考过程。这允许用户提供适当的帮助来测试他们的知识并迫使他们产生解决给定问题所需的想法。 这是有意义的学习。
- 第三,给你完整的代码,带有注释,以突出如何实现最终目标。这允许用户在遇到困难并且在没有帮助的情况下无法解决部分问题时参考程序的工作版本。用户不会感到沮丧,而是可以快速参考此代码以获得知识基础,然后自己重新解决问题。 这是有目的的学习。
引人入胜、有意义且有目的。这些挑战问题不仅教计算机科学,而且教你做事的艺术。我保证,在完成所有这些之后,你会认为自己是一个终身学习者,并自豪地称自己为自学成才的程序员。
在本书的范围内及其 40 个挑战问题中,您将接触到大量的想法、理论和基本的计算机科学概念。通过解决所有 40 个挑战问题,您将获得对以下主题的掌握程度的理解:
数据类型:
- 字符串:一系列字符
- 整数:整数
- 浮点数:十进制数
- 列表:可变集合
- 元组:不可变的集合
- 范围:整数序列
- 布尔值:True 或 False 值
- 字典:关联键值对的集合
控制流:
- For 循环
- 如果语句
- If/Else 语句
- If/Elif/Else 语句
- 休息
- 经过
- 继续
- While 循环
- 定义
- 返回
赋值、代数、逻辑、成员和比较运算符
- = 分配
- += 复合赋值
- -= 复合赋值
- + 连接(字符串)
- + 加法(整数和浮点数)
- – 减法
- * 乘法
- / 分配
- ** 求幂
- % 模除法
- 和
- 或者
- 不是
- 在
- 不在
- == 等于
- != 不等于
- < 小于
- > 大于
- <= 小于或等于
- >= 大于或等于
超过 20 个内置 Python 函数:
- 打印()
- 类型()
- 字符串()
- 整数()
- 漂浮()
- 输入()
- 圆形的()
- 排序()
- 连 ()
- 范围()
- 列表()
- 分钟()
- 最大限度()
- 和()
- 压缩()
- 垃圾桶()
- 十六进制()
- 放()
- 布尔()
- 极好的()
字符串方法:
- 。上()
- 。降低()
- 。标题()
- 。跳闸()
- 。数数()
- 。加入()
- 。以。。开始()
- 。代替()
- 。分裂()
列出方法:
- 。附加()
- 。插入()
- 。流行音乐()
- 。消除()
- 。种类()
- 。撤销()
- 。复制()
- 。指数()
字典方法:
- 。项目()
- .keys()
- .values()
- 。最常见的()
和外部库:
- 数学
- 约会时间
- 数学
- 随机的
- 收藏品
- 时间
- matplotlib
- tkinter
此课程面向哪些人:
- 正在寻找机会通过应用程序而不是直接指令学习的初学者程序员。
- 希望测试自己技能的中级程序员。
TheItzy » 实践之道: 编写40个具有挑战性的Python程序 | The Art of Doing: Code 40 Challenging Python Programs Today!