07 2012 档案

摘要:使用Unicode 处理国际化文本任务:需要处理包含非ASCII字符的字符串解决>>> german_ae = unicode('xc3\xa4','utf8')'''german_ae 是一个unicode字符串 根据指定的utf-8编码方式,通过解析单字节字符串xc3\xa4 创建了一个Unicode字符串 然后就可以像处理其他字符串一样处理unicode字符串'''>>>sentence = 'This is a ' + german_ae>>& 阅读全文
posted @ 2012-07-31 21:25 cacique 阅读(327) 评论(0) 推荐(0)
摘要:任务:给定一个字符串 通过查询一个字符串替换字典 将字符串中被标记的子字符串替换掉解决方案Python2.4提供了新的string.Template类 可以完成实现方法#!/usr/bin/python# -*- coding: utf-8 -*-#替换字符串中的子串 使用Templateimport stringdef sub_replace(str): #从字符串生成模版 其中标识符被$标记 new_style = string.Template(str) #给模版的substitute方法传入一个字典参数并调用之 print new_style.substitut... 阅读全文
posted @ 2012-07-27 11:27 cacique 阅读(1074) 评论(0) 推荐(0)
摘要:任务:给定一个字符串 通过查询一个替换字典 将字符串中被标记的子字符串替换掉#!/usr/bin/python# -*- coding: utf-8 -*-#替换字符串中的子串def expand(format,d,market='"',safe=False): if safe: def lookup(w): return d.get(w,w.join(marker*2)) else: def lookup(w): return d[w] parts = format.split(marker) p... 阅读全文
posted @ 2012-07-25 18:54 cacique 阅读(427) 评论(0) 推荐(0)
摘要:任务:有一个多行文本的字符串 需要创建该字符串的一个拷贝,并在每行行首添加或删除一些空格,以保证每行缩进都是指定数目的空格数利用字符串对象提供的 strip() s.splitlines()可以很快的实现#!/usr/bin/python# -*- coding: utf-8 -*-#改变多行文本的缩进def reindent(s,numSpaces): leading_space = numSpaces * ' ' lines = [leading_space + line.strip() for line in s.splitlines()] return '\n& 阅读全文
posted @ 2012-07-23 11:17 cacique 阅读(1186) 评论(0) 推荐(0)
摘要:访问子字符串最简单的的方式是使用切片afiled = theline[3:8]但一次只能取一个子字符串如果还要考虑字段的长度 struct.unpack可能更合适import struct#得到一个5字节的字符串 跳过三字节 得到两个8字节的字符串 以及其余部分baseformat = "5s 3x 8s 8s"#theline超出的长度也由这个base-format 确定numremain = len(theline) - struct.calcsize(baseformat)#用合适的s或者x字段完成格式 然后unpackformat = "%s %ds&qu 阅读全文
posted @ 2012-07-22 14:06 cacique 阅读(640) 评论(0) 推荐(0)
摘要:python中控制大小写的方法有以下几个s.upper() #将所有字符转变成大写s.lower() #将所有字符转变成小写s.capitalize() #将字符串的第一个字符转变成大写 和 s[:1].upper()+s[1:].lower()功能相似s.title() #将每个单词的第一个字符大写判断字符串是否符合要求的方法isupper()islower()istitle()如果符合这三个方法会返回一个True只不过没有iscapitalize()方法 我们实现一下#!/usr/bin/python# -*- coding: utf-8 -*-#控制大小写impor... 阅读全文
posted @ 2012-07-22 09:04 cacique 阅读(316) 评论(0) 推荐(0)
摘要:python 中,字符串中即可以容纳文本,也可以容纳任意字节如何检查一个字符串是文本还是二进制 1 #!/usr/bin/python 2 # -*- coding: utf-8 -*- 3 4 #检查字符串是文本还是二进制 5 6 from __future__ import division 7 import string 8 text_characters = "".join(map(chr,range(32,127))) + "\n\r\t\b" 9 _null_trans = string.maketrans('','& 阅读全文
posted @ 2012-07-22 08:41 cacique 阅读(954) 评论(0) 推荐(0)
摘要:1 #!/usr/bin/python 2 # -*- coding: utf-8 -*- 3 4 #过滤字符串中不属于指定集合的字符 5 6 import string 7 8 # 生成所有字符的可复用的字符串 它还可以作为一个翻译表 指明无需翻译 9 allchars = string.maketrans('','')10 11 12 def makefilter(keep):13 """返回一个函数 此函数接受一个字符串为参数14 并返回字符串的一个部分拷贝15 次拷贝纸包含在keep中的字符 keep必须是一个普通字符&qu 阅读全文
posted @ 2012-07-21 18:13 cacique 阅读(1765) 评论(0) 推荐(0)
摘要:闭包:对闭包的具体定义有很多种说法,这些说法大体可以分为两类:◆一种说法认为闭包是符合一定条件的函数,比如参考资源中这样定义闭包:闭包是在其词法上下文中引用了自由变量的函数。◆另一种说法认为闭包是由函数和与其相关的引用环境组合而成的实体。比如参考资源中就有这样的的定义:在实现深约束时,需要创建一个能显式表示引用环境的东西,并将它与相关的子程序捆绑在一起,这样捆绑起来的整体被称为闭包。python中闭包 表示内层函数 由一个变量指代 而这个变量对于外层包含的函数而言是本地变量 看一个例子:def make_adder(addend): def adder(augend): ... 阅读全文
posted @ 2012-07-21 15:36 cacique 阅读(1035) 评论(0) 推荐(0)
摘要:#!/usr/bin/python# -*- coding: utf-8 -*-#简化字符串的translate 方法的使用import stringdef translator(frm='',to='',delete='',keep=None): if len(to) == 1: to = to * len(frm) trans = string.maketrans(frm,to) if keep is not None: allchars = string.maketrans('','') delete = a 阅读全文
posted @ 2012-07-21 15:18 cacique 阅读(608) 评论(0) 推荐(0)
摘要:最简单的方法如下def containsAny(seq,aset): """ 检查序列seq是否含有aset中的项""" for c in seq: if c in aset: return True return False检查序列seq中是否含有aset中所有的项def containsAll(seq,aset): return not set(aset).difference(seq)对于任何set对象a a.difference(b) 结果为a-set(b) 返回啊中所有不属于b的元素 阅读全文
posted @ 2012-07-19 22:01 cacique 阅读(204) 评论(0) 推荐(0)
摘要:反转字符最简单的方法是使用步长为-1的方法revchars = astring[::-1]反转字符串 应先创建一个单词列表 再将列表反转 在用join方法合并rewords = astring.split()rewords.reverse()rewords = ' '.join(rewords)#也可以用一行代码表示rewords = ' '.join(astring.split()[::-1])逐词反转还保留原来空格的话import rerevwords = re.split(r'(\s+)',astring)revwords.reverse( 阅读全文
posted @ 2012-07-19 21:52 cacique 阅读(326) 评论(0) 推荐(0)

Copyright ©2011 Goodspeed Cheng