Logo
Section 1 / 6

Python 入门与课程介绍

了解为什么Python是工程学科和应用中的良好选择。

导入

Python 入门与课程介绍

了解为什么Python是工程学科和应用中的良好选择。

## 本课程适合谁?

当你听到“编程”这个词时,你会想到什么?对大多数人来说,编程会让人联想到高深的数学、闷头敲代码的极客,以及“入侵主控系统”——尽管这到底是什么意思也说不清楚。对工程师和工程专业的学生而言,编程则往往唤起他们学习计算机科学入门课程时那些成功与挣扎的记忆。

传统的工程类计算机科学课程虽然强调编程的基本原理,却很少展示这些知识在工程以外领域的实际应用。

Course Image

因此,工程学生虽然知道(或至少学过)继承和面向对象编程的基本概念,但课程并未将这些理论与真实的工程应用场景联系起来。结果,机械工程和航空航天工程等专业更倾向于使用 MATLAB,因为编程语言的计算能力在传统教学中并未被充分强调。MATLAB 之所以长期主导工程领域,是因为它被视为一个功能齐全、开箱即用的软件工具包,专注于函数式编程。MATLAB 中的一切都是某种数组形式,其 Simulink 工具箱及其他插件也使其特别适合工程集成。然而,MATLAB 的缺点在于它是专有软件,购买许可证成本高昂,且在计算和数据采集之外的任务处理上远不如 Python 灵活。


关于本课程

本课程每一章都将介绍你正在尝试构建的问题或程序,逐步展示程序的开发过程,并以总结或结论收尾。这种结构能为你提供足够的背景信息,帮助你理解程序的整体思路,并让你能够筛选出自己需要掌握的内容。课程末尾的附录中会列出所有第三方库的官方网址,通常包含文档部分,用于介绍该库并提供示例代码。这些文档对于深入学习特定库或排查无法正常运行的代码非常有帮助。


## 关于 Python

Python 是一种通用编程语言,可用于编写从小型项目到大型系统的代码。Dropbox、Instagram、Instacart 和 Reddit 等公司都在其生产代码中使用了 Python。该语言有三大核心优势:免费、代码可读性强,以及“自带电池”的设计理念——意味着它可以快速下载并直接使用。大多数情况下,Python 代码的写法几乎与自然语言英语相同。

Course Image

这使得你的代码能从伪代码(仅表达大致想法)转变为真正可执行的程序。Python 还因其丰富的标准库而广受赞誉。所谓“库”或“模块”,就是一组预先写好的代码,你可以重复使用。使用 Python 模块就像请一位你信任的汽车专家来帮你诊断车辆问题——你能借助他们的专业知识,而无需自己去研究故障原因、订购零件或判断问题所在。举个例子,你可以使用内置的 os 模块轻松地将文件从“文档”文件夹移动到“桌面”文件夹。你只需告诉 Python 要移动哪些文件以及目标位置,其余工作都由它自动完成。标准库提供了管理电脑文件、处理日期时间、测量代码运行时间、测试代码等功能模块。

另一个优点是 Python 是开源的,这使得获取他人成果变得极为方便。虽然 Python 的标准库已经很强大,但它的第三方库支持和分发系统更为出色。通过名为 pip 的标准包管理工具,只需一条命令即可安装所需库:pip install library_name。(本课程中你无需关注 pip,但如果你将来在本地安装 Python,了解它会很有用!)你可以借助 Numpy(Numerical Python,发音为 numb-pie)实现强大的数值计算功能,而无需关心底层实现细节。Numpy 提供了一份指南 [1],可将 MATLAB 的语法转换为 Python 语法,方便习惯 MATLAB 的用户过渡。

常言道:“授人以鱼,不如授人以渔。” 学习 Python 编程不仅仅是教人如何捕鱼;更像是教会他们如何选择最合适的获取食物的方式。Python 可能并非完成每件事的最佳工具,但它几乎总是第二好的选择。在这种情况下,能在众多领域都表现良好,远胜于在某个狭窄领域做到极致。作为“样样通”的工具,Python 可用于数据采集、数据处理、可视化展示、保存数据、发布到网页,甚至发送邮件,其灵活性远超 MATLAB。


本课程对工程背景的要求?

本课程假设你具备大学二年级水平的机械与航空航天工程知识,课程中的实例涉及飞机可用推力与所需推力、动压随高度和速度的变化、机翼气动外形、轨道力学与轨道参数,以及不同铝合金材料的力学性能等内容。如果你对这些概念不完全理解,也不必担心,我们会帮助你掌握!

Course Image

如果你熟悉相关工程背景,Python 示例将更容易理解。通过这些工程实例,抽象的面向对象编程理念将转化为真实可操作的项目。例如,当你能够动态调整轨道参数并观察它们对轨道特性的影响时,轨道参数的概念就会变得清晰明了。

本课程不要求任何编程经验。本节将介绍 Python 的基本结构、默认数据类型以及编程规则。这并非全面的计算机科学原理或哲学教程。我们不会深入探讨不同数据类型之间的性能差异,也不会纠结于微小的速度提升。你来这里不是为了把程序快 0.00003 秒,而是为了用 Python 实现有趣的工程应用。同时,我们也会遵循 Python 的最佳实践;某些编码方式可能被“不推荐”,但如果它们能提升代码的清晰度或简化编写过程,我们也会酌情采用。

Python:核心要点