1. 程式人生 > >《Python基礎教程》學習的第三課0121

《Python基礎教程》學習的第三課0121

類比 方法 found 介紹 匹配 this 註釋 style hello

今天學習python第三課,使用字符串。(所有標準的序列操作【索引、分片、乘法、判斷成員資格、求長度、取最小與最大值】對字符串同樣適用)

1.%(轉換說明符)的用法,%標記了需要插入轉換值的位置。

>>> formkk="hello ,%s. %s enough for you?" //註釋:使用%可以將字符串按順序插入原始句子中。
>>> value=(‘world‘,‘egg‘)
>>> print formkk %value
hello ,world. egg enough for you?
>>>

註意:若要輸出%則需要使用%%。

2.格式化輸出浮點數。(類比C的printf()輸出函數)

>>> forma="Pi with three decimals:%.3f" //小數點後保留三位小數
>>> from math import pi
>>> print forma % pi
Pi with three decimals:3.142
>>>

3.簡單介紹模板字符串

substitute 模板方法會用傳遞進來的關鍵字參數替換字符串中相應的$處。

>>> from string import Template
>>> s=Template(‘$x.glorious $x!‘)
>>> s.substitute(x=‘ssssss‘)
‘ssssss.glorious ssssss!‘
>>>

如果替換字是單詞的一部分,那麽參數名就必須用括號括起來

>>> from string import Template
>>> s=Template("it‘s ${x}tastic!")
>>> s.substitute(x=‘fan‘)
"it‘s fantastic!"
>>>

4.字符串方法

find可以在較長的字符串中查找子串。它返回子串所在位置的最左端索引。如果沒有找到則返回-1。

>>> ‘with a moo-moo here, and a moo-moo there‘.find(‘moo‘)
7
>>> title="money,money"
>>> title.find(‘money‘)
0
>>> title.find(‘m‘)
0
>>> title.find(‘n‘)
2
>>> title.find(‘t‘)
-1
>>>

還可以通過設置起始位置和終止位置來find

>>> sub=‘$$ get rich now! $‘
>>> sub.find(‘$$‘)
0
>>> sub.find(‘$$‘,1,6)
-1
>>> sub.find(‘$$‘,0,6)
0
>>> sub.find(‘$‘,0,17)
0
>>>

join方法,是split方法的逆方法,用來連接字符串中的元素。

>>> b=[‘a‘,‘b‘,‘c‘]

>>> s=‘+‘
>>> s.join(b)
‘a+b+c‘
>>> dirs=‘C:‘,‘usr‘,‘bin‘,‘eny‘
>>> ‘/‘.join(dirs)
‘C:/usr/bin/eny‘
>>> print ‘D:‘+‘\\‘.join(dirs)
D:C:\usr\bin\eny
>>>

lower方法,返回字符串中的小寫字母版

>>> ‘The older fisherman has a CAT‘.lower()
‘the older fisherman has a cat‘

>>> name=‘RR‘
>>> name2=[‘rr‘,‘DUBI‘]
>>> if name.lower() in name2:print ‘found!‘
found!
>>>

replace 方法返回某字符串的所有匹配項均被替換之後得到字符串

>>> ‘The older fisherman has a CAT‘.replace(‘older‘,‘younger‘)
‘The younger fisherman has a CAT‘
>>> ‘The older fisherman has a CAT‘.replace(‘s‘,‘88‘)
‘The older fi88herman ha88 a CAT‘
>>>

split 方法是join的逆方法,用來把字符串分割成序列

>>> ‘1+2+3+4‘.split(‘+‘)
[‘1‘, ‘2‘, ‘3‘, ‘4‘]
>>> ‘using the split method‘.split()
[‘using‘, ‘the‘, ‘split‘, ‘method‘]
>>>

translate 方法替換字符串中的某些部分,與replace不同的是,translate只處理單個字符。其優勢在於可以同時進行多個替換,有時比replace效率高

>>> from string import maketrans
>>> table=maketrans(‘cs‘,‘kz‘) //把字符c替換為k,將s替換成z
>>> len(table)
256
>>> table[97:123]
‘abkdefghijklmnopqrztuvwxyz‘
>>> ‘this is an incredible test‘.translate(table)
‘thiz iz an inkredible tezt‘
>>> table=maketrans(‘s‘,‘8‘)
>>> ‘this is an incredible test‘.translate(table)
‘thi8 i8 an incredible te8t‘
>>>

小結,在使用translate轉換之前,需要先完成一張轉換表,轉換表中是以某字符替換某字符的對應關系。使用string模板裏的maketrans函數就行。

strip方法返回去除兩側(不包括內部)空格的字符串

>>> ‘ i am a gril ‘.strip()
‘i am a gril‘
>>> names=[‘gumby‘,‘dooou‘,‘yullo‘]
>>> name=‘gumb y‘
>>> if name.strip() in names:print ‘found!‘

>>> n=‘gumby ‘
>>> if n.strip() in names:print ‘found!‘

found!
>>>

也可以指定去除的字符(去除兩側的字符)其實以上方法在處理臟數據時是經常用到的。

>>> uu=‘%%%he%llo%‘
>>> uu.strip(‘%‘)
‘he%llo‘
>>>

《Python基礎教程》學習的第三課0121