【Python】常用的字串函式

楊奇龍發表於2011-12-13
##python中有很多字串函式,將經常使用的列出如下:
>>> import string
>>> s1='YANGQL'
>>> s2='yangql'
>>> s3='yangql is learning python string'
##將字串轉換為小寫
>>> s1.lower()
'yangql'
##將字串轉換為大寫
>>> s2.upper()
'YANGQL'
##大小寫互換
>>> s2.swapcase()
'YANGQL'
>>> s7='YangQL'
>>> s7.swapcase()
'yANGql'
>>> s1.swapcase()
'yangql'
##將首字元大寫
>>> s1.capitalize()
'Yangql'
##將字串中所有字串首字母大寫
>>> s3.title()
'Yangql Is Learning Python String'
s.ljust(width,[fillchar])
#輸出width個字元,S左對齊,不足部分用fillchar填充,預設的為空格。
>>> s2.ljust(10,'#')
'yangql####'
##與s.rjust()相反
>>> s2.rjust(10,'#')
'####yangql'
##使輸出在中間,兩邊填充指定字串
>>> s2.center(10,'#')   
'##yangql##'
>>> s2.center(11,'#')
'###yangql##'
##s.zfill(width) 把s變成width長,並在右對齊,不足部分用0補足
>>> s2.zfill(10)
'0000yangql'
#s.find(substr, [start, [end]])
#返回S中出現substr的第一個字母的標號,如果S中沒有substr則返回-1。start和end作用就相當於在S[start:end]中搜尋
>>> s3.find('is')
7
>>> s3.find('is',2,8)
-1
>>> s3.find('is',2,10)
7
>>> s3.find('python')
19
##s.rfind(substr, [start, [end]])
#返回S中最後出現的substr的第一個字母的標號,如果S中沒有substr則返回-1,也就是說從右邊算起的第一次出現的substr的首字母標號
>>> s3.rfind('python')
19
#s.count(substr, [start, [end]]) 計算substr在S中出現的次數
>>> s3.count('i')
3
###把s中前後chars中有的字元全部去掉,可以理解為把S前後chars替換為None
>>> s3.lstrip('yang')
'ql is learning python string'
>>> s3.rstrip('string')
'yangql is learning python '
>>> s8='   aliyun-inc.com   '
>>> print s8
   aliyun-inc.com  
>>>
>>> s8.strip()
'aliyun-inc.com'
#s.replace(oldstr, newstr, [count])
#把S中的oldstar替換為newstr,count為替換次數。這是替換的通用形式,還有一些函式進行特殊字元的替換
>>> s3.replace('is','IS')
'yangql IS learning python string'
>>>
#s.split([sep, [maxsplit]])
#以sep為分隔符,把S分成一個list。maxsplit表示分割的次數。
>>> s3.split('i')
['yangql ', 's learn', 'ng python str', 'ng']
##rsplit()從前面查詢分割點,split()從字串後面查詢。
>>> s3.rsplit('i',2)
['yangql is learn', 'ng python str', 'ng']
>>> s3.rsplit('i',3)
['yangql ', 's learn', 'ng python str', 'ng']
>>> s3.split('i',3)
['yangql ', 's learn', 'ng python str', 'ng']
>>> s3.split('i',2)
['yangql ', 's learn', 'ng python string']
>>> s3.split() ## 預設的分割符為空白字元   
['yangql', 'is', 'learning', 'python', 'string']
>>> s3.rsplit('i',2)
['yangql is learn', 'ng python str', 'ng']
>>> s3.rsplit('i',1)
['yangql is learning python str', 'ng']
>>> s3.split('i',1)
['yangql ', 's learning python string']
>>>
>>> s3.join(s2[1])
'a'
#s4.join(s2)函式將s2分開,並每個字母接上s4的字元
>>> s4='python '
>>> s4.join('s')        
's'
>>> s4.join('us')
'upythons'
>>> s4.join(s2)
'ypython apython npython gpython qpython l'
>>> s4.join(s2[0])
'y'
##將unicode轉換為utf-8型別的字串
>>> s4=u'python '
>>> type(s4)
<type 'unicode'>
>>> s5=s4.encode('utf-8')
>>> type(s5)
<type 'str'>
>>> type(s4.encode('utf-8'))
<type 'str'>
>>>
>>>
>>> s6='123456'
>>> s7='ss124'
>>> s2.isalnum()
True
>>> s2.isalpha()
True
>>> s2
'yangql'
>>> s2.isdigit()
False

s.isalnum()
#是否全是字母和數字,並至少有一個字元
s.isalpha() #是否全是字母,並至少有一個字元
s6='123456'
>>> s1.isalpha()
True
>>> s6.isalpha()
False
>>>
s.isdigit() #是否全是數字,並至少有一個字元
>>> s6.isdigit()
True
#s.isspace() 是否全是空白字元,並至少有一個字元
>>> s6.isspace()
False
#s.islower() S中的字母是否全是小寫
>>> s6.islower()
False
>>> s2.islower()
True
#s.isupper() S中的字母是否便是大寫
>>> s2.isupper()
False
>>> s1.isupper()
True
>>>
s.istitle() #S是否是首字母大寫的
>>>
>>> s2.istitle()
False
##轉換字串為資料
>>> string.atof(s6)
123456.0
>>> string.atoi(s6)
123456
>>> string.atol(s6)
123456L
>>>

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/22664653/viewspace-713251/,如需轉載,請註明出處,否則將追究法律責任。

相關文章