python cookbook學習筆記 第一章 文本(1)

1.1每次處理一個字符(即每次處理一個字符的方式處理字符串)python

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 gc++

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字符和字符值的轉換spa

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))) #將值轉換成字符並鏈接成字符串

結果:code

97
a
8224 u'\u2020'

[107, 97, 108, 117, 111, 99] abc

額外的知識:對象

str()和chr()區別:blog

print chr(97) #返回參數對應的ASCII單字符的字符串
print str(97) #返回該參數的文本形式的字符串

結果:ip

aunicode

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|
相關文章
相關標籤/搜索