当前位置: 首页 > 科技观察

GitHub学习Python的前7个仓库

时间:2023-03-15 21:07:51 科技观察

条条大路通GitHub。如果您以前从未使用过Python,您可能会受益于包含对初学者友好的资源的存储库。如果您已经熟悉Python并且想学习特定主题(例如算法),那么也有适合您的库。Learn-python3—中级初学者(1800颗星)https://github.com/jerry-git/learn-python3该存储库在其初学者部分带您浏览19个Jupyter笔记本。它涵盖了字符串和条件等基础知识,然后继续讨论类(对面向对象编程的快速介绍)、异常(它们是什么以及如何处理它们)以及Python标准中包含的一些特性库(日期时间、正则表达式等)进行更深入的挖掘。每个主题都有一个“笔记本”链接,可以将您带到主题的介绍和一些示例代码。完成后,还有一个指向“练习”的链接,它会将您带到一个笔记本,其中包含您可以填写和测试的示例问题。https://nbviewer.jupyter.org/github/jerry-git/learn-python3/blob/master/notebooks/beginner/exercises然后,有一个中间的“惯用”部分。本节介绍Python中许多其他编程语言所没有的“Pythonic特性”。如果您已经熟悉另一种语言,则可能需要查看本节以了解使用Python的提示和技巧。例如,有一节介绍在Python中如何以不同于其他语言的方式处理循环。https://jerry-git.github.io/learn-python3/notebooks/intermediate/html/idiomatic_loops.html这个存储库还有指向一个方便的“最佳实践”笔记本的链接,您可以使用它来了解应该实施哪些实践投影时。它涵盖了使用pipenv设置虚拟环境和使用pytest进行测试等内容。Learn-python—中级入门(3.9kstars)https://github.com/trekhleb/learn-python这个库也作为Python的介绍,它可以带你从初学者到中级(我的意思是中级熟练指的是以舒适地使用简单循环和操作之外的语言)。存储库不是使用笔记本,而是Python脚本的集合,每个脚本都是核心类别(例如“运算符”、“数据类型”和“控制流”)的子主题。https://github.com/trekhleb/learn-python/blob/master/src/control_flow/test_if.py每个Python文件都演示了一个相关的子主题,以及您可以访问以获取更多信息的有用链接。如果您不清楚代码的作用并且需要快速回顾一些理论,这将对您有所帮助。使用Python文件时,存储库中包含的两个重要功能是测试和样式检查。你可以在“HowtoUseThisRepository”中看到完整的细节,但是为了测试,我把带有assert的那一行放在了main函数的底部,看看函数的行为是否如它应该的那样,如果你想改变它会是检查代码并查看它是否仍然有效很有用。以下是有关如何使用pytest实际运行测试的说明。此外,为了养成遵循MasterPythonStyleGuide(PEP8)的习惯,还有进一步的说明可让您在代码上运行pylint以查看Python文件是否符合样式指南。您不必完全遵循课程,正如作者指出的那样,您也可以将资源库用作备忘单。您可以简单地找到您正在寻找的部分,查看文档,玩代码,然后运行测试并过滤代码以查看它是否有效以及是否按应有的方式编写。full-speed-python-intermediateentry(2.6kstars)https://github.com/joaoventura/full-speed-python这个存储库提供了一本快速浏览字符串和列表基础知识的书,然后快速深入到相对更高级的主题,例如“类”、“协程”和“异步编程”。作者采用亲身实践的方式阅读本书,通过代码示例简要介绍每个主题,然后直接跳到读者可以自己尝试的练习题。您可以从README文件中的链接下载pdf/epub文件,或克隆存储库并自行构建。“攻读软件工程学位的分布式计算学生会在两周内熟悉Python,并能在第三周内使用套接字实现分布式客户端-服务器应用程序,”作者写道。如果你已经有一些其他语言的软件工程经验,或者这不是你的第一门编程语言,使用本书可能会帮助你快速掌握Python。python_reference—中级(2.3k星)https://github.com/rasbt/python_reference这个存储库不是像以前的存储库那样的概念组的教程资源。相反,这个存储库更多地是关于中级主题的不同笔记本的集合,例如“Python中的SQLite数据库操作”和“通过多处理模块进行并行处理”。如果您已经拥有坚实的Python基础,此资源可能会帮助您真正利用该语言的不同功能。与之前的存储库一样,这个存储库还包括带有可编辑和可运行代码的笔记本。https://nbviewer.jupyter.org/github/rasbt/python_reference/blob/master/tutorials/not_so_obvious_pyth这个名为“不太明显的Python东西”(上面的片段)的笔记本提供了您可能没有学过的各种Python和Python模块功能在学习绝对基础知识的同时。您永远不知道随机提示何时会对您未来的工作有所帮助。当您刚开始使用Python时,最好深入了解它,但是一旦您学习了足够多的基础知识,汇编一些不相关的技巧(例如扩展和填补您的知识空白)会有所帮助。此外,作者链接到一些有用的非代码资源,这些资源更像是一种“理论资源”。例如,作者创建了一个名为“Python中的单元测试——为什么我们应该养成习惯”的资源。https://github.com/rasbt/python_reference/blob/master/tutorials/unit_testing.md作者还链接到他们发现对学习Python有用的许多其他外部资源,包括论坛、书籍和现有的Python项目。例如,Reddit上的r/Python是查找有用的Python技巧以及社区成员展示的个人项目的好地方。Python编程练习-从入门到高级(10.8kstars)https://github.com/zhiwehu/Python-programming-exercises这个资源库目前有上百个Python编程练习题,难度从初级到高级。这些问题和解决方案最初是用Python2编写的,但作者已经更新了所有100个问题以包括用Python3编写的解决方案。如果您已经熟悉Python,其中一些问题可能看起来太简单了。我会说能够解决简单的问题是一回事,但能够快速解决它们又是另一回事。通过研究在线课程或GitHub存储库中的资源来了解所有这些问题可以帮助您准备解决编程练习的培训。如果您遇到困难,您可以使用每个问题出现的“提示”行来尝试找出解决方法。尽量不要对每个问题向下滚动太多,以免立即看到问题的解决方案,因为尝试找到问题解决方案的过程会帮助你真正记住问题的解决方案(而不是只看并记住它)。这个存储库还有一个“扩展版本”,由不同的作者编写,具有相同的问题和替代解决方案。在这个扩展库中,作者试图展示解决问题的不同方法,这些方法可能比原始解决方案更有效或更“Pythonic”。coding-problems-中级到高级(2600颗星)https://github.com/MTrajK/coding-problems与之前的存储库一样,这个存储库包含一个完整的编程和算法练习列表,您可以解决这些问题。然而,这个存储库没有将所有练习都放在笔记本中,而是为每个练习提供一个Python文件,其中包含问题描述和解决方案。这些问题的入门难度都不是初学者级别,所以我建议您在扎实基础知识(使用函数,控制流等)之后再做这些问题。作者还写道,“算法和结构,而不是特定于语言的”。正因为如此,他用Python写了解决方案,因为这种语言的可读性很强,但熟悉其他语言的人应该也可以使用这个存储库来查看如何处理算法问题。这个repository中的问题不是作者原创的,因为他明确表示这些问题来自LeetCode等做题网站。他的贡献是提供解决方案和解释,帮助人们学习如何解决这类问题。你会发现很多问题都可以归为一个主题,因此这些问题的解决方案可能有些相似。当你在一个主题中不断练习相同类型的问题时,你会发现这些问题逐渐变得更容易解决。除了Python文档中的算法问题和解决方案外,他还包含一个完整的其他资源列表供您使用。有大量的在线课程、推荐书籍以及指向编程问题的热门网站的链接。TheAlgorithms—中级到高级(82.4k星)https://github.com/TheAlgorithms/Python此存储库还提供了一组文档,向您展示如何在Python中实现不同的算法。这些算法的范围从“算术分析”到“区块链”再到“数据结构”等等。对于如何解决每个问题没有太多解释,因为这个存储库用作实现不同算法的解决方案指南。有一些文档确实为您提供了一些上下文(以及一两个链接,以帮助您入门),但您可能希望在尝试解决这些算法之前自己进行一些研究。如果您是Python的新手,我建议您首先建立基础知识,因为这个存储库确实是为那些已经熟悉该语言并想加深他们的算法知识的人准备的。作者还为其他一些主要语言(Java、c++、C、Go、Javascript)创建了类似的“学习算法”存储库,您可以在配置文件的固定存储库中查看。GitHub存储库包含大量有价值的学习资源,但这并不意味着您需要使用所有这些资源。我的建议是从“初级到中级”类型的数据库开始,通读其中的所有学习材料。您应该研究最适合您学习风格的资源库。例如,如果您想通过可编辑的Jupyter笔记本从基础到中级主题学习,您应该尝试这个第一个存储库。另外,这两道100+Python题非常适合作为解决编程问题的入门。你可以选择开始每天尝试一些,或者等到你的Python基础更加扎实。这些最终可以帮助您为技术工作面试中可能出现的编程问题类型建立一些基本知识。您可以从这些站点进阶到像HackerRank和LeetCode这样的站点,这些站点提供日常编程问题来解决。他们还可以帮助您准备特定公司的工作面试,例如Facebook、亚马逊和谷歌。学习Python(以及其他任何东西)需要动力和实践。Python并不神奇——制定一个计划,如果适合你就使用这些存储库之一(或者如果不适合则使用完全不同的东西),然后坚持下去。