- 内容介绍
- 如何学习 Python
- 避免的坑是什么?
- 资源
- 编程环境
- 寻求帮助
- 继续学习
很多有梦想的小伙伴想学习Python成功上岸,但是现实是残酷的。本人介绍我自己多年总结的学习技巧,帮助那些迷茫的小伙伴上岸。
Python 已成为机器学习事实上的通用语言。它不是一门难学的语言,但如果你不是特别熟悉这门语言,这里有一些技巧可以帮助你更快或更好地学习。
如何学习 Python学习语言的方法有很多种,自然语言如英语,或编程语言如 Python。婴儿通过听和模仿来学习语言。慢慢地,当他们学会了模式和一些词汇后,他们就可以自己造句了。相反,当大学生学习拉丁语时,他们可能是从语法规则开始的。单数和复数,指示和虚拟,主格和宾格。然后我们可以构建一个拉丁句子。
同样,学习 Python 或任何编程语言,您可以阅读其他人的代码并尝试理解,然后从中进行修改。或者您可以学习语言规则并从头开始构建程序。如果您的最终目标是在语言上工作,例如编写 Python 解释器,后者将是有益的。但通常,前一种方法会更快地获得一些结果。
我的建议是先从例子中学习。但是通过不时地重新审视语言规则来加强你理解语言的基础。让我们看一个维基百科的例子:
def secant_method(f, x0, x1, iterations): """Return the root calculated using the secant method.""" for i in range(iterations): x2 = x1 - f(x1) * (x1 - x0) / float(f(x1) - f(x0)) x0, x1 = x1, x2 return x2 def f_example(x): return x ** 2 - 612 root = secant_method(f_example, 10, 30, 5) print("Root: {}".format(root)) # Root: 24.738633748750722
此 Python 代码正在实施割线方法来查找函数的根。如果你是 Python 新手,你应该做的就是看例子,看看你能理解多少。如果您有其他编程语言的先验知识,您可能会猜测def定义了一个函数。但如果不这样做,您可能会感到困惑,最好从编程初学者书籍开始,了解函数、变量、循环等的概念。
您可能认为可以做的下一件事是修改函数。例如,如果我们不使用割线法求根,而是使用牛顿法呢?您可能会猜到如何修改第 4 行中的方程式来做到这一点。二分法呢?您需要添加一个声明if f(x2)>0来决定我们应该走哪条路。如果我们查看函数f_example,就会看到符号**。这是指数运算符的意思到电源 2 那里。但我们应该是 或者 ? 您需要返回并查看语言手册以查看运算符优先级层次结构。
因此,即使是这样一个简短的示例,您也可以学习很多语言功能。通过学习更多的例子,你可以推断出语法,习惯地道的编码方式,即使你不能详细解释它,你也可以做一些工作。
避免的坑是什么?如果你决定学习 Python,那么从书本上学习是不可避免的。只需从您当地的图书馆中挑选任何一本关于 Python 的初学者书籍即可。但是,当您阅读时,请牢记学习目标的大局。阅读时做一些练习,尝试书中的代码并编写自己的代码。跳过一些页面并不是一个坏主意。从头到尾阅读一本书可能不是最有效的学习方式。你应该防止自己钻得太深,因为这会让你失去使用 Python 做有用事情的更大目标的轨道。诸如多线程、网络套接字、面向对象编程之类的主题可以被视为以后的高级主题。
Python 是一种与其解释器或编译器分离的语言。因此,不同的解释器的行为可能会有所不同。python.org 的标准解释器是 CPython,也称为参考实现。一个常见的替代方案是 PyPy。无论您使用哪一种,您都应该使用 Python 3 而不是 Python 2,因为后者是一种过时的方言。但请记住,Python 在 Python 2 中获得了发展势头,您可能仍然会看到很多 Python 2 程序。
资源阅读资源
如果你不能去图书馆取一本印刷的书,你可以改用一些在线资源。我强烈建议初学者阅读Python 教程。它很短,但会引导您了解语言的不同方面。它让您一目了然地了解 Python 可以做什么,以及如何做。
完成本教程后,您可能应该将 Python Language Reference 和 Python Library Reference 放在手边。您将不时参考它们来检查语法和查找函数用法。不要强迫自己记住每一个功能。
编程环境Python 内置在 macOS 中,但您可能需要安装更新的版本。在 Windows 中,经常会看到人们使用 Anacronda 而不是只安装 Python 解释器。但是如果觉得安装IDE和Python编程环境太麻烦,可以考虑使用Google Colab。这允许您以“笔记本”格式编写 Python 程序。事实上,许多机器学习项目都是在 Jupyter notebook 中开发的,因为它允许我们快速探索解决问题的不同方法并直观地验证结果。
您还可以使用 Python Shell上的在线 shell来尝试一小段代码。与 Google Colab 相比的缺点是您无法保存您的工作。
寻求帮助当您从书中看到的示例开始并对其进行修改时,您可能会破坏代码并使其无法运行。在机器学习示例中尤其如此,其中您有许多代码行,涵盖数据收集、预处理、构建模型、训练、验证、预测以及最终以可视化方式呈现结果。当您从代码中看到错误时,您需要做的第一件事就是指出导致错误的几行。尝试检查每个步骤的输出以确保其格式正确。或者尝试回滚您的代码以查看您所做的哪些更改开始引入错误。
重要的是要犯错误并从错误中学习。当您尝试语法并以自己的方式学习时,您应该不时遇到错误消息。尝试从中理解,然后您将更容易找出导致错误的原因。几乎总是,如果错误来自您正在使用的库,请使用库的文档再次确认您的语法。
如果您仍然感到困惑,请尝试在互联网上搜索。如果您使用的是 Google,则可以使用的一个技巧是在搜索时将整个错误消息放在一对双引号中。或者有时,在 StackOverflow 上搜索可能会给你更好的答案。
继续学习在这里,我为初学者列出了一些提示。如上所述,Python 教程是一个好的开始。在撰写本文时尤其如此,当最近推出 Python 3.9 并引入了一些新语法时。印刷书籍通常不像在线官方教程那样更新。
有很多 Python 入门级书籍:
- 《Python Crash Course》 2019年第二版,作者是Eric Matthes。
- 《Introduction to Computation and Programming Using Python》2021年第三版,作者是John Guttag。
对于更高级的学习者,您可能希望查看更多示例来完成某项工作。一本食谱风格的书可能会有很大帮助,因为您不仅可以学习语法和语言技巧,还可以学习可以完成任务的不同库。
- 《Python Cookbook》2013年第 3 版,作者是 David Beazley 和 Brian K. Jones。