运维的我要学开发--Python(2)

   本文均来自Python Cookbook,本博文励志将Cookbook中的string部位,文件,面向对象编程部分完成,本系列博文陆续还会介绍flask框架,每篇博文都以一个个小例子展示。

#-*- coding: utf-8 -*-
'''
        reduce()函数有两个参数:
        第一个参数:是一个函数,这个函数有两个参数
        第二个参数:是一个列表
        reduce()函数的过程是:调用函数并传入列表中的第一个数和第二个数,
        并将结果和第三个参数再次传递给这个函数。依次类推。
'''
def Link(name1,name2):
    return name1+name2+"|"
print reduce(Link,"zhang")
#zh|a|n|g|
'''
            字符串列表的连接成一个大字符串的方法:
                方法一: 遍历字符串列表,使用+=连接
                方法二: reduce(operator.add,字符串列表)
                方法三: "".join(字符串列表)
                这三种方法中第三种方法最优
                前两种都会产生中间结果,第三种不需要产生中间结果,速度更快,性能更好
'''
resultString="";
name=['zhang','test','wang']
#方法一
for i in name:
    resultString+=i
print resultString
#方法二
import operator
print reduce(operator.add,name)
#方法三
print "".join(name)
#结果如下:
#zhangtestwang
#zhangtestwang
#zhangtestwang
'''
        字符串反转
'''
#字符串反转
teststring="zhang"
revchars = teststring[::-1]
print revchars
#单词反转
teststring="zhang wang loiu"
revwords = teststring.split()
revwords.reverse()
revwords = ' '.join(revwords)
print revwords
'''
        检查字符串中是否包含某字符集合中的字符
        对于集合问题如果参数提供的是列表那么最好转换成集合来操做
'''
#方法一
def containAny(seq,asets):
    for c in seq:
        if c in asets:
            return True
        else:
            return False
# 方法二
import itertools
def containAny2(seq,asets):
    for item in itertools.ifilter(asets.__contains__,seq):
        return True
    return False
print containAny2("zhang","www")
print containAny("zhang","www")
'''
        字符串的translate和maketrans方法的使用
        maketrans用于生成一个翻译表有两个参数:
        第一个参数:一串字符
        第二个参数:一串字符
        maketrans将形成第一参数到第二个参数的一个映射
        例如:
        maketrans("zhang","wangs")
        z-->w
        h-->a
        a-->n
        n-->g
        g-->s
        translate的用法:
        "string".translate(映射表,字符串)
        首选从"string"中过滤掉第二个参数中的字符串,然后按照映射表进行映射
'''
#一个对maketrans和translate使用示列
import string
mapstring  = string.maketrans('abc','ABC')
fin = "zhang".translate(mapstring,"zhng")
print fin
#结果是A
'''
        什么是闭包?
'''
#闭包的使用示列
def bibao(onenum):
    num=20+onenum
    def count(twonum):
        return twonum+num
    return count
test = bibao(50)
print test(20)
#结果是:90
'''
    过滤字符串中不属于指定集合的字符
'''
import string
#无需翻译映射表
allchars = string.maketrans('','')
def makefilter(keep):
    #获取要删除的字符,keep是要保留的字符,下面这段代码是取补集
    delchars = allchars.translate(allchars,keep)
    def thefilter(s):
        return s.translate(allchars,delchars)
    return thefilter
if __name__ == '__main__':
    test = makefilter('esf')
    print test('zhang yzhangi fei')
    #结果fe


你可能感兴趣的:(python,flask)