前言

Python 是一种极具可读性和通用性的编程语言。Python 这个名字的灵感来自于英国喜剧团体 Monty Python,它的开发团队有一个重要的基础目标,就是使语言使用起来很有趣。Python 易于设置,并且是用相对直接的风格来编写,对错误会提供即时反馈,对初学者而言是个很好的选择。

Python 是一种多范式语言,也就是说,它支持多种编程风格,包括脚本和面向对象,这使得它适用于通用目的。随着越来越多地在工业中,被诸如联合太空联盟(NASA 的主要飞机支持承包商)和工业光魔(VFX 和卢卡斯影业的动画工作室)等组织使用,Python 为那些寻求额外编程语言的人提供了巨大的潜力 。

当一个重要的被称为 comp.lang.python 的 Python 新闻组在 1994 年形成时,Python 的用户基础不断增长,这为 Python 成为开源开发中最受欢迎的编程语言之一铺平了道路。

Python当下真的很火。Python实战项目,也一直尤为关注,接下来,和大家介绍下Python练手的实战项目。

python项目练习一:即时标记

这是《python基础教程》后面的实践,照着写写,一方面是来熟悉python的代码方式,另一方面是练习使用python中的基本的以及非基本的语法,做到熟能生巧。

这个项目一开始比较简单,不过重构之后就有些复杂了,但是更灵活了。

按照书上所说,重构之后的程序,分为四个模块:处理程序模块,过滤器模块,规则(其实应该是处理规则),语法分析器。

先来说处理程序模块,这个模块的作用有两个,一个是提供那些固定的html标记的输出(每一个标记都有start和end),另一个是对这个标记输出的开始和结束提供了一个友好的访问接口。来看下程序handlers.py:

这个程序堪称是整个“项目”的基石所在:提供了标签的输出,以及字符串的替换。理解起来也比较简单。

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

这就是三个过滤器了,分别是:强调牌过滤器(用×号标出的),url牌过滤器,email牌过滤器。熟悉正则表达式的同学理解起来是没有压力的。

再来看第三个模块“规则”,这个模块,抛开那祖父类不说,其他类应该有的两个方法是condition和action,前者是用来判断读进来的字符串是不是符合自家规则,后者是用来执行操作的,所谓的执行操作就是指调用“处理程序模块”,输出前标签、内容、后标签。 来看下这个模块的代码,其实这个里面几个类的关系,画到类图里面看会比较清晰。 rules.py:

补充utils.py:

如果你在学习Python的过程中遇见了很多疑问和难题,可以加-q-u-n 227 -435-450里面有软件视频资料免费

总结一下:

最后隆重的来看下“语法分析器模块”,这个模块的作用其实就是协调读入的文本和其他模块的关系。在往重点说就是,提供了两个存放“规则”和“过滤器”的列表,这么做的好处就是使得整个程序的灵活性得到了极大的提高,使得规则和过滤器变成的热插拔的方式,当然这个也归功于前面在写规则和过滤器时每一种类型的规则(过滤器)都单独的写成了一个类,而不是用if..else来区分。 看代码:

这个模块里面的处理思路是,遍历客户端(也就是程序执行的入口)给插进去的所有的规则和过滤器,来处理读进来的文本。

有一个细节的地方也要说一下,其实是和前面写的呼应一下,就是在遍历规则的时候通过调用condition这个东西来判断是否符合当前规则。

我觉得这个程序很像是命令行模式,有空可以复习一下该模式,以保持记忆网节点的牢固性。

最后说一下我以为的这个程序的用途:

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

上文内容不用于商业目的,如涉及知识产权问题,请权利人联系博为峰小编(021-64471599-8017),我们将立即处理。

21/212>

python项目-这4个Python实战项目,让你瞬间读懂Python!相关推荐

  1. python项目归纳总结-这4个Python实战项目,让你瞬间读懂Python!

    原标题:这4个Python实战项目,让你瞬间读懂Python! 来自:https://www.toutiao.com/a6593456515221291528/ Python 是一种极具可读性和通用性 ...

  2. python课堂实例_享学课堂带你了解并读懂Python列表中的6种操作实例

    原标题:享学课堂带你了解并读懂Python列表中的6种操作实例 今天为大家来介绍一下很多人在享学课堂上学习Python时,经常会用到列表,列表(list)就是动态数组,相当于C++标准库的Vector ...

  3. python项目实战干货_干货 | 这4个Python实战项目,让你瞬间读懂Python!

    Python是一种极具可读性和通用性的编程语言.Python这个名字的灵感来自于英国喜剧团体Monty Python,它的开发团队有一个重要的基础目标,就是使语言使用起来很有趣.Python易于设置, ...

  4. python十个运维实战项目_干货 | 这4个Python实战项目,让你瞬间读懂Python!

    Python是一种极具可读性和通用性的编程语言.Python这个名字的灵感来自于英国喜剧团体Monty Python,它的开发团队有一个重要的基础目标,就是使语言使用起来很有趣.Python易于设置, ...

  5. python能做什么项目-这十个Python实战项目,让你瞬间读懂Python!

    前言 Python 是一种极具可读性和通用性的编程语言.Python 这个名字的灵感来自于英国喜剧团体 Monty Python,它的开发团队有一个重要的基础目标,就是使语言使用起来很有趣.Pytho ...

  6. 4个Python实战项目,让你瞬间读懂Python!

    - 点击上方"i小码哥 "订阅我吧!- Python 是一种极具可读性和通用性的编程语言.Python 这个名字的灵感来自于英国喜剧团体 Monty Python,它的开发团队有一 ...

  7. 这4个Python实战项目,让你瞬间读懂Python!

    前言 Python 是一种极具可读性和通用性的编程语言.Python 这个名字的灵感来自于英国喜剧团体 Monty Python,它的开发团队有一个重要的基础目标,就是使语言使用起来很有趣.Pytho ...

  8. 1688学python学不会_还在害怕学不会Python嘛?这篇文章让你瞬间读懂Python入门!...

    零基础学习Python能学会吗?这个问题几乎是所有初学Python的小白都会问到的问题.其实Python是非常适合初学者入门的,相较于其他主流类编程语言,Python具有更好的可读性,因此上手更容易, ...

  9. python输入什么就输出什么_一文读懂Python的输入和输出

    本文介绍了Python的输入和输出,既然是Python代码,那么就一定有输出量,那么,Python是如何输出的呢? 输出 用print()在括号中加上字符串,就可以向屏幕上输出指定的文字.比如输出'h ...

最新文章

  1. Oracle优化01-引起数据库性能问题的因素
  2. ipv4和ipv6的区别,如何保护ip地址安全?
  3. 如何在IDA软件中找到自己需要的目标函数(关键函数)
  4. 读史记晋国世家0808:春秋平头哥
  5. 方正ceb阅读器手机版_海信阅读手机A5Pro 经典版评测:体验和阅读完美平衡
  6. 信息学奥赛一本通(C++)在线评测系统——基础(三)数据结构—— 1338:【例3-3】医院设置
  7. 【软件周刊】微软发布 Mac 版 Visual Studio,SQL Server 2016 SP1 紧跟节奏
  8. C++学习之路 | PTA乙级—— 1002 写出这个数 (20分)(精简)
  9. DataGuard常用命令及DG主备库开关顺序
  10. 80386/386/Intel386 架构/流水线及其优化
  11. spark学习-37-Spark的SortShuffleManager
  12. 究竟先操作缓存,还是数据库?
  13. 网页自动调入软键盘输入中文
  14. 20200714一维数组的经典例题(成绩的最高分,最低分;猜中数字游戏;数组的增添改查;)
  15. rose双机热备mysql,实战:ROSE HA双机热备系统安装指南
  16. vue点击按钮跳转页面
  17. 网工解惑:何为二层交换机,它与三层交换机的区别在哪里?
  18. 快速入门spring data jpa 2,多表操作,逻辑删除
  19. Spring Boot当中获取request的三种方式
  20. YELP NLP 英文文本断句

热门文章

  1. SSH-Auditor:一款SSH弱密码探测工具
  2. 最小生成树基础算法(Prim + Krustal)
  3. 重载[] int operator[ ]( )
  4. linux下安装sz/rz命令
  5. HTTP Status 404 - No result defined for action com.csdhsm.struts.action.LoginAction and result error
  6. 微软算法100题58 从尾到头输出链表(java)
  7. Android系统的进程分类
  8. 机器学习算法库scikit-learn的安装
  9. C#开发微信门户及应用(5)--用户分组信息管理
  10. 优化VS 2005编译,脱离漫长的等待!