如何在半年时间内,完全靠自学可以从零基础到精通python?

Python是一种多功能语言,经常用作Web应用程序的脚本语言,嵌入到软件产品中,以及人工智能和系统任务管理。它既简单又强大,非常适合初学者和专业程序员。

小宅和大家分享华为云社区之前整理发布的一些免费资料,同时精选了几本高质量的Python书籍,希望对大家有帮助:

一、Python入门

1、在线学习: http://www.runoob.com/python/python-tutorial.html

通过这个链接可以完成:Python安装、环境搭建;Python基本语法的学习和练习

2、疑难问题查文档:https://docs.python.org/3/

二、Python框架

1、Flask

Flask是一个使用Python编写的轻量级Web应用框架。基于Werkzeug WSGI工具箱和Jinja2 模板引擎。Flask也被称为“microframework”,因为它使用简单的核心,用extension增加其他功能。Flask没有默认使用的数据库、窗体验证工具。

2、Django
Django 应该是最出名的Python框架,GAE甚至Erlang都有框架受它影响。Django是走大而全的方向,它最出名的是其全自动化的管理后台:只需要使用起ORM,做简单的对象定义,它就能自动生成数据库结构、以及全功能的管理后台。

三、开发工具PyCharm下载激活

1、下载地址 https://www.jetbrains.com/pycharm/download/

2、注册激活

地址参考https://www.imsxm.com/jetbrains-license-server.html

四、华为云开发者社区,免费学习python

华为云开发者社区提供全面、逐层递进的免费python学习课程,助你扎扎实实学技术(点击每个小标题链接直接开始学习)。

Python入门篇

本课程介绍了Python的“前世今生”和Python的用处;Python的基础使用和Python的开发环境;Python中内置的多种数据类型的特点和使用,以及常见的数据结构的类型;Python中的控制流语句,实现循环和判断。

Python语言进阶

Python语言进阶课程,主要包括Python的函数、模块、面向对象、异常处理、文件处理等内容。

Python进阶篇

本课程将由华为AI专家带您学习Python进阶篇:Python中的如何构造不同的函数并使用;面向对象编程设计模式基础和Python中的面向对象实现;Python中的模块是什么,以及常用的那些内置模块的使用;Python的文件读写操作;Python中的使用小技巧。

Python应用篇

本课程中您将学习到Python的高阶使用:Python正则表达式;Python耳熟能详的工具包使用;学习如何调试程序;Python迭代器、生成器和装饰器的使用;使用Python实现一个网站。

Python开发技能测评(初级)

Python开发技能测评(初级)是对于初级Python开发者的应用技能的测试,包括了:Python基础语法使用、Python应用领域、Python相关开发知识(如爬虫基础、web程序基础和网络编程基础知识)的考核。

Python开发技能测评(中级)

Python开发技能测评(中级),是对于中级Python开发者的应用技能的测试,考核内容主要分为两个部分,Python编程知识:考核开发者对于Python初、高级编程知识的应用;应用部分:考核开发者对于AI、Python爬虫、Python web、数据分析和网络编程等应用领域的知识及工具的使用。

Python开发技能测评(高级)

Python开发技能测评(高级),是对于高级Python开发者的应用技能的测试,考核内容分为以下几个部分:Python基础,考核了Python基础、高级知识、语法糖的使用和数据结构基础知识;应用部分,考核了Python web框架、爬虫框架、socket编程和AI开发知识。该考核需要具备Python开发经验和Python各领域框架使用经验。

Python的奇怪操作

本课程主要介绍Python语言的代码特点,并通过华为云AI开发平台ModelArts进行代码的操作演示。

五、书单推荐

  • Python基础教程(第2版·修订版)

内容涉及的范围较广,结构清晰,深入浅出,通过10个实战项目迅速跨入Python编程大门。既能为初学者夯实基础,又能帮助程序员提升技能,适合各个层次的Python开发人员阅读参考。

  • Python for Data Analysis

本书含有大量的实践案例,你可以学会如何利用各种Python库高效地解决各式各样的数据分析问题。介绍了ipython 、notebook、Numpy、Scipy和Pandas包的使用等,只要掌握了python的基本语法就可以学习。

  • 笨办法学Python 3

本书是一本Python入门书,适合对计算机了解不多,没有学过编程,但对编程感兴趣的读者学习使用。这本书以习题的方式引导读者一步一步学习编程,从简单的打印一直讲到完整项目的实现,让初学者从基础的编程技术入手,最终体验到软件开发的基本过程。

  • Python编程 从入门到实践

本书是一本全面的从入门到实践的Python编程教程,带领读者快速掌握编程基础知识、编写出能解决实际问题的代码并开发复杂项目。 书中内容分为基础篇和实战篇两部分。基础篇介绍基本的编程概念,并指导读者编写整洁且易于理解的代码。实战篇介绍如何利用新学到的知识开发功能丰富的项目,数据可视化实战,Web应用程序。

  • 《Python入门(影印版)(英文版)》

本书容易理解且读起来幽默风趣,对于编程初学者和Python语言新手而言是理想的书籍。作者卢布诺维克带你从基础知识开始,到更加加深入和多样的议题,用混合了教材以及指南风格的代码片段来解释Python 3中的概念。展示了如何通过各种工具和开源代码包,将Python应 用于商业、科学和艺术等领域中。

附上过去一年多在 PyPI 上下载次数最多的 Python 软件包。

1 Urllib3

Urllib3是一个 Python 的 HTTP 客户端,它拥有 Python 标准库中缺少的许多功能:线程安全;连接池;客户端 SSL/TLS 验证;使用分段编码上传文件;用来重试请求和处理 HTTP 重定向的助手;支持 gzip 和 deflate 编码;HTTP 和 SOCKS 的代理支持

2 Six

six 是一个是 Python 2 和 3 的兼容性库。这个项目旨在支持可同时运行在 Python 2 和 3 上的代码库。

它提供了许多可简化 Python 2 和 3 之间语法差异的函数。一个容易理解的例子是six.print_()。在 Python 3 中,打印是通过print()函数完成的,而在 Python 2 中,print后面没有括号。因此,有了six.print_()后,你就可以使用一个语句来同时支持两种语言。

3 Pip

大多数人都知道并且很喜欢 pip,它是 Python 的包安装器。你可以用 pip 轻松地从 Python 包索引和其他索引(例如本地镜像或带有私有软件的自定义索引)来安装软件包。

4 Python-dateutil

python-dateutil模块提供了对标准datetime模块的强大扩展。我的经验是,常规的Python datetime缺少哪些功能,python-dateutil就能补足那一块。

你可以用这个库做很多很棒的事情。其中,我发现的一个特别有用的功能就是:模糊解析日志文件中的日期。

5 Requests

Requests建立在我们的 #1 库——urllib3基础上。它让 Web 请求变得非常简单。相比urllib3来说,很多人更喜欢这个包。而且使用它的最终用户可能也比urllib3更多。后者更偏底层,并且考虑到它对内部的控制级别,它一般是作为其他项目的依赖项。

6 Certifi

近年来,几乎所有网站都转向 SSL,你可以通过地址栏中的小锁符号来识别它。加了小锁意味着与该站点的通信是安全和加密的,能防止窃听行为。Certifi是根证书的一个精选集合,有了它,你的 Python 代码就能验证 SSL 证书的可信度。

7 Idna

根据其 PyPI 页面,idna提供了“对 RFC5891 中指定的应用程序中国际化域名(IDNA)协议的支持。”

据悉,应用程序中的国际化域名(IDNA)是一种用来处理包含非 ASCII 字符的域名机制。但是,原始域名系统已经提供对基于非 ASCII 字符的域名支持。IDNA的核心是两个函数:ToASCII和ToUnicode。ToASCII会将国际 Unicode 域转换为 ASCII 字符串。ToUnicode则逆转该过程。

8 PyYAML

YAML是一种数据序列化格式。它的设计宗旨是让人类和计算机都能很容易地阅读代码——人类很容易读写它的内容,计算机也可以解析它。

9 Pyasn1

一个建议,除非你真的需要,否则还是敬而远之吧。但由于它用在很多地方,因此许多包都依赖这个包。

10 Docutils

Docutils是一个模块化系统,用来将纯文本文档处理为很多有用的格式,例如 HTML、XML 和 LaTeX 等。Docutils能读取reStructuredText格式的纯文本文档,这种格式是类似于 MarkDown 的易读标记语法。

11 Chardet

你可以用chardet模块来检测文件或数据流的字符集。比如说,需要分析大量随机文本时,这会很有用。但你也可以在处理远程下载的数据,但不知道用的是什么字符集时使用它。

12 RSA

rsa包是一个纯 Python 的 RSA 实现。它支持:加密和解密;签名和验证签名;根据 PKCS#1 1.5 版生成密钥。它既可以用作 Python 库,也能在命令行中使用。

13 Jmespath

在 Python 中用 JSON 非常容易,因为它在 Python 字典上的映射非常好,这是它最好的特性之一。JMESPath,发音为“James path”,使 Python 中的 JSON 更容易使用。它允许你声明性地指定如何从 JSON 文档中提取元素。

14 Setuptools

它是用于创建 Python 包的工具。不过,其文档很糟糕。它没有清晰描述它的用途,并且文档中包含无效链接。最好的信息源是这个站点,特别是这个创建 Python 包的指南。

15 Awscli

这里把 #3、#7、#17 和 #22 放在一起介绍,因为它们的关系非常密切。

16 Pytz

像dateutils(#5)一样,这个库可帮助你处理日期和时间。有时候,时区处理起来可能很麻烦。幸好有这样的包,可以让事情变得简单些。

17 Futures

从 Python 3.2 开始,python 提供current.futures模块,可帮助你实现异步执行。futures 包是该库适用于 Python 2 的 backport。它不适用于 Python3 用户,因为 Python 3 原生提供了该模块。

18 Colorama

使用 Colorama,你可以为终端添加一些颜色:

19 Simplejson

原生的json模块有什么问题,才需要这种高级替代方案呢?并没有!实际上,Python 的json就是simplejson。但是simplejson也有一些优点:它适用于更多的 Python 版本;它比 Python 更新的频率更频繁;它有用 C 编写的(可选)部分,因此速度非常快。

为什么这么多人在学Python呢?很多小白都听说Python很火,简单易学,学起来很容易,学习周期短,可是为啥要学Python呢?,下面谈谈我对Python的感悟。

在PC时代大量的嵌入式的设备,底层的代码,底层原理,以及底层逻辑运用,以及桌面的应用都是用C、C++实现的,毋庸置疑它们是最接近底层,对底层有着强大的解释说服力,也是最早的、最快的。随着2000年电商的大规模的兴起,多数人融入到这个大家庭中,逐渐地从PC时代过度到互联网时代,Java开始王者归来,再加上2010移动互联网的爆发Android开始风靡起来,Java更是如日中天,走向了辉煌。那我们现在为什么要学习Python呢?Python到底是用来干什么的?


1、Web开发

Python的诞生历史比Web还要早,由于Python是一种解释型的脚本语言,开发效率高,所以非常适合用来做Web开发,大大提高了做web开发人员的效率。

Python有上百种Web开发框架,有很多成熟的模板技术,选择Python开发Web应用,不但开发效率高,而且运行速度快,加快了时代的发展。

常用的web开发框架有:Django、Flask、Tornado 等。

许多知名的互联网企业或者小型公司将Python作为主要开发语言:豆瓣、知乎、果壳网、Google、NASA、YouTube、Facebook……

由于后台服务器的通用性,除了狭义的网站之外,很多App和游戏的服务器端也同样用 Python实现,来运行,完成相应的工作。

一个Web应用的本质就是:

  1. 浏览器发送一个HTTP请求;
  2. 服务器收到请求,生成一个HTML文档;
  3. 服务器把HTML文档作为HTTP响应的Body发送给浏览器;
  4. 浏览器收到HTTP响应,从HTTP Body取出HTML文档并显示。

所以,最简单的Web应用就是先把HTML用文件保存好,用一个现成的HTTP服务器软件,接收用户请求,从文件中读取HTML,返回。Apache、Nginx、Lighttpd等这些常见的静态服务器就是干这件事情的,完成这些事情的。

如果要动态生成HTML,就需要把上述步骤自己来实现。不过,接受HTTP请求、解析HTTP请求、发送HTTP响应都是苦力活,如果我们自己来写这些底层代码,还没开始写动态HTML呢,就得花个把月去读HTTP规范。

正确的做法是底层代码由专门的服务器软件实现,我们用Python专注于生成HTML文档。因为我们不希望接触到TCP连接、HTTP原始请求和响应格式,所以,需要一个统一的接口,让我们专心用Python编写Web业务。

这个接口就是WSGI:Web Server Gateway Interface。(Web服务器网关接口)

wsgi就是一种规范,它定义了使用web应用程序与Python编写的web服务器程序之间的接口格式。无论多么复杂的Web应用程序,入口都是一个WSGI处理函数。HTTP请求的所有输入信息都可以通过environ获得,HTTP响应的输出都可以通过start_response()加上函数返回值作为Body。

WSGI接口定义非常简单,它只要求Web开发者实现一个函数,就可以响应HTTP请求。我们来看一个最简单的Web版本的“Hello,web!”:


上面的application()函数就是符合WSGI标准的一个HTTP处理函数,它接收两个参数:

  • environ:一个包含所有HTTP请求信息的dict对象;
  • start_response:一个发送HTTP响应的函数。

在application()函数中,调用:


就发送了HTTP响应的Header,注意Header只能发送一次,也就是只能调用一次start_response()函数。start_response()函数接收两个参数,一个是HTTP响应码,一个是一组list表示的HTTP Header,每个Header用一个包含两个str的tuple表示。

通常情况下,都应该把Content-Type头发送给浏览器。其他很多常用的HTTP Header也应该发送。

然后,函数的返回值'<h1>Hello, web!</h1>'将作为HTTP响应的Body发送给浏览器。

有了WSGI,我们关心的就是如何从environ这个dict对象拿到HTTP请求信息,然后构造HTML,通过start_response()发送Header,最后返回Body。

了解了WSGI框架,我们发现:其实一个Web App,就是写一个WSGI的处理函数,针对每个HTTP请求进行响应。

但是如何处理HTTP请求不是问题,问题是如何处理100个不同的URL。

由于用Python开发一个Web框架十分容易,所以Python有上百个开源的Web框架。各种Web框架的优缺点自己去了解一下就可以了,直接选择一个比较流行的Web框架——Flask来使用。

除了Flask,常见的Python Web框架还有:

  • Django:全能型Web框架;
  • web.py:一个小巧的Web框架;
  • Bottle:和Flask类似的Web框架;
  • Tornado:Facebook的开源异步Web框架。

做一个游戏




2、网络爬虫

许多人对编程的热情始于好奇,终于停滞,小有成就就止步于此。

距离真枪实干做开发有技术差距,也无人指点提带,也不知当下水平能干嘛?就在这样的疑惑循环中,编程技能止步不前,而爬虫是最好的进阶方向之一。

网络爬虫是Python比较常用的一个场景,国际上,google在早期大量地使用Python语言作为网络爬虫的基础,带动了整个Python语言的应用发展。以前国内很多人用采集器搜刮网上的内容,现在用Python收集网上的信息比以前容易很多了,如:

  • 从各大网站爬取商品折扣信息,比较获取最优选择;
  • 对社交网络上发言进行收集分类,生成情绪地图,分析语言习惯;
  • 爬取网易云音乐某一类歌曲的所有评论,生成词云;
  • 按条件筛选获得豆瓣的电影书籍信息并生成表格……

应用实在太多,几乎每个人学习爬虫之后都能够通过爬虫去做一些好玩有趣有用的事。

例子:爬取网络上的歌曲



3、人工智能

人工智能是现在非常火的一个方向,AI热潮让Python语言的未来充满了无限的潜力。现在释放出来的几个非常有影响力的AI框架,大多是Python的实现,为什么呢?

因为Python有很多库很方便做人工智能,比如numpy, scipy做数值计算的,sklearn做机器学习的,pybrain做神经网络的,matplotlib将数据可视化的。在人工智能大范畴领域内的数据挖掘、机器学习、神经网络、深度学习等方面都是主流的编程语言,得到广泛的支持和应用。

人工智能的核心算法大部分还是依赖于C/C++的,因为是计算密集型,需要非常精细的优化,还需要GPU、专用硬件之类的接口,这些都只有C/C++能做到,所有c/c++和P相结合就可以实现人工智能。

4、Python的其他应用举例

系统编程:提供API,能方便进行系统维护和管理,Linux下标志性语言之一,是很多系统管理员理想的编程工具。

图形处理:有PIL、Tkinter等图形库支持,能方便进行图形处理。

数学处理:NumPy扩展提供大量与许多标准数学库的接口。

文本处理:Python提供的re模块能支持正则表达式,还提供SGML,XML分析模块,许多程序员利用Python进行XML程序的开发。

数据库编程:程序员可通过遵循PythonDB-API(数据库应用程序编程接口)规范的模块与MicrosoftSQLServer,Oracle,Sybase,DB2,MySQL、SQLite等数据库通信。Python自带有一个Gadfly模块,提供了一个完整的SQL环境。

网络编程:提供丰富的模块支持sockets编程,能方便快速地开发分布式应用程序。很多大规模软件开发计划例如Zope,Mnet及BitTorrent.Google都在广泛地使用它。

Web编程:应用的开发语言,支持最新的XML技术。

多媒体应用:Python的PyOpenGL模块封装了“OpenGL应用程序编程接口”,能进行二维和三维图像处理。PyGame模块可用于编写游戏软件。

黑客编程: Python有一个hack的库,内置了你熟悉的或不熟悉的函数,但是缺少成就感。

以上部分内容分享自华为云社区《【云驻共创】你知道在未来Python主要的运用途径和领域吗?》,作者:楠羽。




1.在家里完全自学可行吗?

在家里用半年的时间,每天抽出来时间去学习python是可行的。但是有一点,没有学习气氛,容易迷茫。如果有自制力而且对python这门语言很喜欢愿意去了解的,坚持。要注意的是,找到合适的路线图去逐步学习,不要在网上随便找到教程就去看去学,学习要系统。不然东一点西一点容易自己把知识学乱。

2.没有数学逻辑和英语能力能学python吗?

初期是可以的,我看了很多人的回答,都说可以的。但是仅仅限于初期~python的语法简捷而清晰,适合入门。如果将来涉及到工作,可能仅仅入门水平真的不够。不过每一个程序员,都在不断的补充自己当中,跟着时代的发展才不会被淘汰。

3.如何不浪费自己的时间去学习python?

第一阶段应该了解的是最基本的核心编程:语法,linux命令等

后面第二阶段所需要了解就是python和linux高级编程了。顺便在这里提一句,看看学python未来的发展方向,是愿意爬虫还是机器还是前端,可以重点去了解哪方面的知识。

接下来的几个阶段就是分块的去学习了,找好自己未来的发展方向。找到重点再去重点学习。

最后一个阶段就是现在很热门的人工智能,如果python的基础知识全部掌握了,可以从机器学先开始。看大家的需要,但是以上所有的知识点,还是对相关的阶段性学习很关键的,希望大家掌握。

以上就是python自学的内容,如果按照上面的阶段步骤去学习的话,不敢保证每个人都能在半年之内python学会,但是一定会节省很多时间的。还有就是每一个python入门者都要面临到的选择,是用哪个版本的问题?2.x还是3.x,这两个版本不兼容,大家可以自己选择,多问问一些大神的意见。祝每一个想转行的朋友们,都能快快落实行动。每一个付出行动的朋友们都能学到知识。




Python编程并不复杂,非常适合零基础学习,学习的初期对数学几乎没有要求,所以并不需要担心数学的事情。早期需要记住一些单词,即使英语不好也不会有很大的影响,但是重要的单词还是要记住的。

学习Python并不需要半年的时间,如果每天都能拿出一定的时间来学习的话,一周左右就能把语法搞清楚,顺便还能做一些小实验。再经过一个综合性的实验基本上就算是入门了。至于精通一门语言,这需要时间和项目的锤炼。如果是自学的话,很难做到精通一门语言,因为实际使用和自学还是有较大的差距。

我个人的建议是这样的,首先到Python官网下载一个Python开发环境,最好下载3.x版本,然后一边学习语法一边做实验,这个过程不要持续太长时间,最好控制在一个月左右。

接下来找一个综合性的实验,比如爬虫,或者数据分析类的实验,从头到尾做一遍。这个过程是熟练Python使用的过程。这之后找一个软件公司实习,实习对程序员是非常重要的。通过实习能接触到真实的项目,通过真实的项目来提高自己的编程能力是学习编程的过程中不可缺少的环节。

我在头条上写了关于Python学习的系列文章,想学习Python的朋友可以关注我,相信一定会有所收获。




Python语法简洁,清晰明了容易上手,而且开发环境的安装非常简单,只需要到Python官网上去下载解压完成,安装即可。把Python作为以后的发展方向也是非常不错的。随着人工智能,大数据,云计算的发展,Python备受关注,Python的应用无处在不在。


在家里学习的话,可以通过看一些比较经典的视频教程来进行学习的。把空余时间充分的利用起来,系统的学习,每天保证一定的代码量,比如说,每天有四个小时以上的写代码的时间,半年是可以学出来的。


学习Python的时候是在“如鹏网”上进行学习的,有网络的地方就可以学习,根据自己的时间来灵活安排学习进度,每个章节的后面都有相应的练习题和面试题,需要通过录音的方式进行提交,有新的课程更新了,也是可以继续来学习的。


Python学习路线图,想系统学习Python,可以作为参考哦

一、Python基础及数据库开发

二、web前端

三、Python web开发及其项目

四、Linux

五、NoSQL

六、数据可视化

七、爬虫技术

八、人工智能




完全依靠个人能力、自学能力来看

如果你之前完全没接触过,想要半年学会python都会比较困难一点,更何况精通,就有点大了。

自己辛苦的,花10%时间看书,10%时间看些视频跟着学,80%时间上机动手编程,把别人代码一个一个敲进去,让他跑起来,看到效果。

如果你有其他计算机编程经历,去学python就会快一些

展开阅读全文

页面更新:2024-05-18

标签:华为   基础   爬虫   人工智能   开发者   语法   应用程序   函数   框架   模块   技能   半年   语言   代码   链接   时间   财经

1 2 3 4 5

上滑加载更多 ↓
推荐阅读:
友情链接:
更多:

本站资料均由网友自行发布提供,仅用于学习交流。如有版权问题,请与我联系,QQ:4156828  

© CopyRight 2020-2024 All Rights Reserved. Powered By 71396.com 闽ICP备11008920号-4
闽公网安备35020302034903号

Top