python cookbook进修笔记 第一章 文本(1)
添加时间:2013-7-12 点击量:
1.1每次处理惩罚一个字符(即每次处理惩罚一个字符的体式格式处理惩罚字符串)
print list(theString) #办法一,转列表
成果:[t, h, e, S, t, r, i, n, g]
for c in theString:#办法二,for轮回
print c,
成果:t h e S t r i n g
print [c for c in theString] #办法三,列表推导式
成果:[t, h, e, S, t, r, i, n, g]
print map(str,theString)#办法四,map处理惩罚,和列表推导式一样
成果:[t, h, e, S, t, r, i, n, g]
print set(thethe)#此办法只适应特定的时刻,算作果就知道,set把反复的字符去掉了,并且无序
成果:set([h, e, t])
1.2字符和字符值的转换
print ord(a) #字符转字符值
print chr(97) #字符值转字符
print ord(u\u2020) #返回unicode码值
print repr(unichr(8224)) #返回unicode字符串
print map(ord,kaluoc) #字符串转换成各个字符的值的列表
print .join(map(chr,range(97,100))) #将值转换成字符并连接成字符串
成果:
97
a
8224
u\u2020
[107, 97, 108, 117, 111, 99]
abc
额外的常识:
str()和chr()差别:
print chr(97) #返回参数对应的ASCII单字符的字符串
print str(97) #返回该参数的文本情势的字符串
成果:
a
97
str()和repr()差别:
print 1,str( ),1 #对用户斗劲友爱的字符串情势,凡是无法用于eval()求值,一般用在print语句输出
print 1,repr( ),1 #对python(即机械)斗劲友爱
成果:
1 1
1 1
1.3测试一个对象是否是类字符串
def isExactlyAString(anobj):
return type(anobj) is type() #这是糟糕的,因为unicode的无法经由过程测试,用户本身自定义的也无法经由过程测试
def isAString(anobj):
return isinstance(anobj,basestring)#basestring是str和unicode的基类,但这不完美,因为有些类不是从basestring派生的,如UserString
def isStringLike(anobj):
try:anobj.lower()+anobj+ #经由过程对参数anobj的一些String操纵,来测试参数是否是类字符,较完美,但速度有影响
except: return False
else: return True
1.4字符串对齐
print |,kaluoc.ljust(20),|,kaluoc.center(20),|,kaluoc.rjust(20),| #后面的参数20,统共的空格数
print kaluoc.center(20,+) #可指定填充特定字符
成果:
| kaluoc | kaluoc | kaluoc |
+++++++kaluoc+++++++
1.5去除字符串两端的空格
x= kaluoc
print |,x.lstrip(),|,x.rstrip(),|,x.strip(),|
x=xyxxyy kaluocyx yysx
print |+x.strip(xy)+| #仅仅去掉两端的xy,但空格被保存下来了
成果:
| kaluoc | kaluoc | kaluoc |
| kaluocyx yys|
容易发怒的意思就是: 别人做了蠢事, 然后我们代替他们, 表现出笨蛋的样子。—— 蔡康永
1.1每次处理惩罚一个字符(即每次处理惩罚一个字符的体式格式处理惩罚字符串)
print list(theString) #办法一,转列表
成果:[t, h, e, S, t, r, i, n, g]
for c in theString:#办法二,for轮回
print c,
成果:t h e S t r i n g
print [c for c in theString] #办法三,列表推导式
成果:[t, h, e, S, t, r, i, n, g]
print map(str,theString)#办法四,map处理惩罚,和列表推导式一样
成果:[t, h, e, S, t, r, i, n, g]
print set(thethe)#此办法只适应特定的时刻,算作果就知道,set把反复的字符去掉了,并且无序
成果:set([h, e, t])
1.2字符和字符值的转换
print ord(a) #字符转字符值
print chr(97) #字符值转字符
print ord(u\u2020) #返回unicode码值
print repr(unichr(8224)) #返回unicode字符串
print map(ord,kaluoc) #字符串转换成各个字符的值的列表
print .join(map(chr,range(97,100))) #将值转换成字符并连接成字符串
成果:
97
a
8224
u\u2020
[107, 97, 108, 117, 111, 99]
abc
额外的常识:
str()和chr()差别:
print chr(97) #返回参数对应的ASCII单字符的字符串
print str(97) #返回该参数的文本情势的字符串
成果:
a
97
str()和repr()差别:
print 1,str( ),1 #对用户斗劲友爱的字符串情势,凡是无法用于eval()求值,一般用在print语句输出
print 1,repr( ),1 #对python(即机械)斗劲友爱
成果:
1 1
1 1
1.3测试一个对象是否是类字符串
def isExactlyAString(anobj):
return type(anobj) is type() #这是糟糕的,因为unicode的无法经由过程测试,用户本身自定义的也无法经由过程测试
def isAString(anobj):
return isinstance(anobj,basestring)#basestring是str和unicode的基类,但这不完美,因为有些类不是从basestring派生的,如UserString
def isStringLike(anobj):
try:anobj.lower()+anobj+ #经由过程对参数anobj的一些String操纵,来测试参数是否是类字符,较完美,但速度有影响
except: return False
else: return True
1.4字符串对齐
print |,kaluoc.ljust(20),|,kaluoc.center(20),|,kaluoc.rjust(20),| #后面的参数20,统共的空格数
print kaluoc.center(20,+) #可指定填充特定字符
成果:
| kaluoc | kaluoc | kaluoc |
+++++++kaluoc+++++++
1.5去除字符串两端的空格
x= kaluoc
print |,x.lstrip(),|,x.rstrip(),|,x.strip(),|
x=xyxxyy kaluocyx yysx
print |+x.strip(xy)+| #仅仅去掉两端的xy,但空格被保存下来了
成果:
| kaluoc | kaluoc | kaluoc |
| kaluocyx yys|
容易发怒的意思就是: 别人做了蠢事, 然后我们代替他们, 表现出笨蛋的样子。—— 蔡康永