快捷搜索:  as  test

适合新人练手的几个python实战项目,理解更深刻(

媒介

Python当下真的很火。Python实战项目,也不停尤为关注,接下来,和大年夜家先容下十个Python练手的实战项目

python项目演习一:即时标记

这是《python根基教程》后面的实践,照着写写,一方面是来认识python的代码要领,另一方面是演习应用python中的基础的以及非基础的语法,做到熟能生巧。

这个项目一开始对照简单,不过重构之后就有些繁杂了,然则更机动了。

按照书上所说,重构之后的法度榜样,分为四个模块:处置惩罚法度榜样模块,过滤器模块,规则(着实应该是处置惩罚规则),语法阐发器。

先来说处置惩罚法度榜样模块,这个模块的感化有两个,一个是供给那些固定的html标记的输出(每一个标记都有start和end),另一个是对这个标记输出的开始和停止供给了一个友好的造访接口。来看下法度榜样handlers.py:

这个法度榜样堪称是全部“项目”的基石所在:供给了标签的输出,以及字符串的调换。理解起来也对照简单。

再来看第二个模块“过滤器”,这个模块更为简单,着实便是一个正则表达式的字符串。相关代码如下:

这便是三个过滤器了,分手是:强调牌过滤器(用×号标出的),url牌过滤器,email牌过滤器。认识正则表达式的同砚理解起来是没有压力的。

再来看第三个模块“规则”,这个模块,抛开那祖父类不说,其他类应该有的两个措施是condition和action,前者是用来判断读进来的字符串是不是相符自家规则,后者是用来履行操作的,所谓的履行操作便是指调用“处置惩罚法度榜样模块”,输出前标签、内容、后标签。 来看下这个模块的代码,着实这个里面几个类的关系,画到类图里面看会对照清晰。 rules.py:

弥补utils.py:

总结一下:

着末隆重的来看下“语法阐发器模块”,这个模块的感化着实便是和谐读入的文本和其他模块的关系。在往重点说便是,供给了两个寄放“规则”和“过滤器”的列表,这么做的好处便是使得全部法度榜样的机动性获得了极大年夜的前进,使得规则和过滤器变成的热插拔的要领,当然这个也归功于前面在写规则和过滤器时每一种类型的规则(过滤器)都零丁的写成了一个类,而不是用if..else来区分。 看代码:

这个模块里面的处置惩罚思路是,遍历客户端(也便是法度榜样履行的进口)给插进去的所有的规则和过滤器,来处置惩罚读进来的文本。

有一个细节的地方也要说一下,着实是和前面写的呼应一下,便是在遍历规则的时刻经由过程调用condition这个器械来判断是否相符当前规则。

我感觉这个法度榜样很像是敕令行模式,有空可以复习一下该模式,以维持影象网节点的牢靠性。

着末说一下我以为的这个法度榜样的用途:

1、用来做代码高亮阐发,假如改写成js版的话,可以做一个在线代码编辑器。

2、可以用来进修,供我写博文用。

还有其他的思路,可以留下您的真知灼见。

弥补一个类图,很简陋,然则应该能阐明之间的关系。别的我照样建议假如看代码捋不清关系最好自己画图,自己画图才能认识全部布局。

python项目演习二:画幅好画

这是《python根基教程》中的第二个项目,关于python操作PDF

涉及到的常识点

1、urllib的应用

2、reportlab库的应用

这个例子实在很简单,不过我发明在python里面可以直接在数组[]里面写for轮回,真是越用越方便。

下面是代码:

python项目演习三:万能的XML

这个项目的名称与其叫做万能的XML不如叫做自动构建网站,根据一份XML文件,天生对应目录布局的网站,不过只有html照样太过于简单了,假如如果可以连带天生css那就对照强大年夜了。这个有待后续研发,先来钻研下怎么html网站布局。 既然是经由过程XML布局天生网站,那所有的工作都应该由这个XML文件来。先来看下这个XML文件,website.xml:

有了这个文件,下面应该来看怎么经由过程这个文件天生网站。

首先我们要解析这个xml文件,python解析xml和在java中一样,有两种要领,SAX和DOM,两种处置惩罚要领不合点在于速率和范围,前者考究的是效率,每次只处置惩罚文档的一小部分,快速而能有效的使用内存,后者是相反的处置惩罚要领,先把所有的文档载入到内存,然后再进行处置惩罚,速率对照慢,也对照耗损内存,独一的好处便是可以操作全部文档。

在python中应用sax要领处置惩罚xml要先引入xml.sax中的parse函数,还有xml.sax.handler中的ContentHandler,后面的这个类是要和parse函数来共同应用的。应用要领如下: parse('xxx.xml',xxxHandler),这里面的xxxHandler要承袭上面的ContentHandler,不过只要承袭就行,不必要有所作为。 然后这个parse函数在处置惩罚xml文件的时刻,会调用xxxHandler中的startElement函数和endElement函数来一个xml中的标签的开始和停止,中心的历程应用一个名为characters的函数来处置惩罚标签内部的所有字符串。

有了上面的这些熟识,我们已经知道若何处置惩罚xml文件了,然后再来看那个罪责的泉源website.xml文件,阐发其布局,只有两个节点:page和directory,很显着page表示一个页面,directory表示一个目录。

以是处置惩罚这个xml文件的思路就变的清晰了。读取xml文件的每一个节点,然后判断是page照样directory假如是page则创建html页面,然后把节点中的内容写到文件里。假如碰到directory就创建一个文件夹,然后再处置惩罚其内部的page节点(假如存在的话)。

下面来看这部分代码,书中的实现对照繁杂,对照机动。先来看,然后在阐发。

看起来这个法度榜样上面阐发的繁杂了一些,不过伟人毛毛说过,任何繁杂的法度榜样都是纸老虎。那我们再来阐发一下这个法度榜样。

首先看到这个法度榜样是有两个类,着实完全可以算作一个类,由于有了承袭。

然后再来看它多了些什么,除了我们阐发出来的startElement和endElement以及characters,多出来了startPage,endPage;startDirectory,endDirectory;defaultStart,defaultEnd;ensureDirectory;writeHeader,writeFooter;和dispatch,这些个函数。除了dispatch,前面的函数都很好理解,每一对函数都是纯真的处置惩罚对应的html标签以及xml节点。而dispatch对照繁杂,繁杂之处在于他是用来动态拼合函数并且进行履行的。

dispatch的处置惩罚思路是,首先根据通报的参数(便是操作名称以及节点名称)判断是否存在对应的函数如startPage,假如不存在则履行default+操作名称:如defaultStart。

一个函数一个函数搞清楚之后,就知道全部处置惩罚流程是什么样了。起开创建一个public_html的文件,寄放全部网站,然后读xml的节点,经由过程startElement和endElement调用dispatch进行处置惩罚。然后便是dispatch怎么调用详细的处置惩罚函数了。 到此为止,这个项目算是阐发完了。

主要掌握的内容一个是python中应用SAX处置惩罚XML,另一个便是python中的函数的应用,比如getattr,传参数时的星号……

python项目演习四:新闻聚合

书中的第四个演习,新闻聚合。现在很少见的一类利用,至少我从来没有用过,又叫做Usenet。这个法度榜样的主要功能是用来从指定的滥觞(这里是Usenet新闻组)网络信息,然后讲这些信息保存到指定的目的文件中(这里应用了两种形式:纯文本和html文件)。这个法度榜样的用场有些类似于现在的博客订阅对象或者叫RSS订阅器。

先上代码,然后再来一一阐发:

这个法度榜样,首先从整体长进行阐发,重点部分在于NewsAgent,它的感化是存储新闻滥觞,存储目标地址,然后在分手调用滥觞办事器(NNTPSource以及SimpleWebSource)以及写新闻的类(PlainDestination和HTMLDestination)。以是从这里也看的出,NNTPSource是专门用来获取新闻办事器上的信息的,SimpleWebSource是获取一个url上的数据的。而PlainDestination和HTMLDestination的感化很显着,前者是用来输出获取到的内容到终真个,后者是写数据到html文件中的。

有了这些阐发,然后在来看主法度榜样中的内容,主法度榜样便是来给NewsAgent添加信息源和输出目的地址的。

着末,想进修Python的小伙伴们:

这里有我自己收拾了一套最新的python系统进修教程,包括从根基的python脚本到web开拓、爬虫、数据阐发、数据可视化、机械进修等。送给正在进修python的小伙伴!这里是python进修者凑集地,迎接初学和进阶中的小伙伴!

来V性公粽号:“速学Python”,拿Python进修资料

python进修资料

您可能还会对下面的文章感兴趣: