Python基础_即时标记及其相关的语法

来源:互联网 发布:淘宝哪家店女装好看 编辑:程序博客网 时间:2024/05/22 01:59

Python基础教程中‘即时标记’案例的应用


一、‘即时标记’的应用

所谓‘即时标记’,就是根据已知的文本文件,得到html文件(本案例)

简单的方式:

1、对文本文件进行解析,再对此内容进行迭代输出;

2、对以空格为基础,对内容进行html相应标签的输出,从而得到html文件。

复杂的方式:(带有重构代码性)

1、对html中的规则进行界定;(如标题、格式、段落等相应标签的规定;)为handler类(处理器,以此为基础);为handler.py;

2、文本文件;(对文本文件进行迭代处理)为util.py;

3、根据html中的具体应用,规则方法进行调用,(本文利用方法名称的通用型,以继承方法实现该方法的调用);为rule.py中

4、对文本文件进行规则与过滤器(正则式)的限定和解释,转换为html文件。


二、结构图思想

handler:htm的底层规则;

Rules:titleRules、headRules、paraRules等;(调用handler)

util:解析文本文件;

makeup:根据util内容,以Rules规则得到的相应html格式,进行内容输出。


(源码路径为:链接: http://pan.baidu.com/s/1sj04P1V 密码: ypbz)


三、相关的属性及方法解释

yield:生成器,目的用于迭代。

例1:

def g(n):
    for i in range(n):
        yield i**2
for i in g(3):
    print i,":",

t=g(3)
print t
print t.next()
print t.next()
print t.next()

输出:0,1,4::

例2:

def fab(max):    
    a,b=0,1
    while a<max:
        yield a
        a,b=b,a+b
for i in fab(3):
    print i,",",

yield类似于迭代器,原理上是通过next()访问的。

理解:通过参数获取到的值,以列表形式一次返回。

与List形式对比:

例3:

deffab(max):
   n, a, b=0,0,1
   L=[]
   whilen <max:
       L.append(b)
       a, b=b, a+b
       n=n+1
   returnL
通过List访问会造成占用的内存随着max的增大而增大,为了控制内存占用,最好不要用List.






0 0
原创粉丝点击