零基础Python学习路线,从入门到进阶(开源项目&工具分享)

19 篇文章 0 订阅
10 篇文章 0 订阅

0.前言

这是一篇关于如何成为python开发者学习路线图的非常规咆哮体文章,也是一篇Python 入门指南,针对那些没有任何编程经验,从零开始学习 Python 的同学。不管你学习的出发点是兴趣驱动、拓展思维,还是工作需要、想要转行,都可以此文作为一个参考。

在这个信息爆炸的时代,以 “Python入门” 为关键字搜索出的结果成千上万,不关注公众号“超乎想象”进行学习,你可能落伍了。不少小白选手难免会东一榔头西一棒槌,最终看了很多文章,却仍没跨过新手那道门槛。

结合自身的学习经验以及与很多自学者的沟通了解,整理了一份可操作性较强的Python 自学路线

内容依然是从入门到进阶,既有教程,也有经典书籍推荐,还有实战开源项目。

Python 的发展方向还是挺多的,比如服务端开发,爬虫,数据分析,机器学习等,本文推荐的内容全部是服务端开发,Web 开发方向。

主要分为以下几个部分:

  • 文档教程
  • 书籍推荐
  • Web 开发
  • 开源项目
  • 实用工具
  • 技术社区和博客

1.文档教程

1.1 Python 官方文档

网站地址: https://docs.python.org/zh-cn/3/

Python 的官方文档,支持简体中文语言,可以切换 Python 版本,根据不同版本看对应的内容,包括教程,标准库,安装使用等。有什么能比官方文档更好呢?

1.2 廖雪峰 Python 教程

网站地址: https://www.liaoxuefeng.com/wiki/1016959663602400

很多程序员对廖雪峰这个名字应该并不陌生,对他的个人网站应该也不陌生。这个 Python 教程对于编程新手非常友好,内容基础,全面,而且还有完整的示例。

其实,从阅读量也能看得出来,这个教程真的很多人读。

1.3 菜鸟教程 - Python 基础教程

网站地址: https://www.runoob.com/python/python-tutorial.html

这个网站就不需要多介绍了吧,很多编程语言的入门教程都可以在这里找到。平时写代码过程中,某个知识点忘了,也可以到这里查。

1.4 Python 在线手册

网站地址: https://docs.pythontab.com/

一个导航类学习网站,除了 Python,还有 Django,Flask 等等,可以选择自己感兴趣的技术来学习。

1.5 The Hitchhiker’s Guide to Python

网站地址: https://docs.python-guide.org/

这是一份新手和进阶人员都可以读的教程,内容从安装,虚拟环境搭建开始讲起,然后介绍 Python 最佳实践和实战,比如如何构建项目,网络开发,Web 开发等。

现在已经出实体书了,不过,我觉得看这份教程也足够了。毕竟,白漂就是爽。

1.6 learn-python

网站地址: https://github.com/trekhleb/learn-python

一份以代码和注释方式讲解 Python 的免费教程。

每段 Python 程序都会按不同主题进行分类,而且每个基础语法和知识点都采用可以运行的代码为例进行讲解,再配上适当的注释和参考资料,让你快速上手。

2.书籍推荐

授人以鱼不如授人以渔,首先推荐一个网站:

网站地址: https://pythonbooks.org/

这是一个专门推荐 Python 书籍的网站,会按照书籍的流行度来排名,并且按不同功能进行分组。比如说入门书籍,进阶书籍,或者 Web 开发类书籍,机器学习类书籍等。

网站内容是每个月更新一次,闲暇时间的话可以来逛一逛,然后根据自己的水平和学习方向来选择书籍,还是挺不错的。

下面介绍我推荐的书籍,虽然分了入门和进阶,但是很多书中这两部分内容是都包含了的。大家看的时候可以根据自己的情况,先打好基础,再进行进阶。

入门:

2.1《Python编程:从入门到实践(第2版)》

本书是一本非常基础的 Python 入门书,手把手教,编程小白都能看得懂。

全书分两部分:

第一部分介绍 Python 编程所必须了解的基本概念,包括 matplotlib、NumPy 和 Pygal 等强大的 Python 库和工具,以及列表、字典、if 语句、类、文件与异常、代码测试等内容;

第二部分将理论付诸实践,讲解如何开发三个项目,包括简单的 Python 2D 游戏开发,如何利用数据生成交互式的信息图,以及创建和定制简单的 Web 应用,并帮读者解决常见编程问题和困惑。

2.2《"笨办法"学Python 3》

本书是一本 Python 入门书籍,适合对计算机了解不多,没有学过编程,但对编程感兴趣的读者学习使用。

这本书以习题的方式引导读者一步一步学习编程,从简单的打印一直讲到完整项目的实现,让初学者从基础的编程技术入手,最终体验到软件开发的基本过程。

2.3《Python基础教程(第3版)》

久负盛名的 Python 入门经典,中文版累计销量 20+ 万册,这一版是针对 Python3 的全新升级。

本书包括 Python 程序设计的方方面面:

首先,从 Python 的安装开始,随后介绍了 Python 的基础知识和基本概念,包括列表、元组、字符串、字典以及各种语句。

然后,循序渐进地介绍了一些相对高级的主题,包括抽象、异常、魔法方法、属性、迭代器。

此后,探讨了如何将 Python 与数据库、网络、C 语言等工具结合使用,从而发挥出 Python 的强大功能,同时介绍了 Python 程序测试、打包、发布等知识。

最后,作者结合前面讲述的内容,按照实际项目开发的步骤向读者介绍了10个具有实际意义的Python项目的开发过程。

2.4《Python学习手册(第4版)》

这本书全面、深入地介绍了 Python 语言,不管你是编程新手还是 Python 初学者,它将帮助你快速实现使用 Python 编写高质量,且易于与其他语言和工具集成的代码。

本书每一章都是关于 Python 语言独立的内容,并且带有练习和测试,还有众多带注释的示例和图表,简单易学,适合入门。

2.5《Python Cookbook 中文版(第 3 版)》

本书覆盖了 Python 应用中的很多常见问题,并提出了通用的解决方案,写作的套路就是,先提出问题,再来解决。书中包含了大量实用的编程技巧和示例代码,并在 Python 3.3 环境下进行了测试,可以很方便地应用到实际项目中去。

非常适合具有一定编程基础的Python程序员阅读参考。

进阶:

2.6《Python核心编程(第 3 版)》

本书是经典畅销图书《Python核心编程(第二版)》的全新升级版本。作者根据 Python 3.0 版本的种种变化,全面改写了书中内容。

整体章节编排来看,涉及的知识点比较多,内容也比较杂,包括网络编程,GUI 编程,数据库编程等,适合有一定编程经验的人,针对特定需求进行阅读。

2.7《深入理解Python特性》

对语言了解的越多,用起来就越顺,本书只有不到 200 页,这在技术书籍里是很少见的,可以作为《流畅的Python》的开胃菜。

这本书将通过简单的示例和分步说明来介绍 Python 的最佳实践以及 Python 代码的强大魅力。借助本书,你将专注于真正重要的实践技能,在 Python 的标准库中发现「隐藏的金子」。

2.8《流畅的Python》

本书由奋战在 Python 开发一线近 20 年的 Luciano Ramalho 执笔,Victor Stinner、Alex Martelli 等 Python 大咖担纲技术审稿人,从语言设计层面剖析编程细节,教你写出风格地道的 Python 代码。

对于想要扩充知识的中级和高级 Python 程序员来说,这本书是充满了实用编程技巧的宝藏。

2.9《Effective Python:编写高质量 Python 代码的59个有效方法》

很薄的一本书,但看过之后一定会大有收获。

用 Python 编写程序是相当容易的,但若想掌握 Python 所特有的优势、魅力和表达能力,则相当困难,而且语言中还有很多隐藏的陷阱,容易令开发者犯错。

本书可以帮你掌握真正的 Pythonic 编程方式,令你能够完全发挥出 Python 语言的强大功能,并写出健壮而高效的代码

2.10《Python高手之路》

本书是偏向于工程实践的一本书,作者分享了很多个人的实战开发经验。

从如何开始一个新的项目讲起,首先是整个项目的结构设计,对模块和库的管理,如何编写文档,进而讲到如何分发,以及如何通过虚拟环境对项目进行测试。

此外,还涉及了很多高级主题,如性能优化、插件化结构的设计与架构等。

3.Web 开发

提到 Python 的 Web 框架,第一反应就是老三样,Django,Flask 和 Tornado。如果按流行度来排名的话,应该也是这个顺序。

在 2016 年,发布了一款 Web 框架,叫 Sanic,表现还不错,应该算是后起之秀。

3.1 Django

项目地址: https://github.com/django/django

Python 中最流行的 Web 框架,功能非常全面,像安全认证,URL Routing,模板引擎,ORM,甚至 Admin 管理后台,全部包括。

3.2 Flask

项目地址: https://github.com/pallets/flask

也是非常流行的一个 Web 框架,它的特定是轻便,灵活,可定制性强。

用户可以根据自己的需求来添加相应的功能,在保持核心功能简单的同时,实现功能的丰富与扩展,其强大的插件库可以让用户实现个性化的网站定制,开发出功能强大的网站。

3.3 Bottle

项目地址: https://github.com/bottlepy/bottle

一个简单高效的遵循 WSGI 的微型 Web 框架。说微型,是因为它只有一个文件,除 Python 标准库外,它不依赖于任何第三方模块。

这个框架使用的比较少,不过源码也很少,如果想读源码的话,从它入手倒是一个不错的选择

3.4 Tornado

项目地址: https://github.com/tornadoweb/tornado

Tornado 是一个基于 Python 的 Web 服务框架和异步网络库,通过利用非阻塞网络 I/O, 可以承载成千上万的活动连接。在需要长连接的场景下使用,效果会更好。

3.5 Sanic

项目地址: https://github.com/sanic-org/sanic

2016 年 5 月发布的第一个版本,整体表现还是不错的,使用的人也越来越多。

Sanic 是 Python3.7+ Web 服务器和 Web 框架,旨在提高性能。它允许使用 Python3.5 中添加的 async/await 语法,可以使代码有效的避免阻塞从而达到提升响应速度的目的。

4.开源项目

阅读开源项目对提高编程水平是很有帮助的,下面推荐的开源项目有的是我读过的,有的是正准备读的。

说实话,有的时候看到好的开源项目会非常自卑,为什么人家就能写出那么优雅的代码,而自己写的是如此垃圾。可能这就是程序员成长的必经之路吧。

4.1 alive-progress

项目地址: https://github.com/rsalmei/alive-progress

一个用 Python 实现的非常炫酷的进度条项目。

4.2 python-patterns

项目地址: https://github.com/faif/python-patterns

使用 Python 实现一些设计模式的例子。

学语言的同时可以学习一些设计模式,在开发过程中使用恰当的设计模式,可以使自己的代码更加优雅。

4.3 peewee

项目地址: https://github.com/coleifer/peewee

Peewee 是一个小型的 ORM 项目,整体规模不大,更容易学习。

如果想看 Django 源码,不妨从 Peewee 入手。

4.4 flask-sqlalchemy

项目地址: https://github.com/pallets/flask-sqlalchemy

Flask-SQLAlchemy 是一 个Flask 扩展,简化了在 Flask 程序中使用 SQLAlchemy 的操作。

4.5 awesome-django-cn

项目地址: https://github.com/haiiiiiyun/awesome-django-cn

又看到 awesome 了,这个项目收集了大量 Django 相关的优秀应用、项目等资源,方便 Django 用户参考查阅。

4.6 500lines

项目地址: https://github.com/aosabook/500lines

这真的是一本神书,在网上也有很多人推荐。它包含了十几个不同章节,比如 ci,crawler,ocr 等,每个章节都由该领域大牛完成。

它的厉害之处就在于每个章节都试图用 500 行,甚至更少的代码去实现相应功能。如果仔细研究各个章节的代码,一定会对 Python 有更深刻的理解。

4.7 requests

项目地址: https://github.com/psf/requests

Kenneth Reitz 大神的成名之作,如果想读 Python 源码的话,那一定要看,感受一下什么是真正的 Pythonic 代码。

在这里再推荐一份 Requests 源码阅读清单,可以作为参考。

https://github.com/wangshunping/read_requests

4.8 awesome-python

网站地址: https://github.com/vinta/awesome-python

跟大家分享一个小技巧,看到项目名中带有 awesome,那说明这个项目一定不简单。

awesome-python 是 vinta 发起维护的 Python 资源列表,内容包括:Web 框架、网络爬虫、网络内容提取、模板引擎、数据库、数据可视化、图片处理、文本处理、自然语言处理、机器学习、日志、代码分析等。

看过这个项目,那一定会感叹,知识太多了,根本学不完。

5.实用工具

5.1 Python Tutor

网站地址: http://www.pythontutor.com/

Python Tutor 是由 Philip Guo 开发的一个免费教育工具,可帮助学生攻克编程学习中的基础障碍,理解每一行源代码在程序执行时在计算机中的过程。

通过这个工具,可以直接在 Web 浏览器中编写 Python 代码,并逐步可视化地运行程序。

如果你不知道代码在内存中是如何运行的,不妨把它拷贝到 Tutor 里可视化执行一遍,加深理解。

5.2 IPython

网站地址: https://ipython.org/

IPython 是一个 for Humans 的 Python 交互式 shell,用了它之后你就不想再用自带的 Python shell 了。

IPython 支持变量自动补全,自动缩进,内置了许多实用功能和函数,同时它也是科学计算和交互可视化的最佳平台。

5.3 online-python

网站地址: https://www.online-python.com/

这个没什么可说的,在线编辑和运行代码。

6.技术社区和博客

  • Python 中文开发者社区
  • Python 之禅
  • Python 之美
  • Planet Python
  • Armin Ronacher's Thoughts and Writings

学习编程并不是一蹴而就,而是需要长期的坚持和训练。整理这份学习路线,是希望和大家共同进步。不管是编程新手,还是需要进阶的有一定经验的程序员,我相信都可以从中有所收获。

文中涉及到的资源和思维导图源文件都可以免费分享了,大家可以【下方】自取。

 以上就是本文的全部内容,希望这篇文章对你有帮助,也希望能帮到大家,因为你我都是热爱python的编程语言爱好者

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 要成为一个Python的大牛,需要通过一系列实战经验来不断。 首先,我们需要从菜鸟开始,学习基本的语法和常用库。掌握Python的基本语法、变量、数据类型、条件语句和循环语句等是必不可少的。此外,还要熟悉常用的Python库,如NumPy、Pandas和Matplotlib等,这些库在数据处理和可视化方面都非常常用。 接下来,我们需要通过实战来巩固所学的知识。可以选择一些小项目来实践,比如编写一个简单的Web应用、爬取网页数据或者创建一个简单的机器学习模型。通过实际应用,可以提升对Python的实际运用能力。 在实战过程中,我们需要积累并解决一些常见的问题。这些问题可能涉及到代码的优化、调试、性能优化等方面。通过解决这些问题,我们可以提升自己的编程能力,并且学会更高效地利用Python来解决实际问题。 另外,为了一步提升自己的水平,可以参与开源项目或者自己创建项目。通过参与开源项目,可以学习到更多高级的编程技术和实践经验。同时,创建自己的项目有助于锻炼独立思考和解决问题的能力。 除了对Python语言的掌握外,我们还需要了解相关的领域知识。比如,在数据科学领域,需要学习统计学、机器学习和数据挖掘等知识。通过将Python与领域知识相结合,可以在相关领域中发挥更大的作用。 总而言之,成为一个Python的大牛需要不断地实践和学习。通过不断地积累实战经验,掌握并解决常见问题,参与开源项目或者自己创建项目,同时结合相关领域的知识,多角度地深入学习Python。这样的之路需要耐心和毅力,但最终将能够取得令人骄傲的成果。 ### 回答2: Python是一门广泛应用于软件开发和数据分析的编程语言,具有简洁易学、功能强大的特点,因此非常适合初学者入门。然而,要想从菜鸟到大牛,需要不断拓展知识,提升技能。 首先,要全面掌握Python基础知识,包括语法、数据类型、条件语句、循环语句等。可以通过阅读相关书籍、教程、参加培训班等方式学习。 其次,理解面向对象编程(OOP)是的关键。Python是一门支持OOP的语言,掌握面向对象的概念和用法可以使代码更加模块化和可重用。可以通过练习编写类和对象,深入理解继承、封装和多态等概念。 另外,掌握Python标准库和第三方库也是提升的必要条件。标准库包含了许多常用的模块和函数,如操作文件、网络编程、并发等。同时,第三方库可以满足更具体的需求,如数据分析(NumPy、Pandas)、机器学习(Scikit-learn、TensorFlow)等。可以通过实践项目和参与开源社区来积累经验和熟悉常用的库。 此外,代码优化和性能调优也是的一环。良好的代码结构、规范的命名和注释可以提高代码的可读性和可维护性。同时,了解性能优化的技巧和工具可以提高程序的执行效率。 最后,实际项目经验是从菜鸟到大牛的关键。通过实践解决真实的问题,遇到的挑战和解决方案都可以让你不断成长。可以自己找项目实践,也可以参与开源项目、参加比赛等方式来积攒经验。 总的来说,的过程需要坚持不懈的学习和实践,并且保持持续学习的动力。不断总结和思考,参与开源社区和技术讨论也可以获得更多的启发和帮助。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值