学习Python的7个最佳Github存储库

流行的github存储库,可用于学习Python的基础知识或掌握Python

条条大路通向GitHub。
您可能还记得我曾发表过一篇类似的文章,名为“ GitHub上学习熊猫的四大知识库 ”。在那儿,我说我害怕使用git commit
+ 以外的东西,git push
因为GitHub很可怕。我取得了一些进步:现在,我记得git pull
每当我有新工作时都击中(而不是在尝试推送编辑并意识到我的本地存储库与master分支不是最新时在内部尖叫)。
这次,我决定为Python编写一份类似的学习资源清单!其中一些包含教程风格的Jupyter笔记本,而另一些则包含大量编程问题。根据您偏爱的学习方式,所有这些都有可能有用。
如果您以前从未使用过Python,那么您可能会从具有面向初学者的资源的存储库中受益。如果您已经对Python感到满意,并且希望重新学习某个特定主题,例如算法,那么还有一个适合您的存储库!
Learn-python3 —中级入门(1.8k星)

该存储库在其初学者部分带您浏览19个Jupyter笔记本。它涵盖了诸如字符串和条件之类的基础级别,然后通过讨论类(对面向对象编程的快速介绍),异常(它们是什么以及如何处理它们)以及Python标准中包含的某些功能进行了更深入的介绍。库(日期时间,正则表达式等)。
每个主题都有一个“笔记本”链接,可为您介绍该主题和一些示例代码。完成此操作后,将有一个“练习”链接,可将您带到笔记本电脑,其中包含您可以填写和测试的示例问题。

然后,有一个中间的“惯用语”部分。本节介绍“ Python功能”,这是Python中许多其他编程语言所没有的功能。如果您已经熟悉另一种语言,则可能需要查看本节以获取有关专门使用Python的提示和技巧。例如,有一节专门介绍如何以不同于其他语言的方式处理Python中的循环。

该存储库还具有指向方便的“最佳实践”笔记本的链接,您可以使用该笔记本来了解创建Python项目时应实施哪些实践。它涵盖了诸如设置虚拟环境pipenv
并pytest
用于(您猜对了)测试的过程。
Learn-python —中级入门(3.9k星)

该存储库还可以作为Python的介绍,它可以使您从初学者到中级(而中级的意思是我喜欢使用简单循环和算术之外的语言)。除了使用笔记本之外,存储库还包含Python脚本的集合,每个脚本都是核心类别(如“操作员”,“数据类型”和“控制流”)的子主题。

每个Python文件都演示了相关的子主题,以及您可以访问以获取更多信息的有用链接。如果您不清楚代码的功能并且需要快速回顾一些理论,这将很有帮助。
使用Python文件时,存储库中包含的两个重要功能是测试和样式检查。您可以在“如何使用此存储库”下看到完整的详细信息,但是为了进行测试,作者assert
在主要功能的底部包括带有的行,以查看该功能是否按预期运行。如果您要更改代码并查看其是否仍然正常运行,这将很有用。有关如何实际使用进行测试的说明pytest
。另外,为了养成遵循Python主要样式指南(PEP 8)的习惯,还有进一步的说明供您pylint
在代码上运行,以查看Python文件是否符合样式指南。
正如作者指出的那样,您不必完全遵循该课程,因为您还可以将存储库用作备忘单。您可以简单地找到所需的部分,查看文档,使用代码,然后运行测试并检查代码,以查看其是否正常工作和编写。
full-speed-python —中级入门(2.6k星)

该资料库的特色是一本书,可以快速讲解字符串和列表的基础知识,然后快速进入相对更高级的主题,例如“类”,“协程”和“异步编程”。作者在编写本书时就牢记了一种实用的方法,并通过代码示例简要介绍了每个主题,然后直接跳到练习读者可以自己尝试的问题。
您可以从自述文件链接下载pdf / epub文件,也可以克隆存储库并自行构建。
该作者写道:“分布式计算学生参加软件工程学位成为在两周熟悉Python和可以实现的第三周与插座分布式客户端-服务器应用程序”。如果您已经具有另一种语言的软件工程经验,或者这不是您的第一门编程语言,那么使用本书可能会帮助您快速掌握Python。
python_reference —中级(2.3k星)

该存储库不是具有像以前的存储库这样的概念组的教程式资源。取而代之的是,该存储库更多地是关于中级主题(如“ Python中的SQLite数据库操作”和“通过多处理模块的并行处理”)的不同笔记本的集合。如果您已经在Python上有扎实的基础,那么此资源可能对帮助您真正利用该语言的不同功能很有用。与以前的存储库一样,该存储库还包括带有可编辑和运行代码的笔记本。

恰当命名的“不太明显的Python东西”笔记本(如上代码段)简要介绍了各种Python和Python模块功能,这些功能在您学习绝对基础知识时可能没有学过。您永远都不知道随机提示何时可以帮助您将来的工作。当您刚开始使用Python时,建立深度的理解是很棒的,但是一旦您掌握了足够的基础知识,它就可以帮助您整理不相关的技巧,例如扩大和填补知识方面的空白。
作者还链接了有用的非代码资源,这些资源更多地充当“理论资源”。例如,作者创建了一个名为“ Python中的单元测试-为什么我们要养成习惯”。

作者还链接了他们发现对学习Python有用的许多其他外部资源,包括论坛,书籍和现有的Python项目。例如,Reddit上的r / Python是找到有用的Python技巧以及社区成员展示的个人项目的好地方。
Python编程练习-从入门到高级(10.8k星)

该存储库当前具有一百个Python编程练习,范围从初学者到高级难度。这些问题和解决方案最初是用Python 2编写的,但此后作者更新了所有100个问题,以包括用Python 3编写的解决方案。

如果您已经熟悉Python,那么其中一些问题似乎太简单了。我会说能够解决简单的问题是一回事,而能够解决这些问题则是另一回事。解决所有这些问题,可能与您遵循的在线课程或此处的GitHub存储库中的资源一起进行,可以帮助培训您解决编程练习。
如果您陷入困境,则可以使用每个问题出现的“提示”行来尝试找出解决问题的方法。尽量不要对每个问题向下滚动太远,这样就不会立即看到解决方案,因为尝试找出问题的解决方案的过程可以帮助您真正记住解决方案(而不是仅仅阅读并记住解决方案)。

由不同的作者提出的具有相同问题和替代解决方案的此存储库还有一个“扩展版本”。在这个扩展的存储库中,作者试图展示解决问题的不同方法,这可能比原始解决方案更有效或“ Pythonic”。

编码问题—中级到高级(2.6k星)

就像以前的存储库一样,该存储库包含您可以解决的编程和算法练习的完整列表。但是,不是将所有练习都放在笔记本中,而是该存储库为每个练习提供了一个Python文件,其中描述了问题,然后给出了解决方案。

这些问题并不是从完全的初学者难度开始的,因此,我建议一旦您已经扎实地掌握了基础知识(使用功能,控制流程等)之后,再来研究这些问题。
该作者还写道:“算法和结构,而不是特定语言”。因此,由于该语言的可读性,他用Python编写了解决方案,但是熟悉其他语言的人们也应该能够使用此存储库,以了解如何解决算法问题。
该存储库中的问题并非最初由作者编写,因为他明确指出它们来自诸如LeetCode之类的问题解决站点。他的贡献是提供解决方案和解释,以帮助人们学习如何解决这些类型的问题。
您会发现许多问题可以归为一个主要主题,因此解决这些问题的方法可能有些相似。当您在一个主题中练习相同类型的问题时,您应该发现它们逐渐变得更容易解决。
除了包含算法问题和解决方案的Python文件之外,他还提供了可供您使用的其他资源的完整列表。有许多在线课程,推荐书籍,以及有关编程问题的流行网站的链接。
TheAlgorithms —中级到高级(82.4k星)

该存储库还具有一系列文件,这些文件向您展示如何在Python中实现不同的算法。这些算法分为“算术分析”,“区块链”,“数据结构”等类别。关于如何解决每个问题的解释不多,因为此存储库可以用作实现不同算法的解决方案指南。

某些文件确实为您提供了一些上下文信息(以及一个或两个链接可以帮助您入门),但是在尝试解决这些算法之前,您可能必须自己做一些研究。如果您是Python的新手,我建议您首先构建基础知识,因为此存储库确实适合那些已经熟悉该语言并希望加深他们对算法知识的人。
作者还为其他几种主要语言(Java,C ++,C,Go,Javascript)创建了类似的“学习算法”存储库,您可以在配置文件的固定存储库中进行检查。
GitHub存储库包含大量有价值的学习资源,但这并不意味着您需要使用所有这些资源。我的建议是首先采用“初学者到中级”类型的存储库之一,并研究其中的所有学习资料。您应该在最适合您的学习风格的资源库中进行工作。例如,如果您想学习从基础主题到中级主题的可编辑Jupyter笔记本,则应尝试使用本部分中的第一个存储库。
此外,这两个100+ Python问题非常适合作为入门来解决编程问题。您可以选择每天开始尝试几次,也可以等到首先有了更扎实的Python基础。这些最终可以帮助您建立一些技术性面试中可能遇到的编程问题类型的基础知识。您可以从这些站点升级到HackerRank和LeetCode等站点,这些站点还为您每天解决各种编程问题。他们还可以帮助您准备在特定公司(如Facebook,Amazon和Google)进行面试的机会。
学习Python(以及其他任何东西)都是关于保持动力和练习。Python并非魔术师-制定计划并在适合的情况下使用其中一个存储库(如果不适合,则使用完全不同的存储库)并坚持使用。
你明白了!