• 个性签名
  • 格言大全
  • 名言大全
  • 笑话大全
  • 知识问答
  • 生活家居
  • 星座运势
  • 宝宝起名
  • 休闲爱好
  • 百科大全
  • 怎样学好python编程,怎样学好python

    栏目: 百科 日期:2024-02-06 18:02:33 浏览量(来源:小邵

    [摘要]怎样学好python?Python是一种多功能语言,经常用作Web应用程序的脚本语言,嵌入到软件产品中,以及人工智能和系统任务管理。它既简单又强大,非常适合初学...

    怎样学好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应用的本质就是:

      浏览器发送一个HTTP请求;服务器收到请求,生成一个HTML文档;服务器把HTML文档作为HTTP响应的Body发送给浏览器;浏览器收到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主要的运用途径和领域吗?》,作者:楠羽。

    怎样学好python?

    Python语言这几年大火,在世界编程语言排行中Python也位居第四名,相比2017上升了一位,上面只有Java/C/C++,可以说python凭借自身的简单便捷、面向对象的优势力压了php和js这些同样大热的语言。

    而学习Python有很多好处,无论是大数据、人工智能、、爬虫、安全渗透工具都离不开Pyhton的使用,下面就推荐一下Pyhton的学习方式,帮助更多有兴趣的朋友更好的入门。


    01 思想大于代码

    从思想层面要知道,编程最终最重要的是编程思维,不是代码命令。就是拿到一个项目要怎么做,逻辑怎么设计,这是需要人脑来想象的,其他代码层面忘了可以查文档,初期的练习中一定要结合大量的实践训练,理论初期会比较抽象,没有实操很难掌握,个人建议看下基础知识后直接寻找小项目进行编程练习,碰到难点在去查资料。

    基础知识就是先大概了解下Pyhton的核心知识,比如:数据类型(数字,字符串,列表,元组,字典,集合),条件&循环,文件对象,错误&异常,函数,模块,面向对象编程,这些基本概念,不需要全记住,先过一遍即可,然后进行大量的项目实操。


    02 实战大于理论

    千万不要一个点一个点的死扣,就算看懂了所有知识点,你也不知道如何结合起来,这是编程的大忌,就像学英语一样,你背了5000个单词,自我感觉良好,让你写个文章就不行了,根本不知道如何组合使用才是地道的。

    建议从小项目入手,初期可以使用些简单练习题,比如:你有10000元人们币,存储多少年能达到2万元人们币,一个个小的练习题开始稳固自己的知识和代码能力,然后慢慢使用更大的项目,比如用Django搭建个小型的CMS和BLOG,你会慢慢知道整个web的框架,数据库的调用,前端html/css/img/js的简单调用,这对于以后有很大的帮助。


    03 学习资料分享

    当然,说这么多要有足够的学习资料支撑,所以特意分享一些网站给读者参考,内容都算不错的。


    知识体系架构的搭建可以看下这个网站,将Python的基础知识做成了14张思维导图,对学习者很有帮助。
    https://woaielf.github.io/2017/06/13/python3-all/


    Python教程——廖雪峰,行业里有点口碑的老师,讲的确实不错,比较细致。
    https://www.liaoxuefeng.com/wiki/0014316089557264a6b348958f449949df42a6d3a2e542c000


    runoob是一个常用的网站,里面会有详细代码解释和小练习,做实践稳固基础。
    http://www.runoob.com/python/python-exercise-example100.html


    上一页12下一页