字符串格式化使用字符串格式化操作符即百分號%來實現。在%的左側放置一個字符串(格式化字符串),而在右側則放置希望格式化的值,可以使用一個值,如一個字符串或者數字,也可以使用多個值的元組或者字典,如
>>> hello. world.Hot enough for ya?
如果右操作數是元組的話,則其中的每一個元素都會被單獨格式化,每個值都需要一個對應的轉換說明符。
基本的轉換說明符包括以下部分,注意,這些項的順序是至關重要的。
1. %字符:標記轉換說明符的開始。
2. 轉換標志(可選):-表示左對齊;+表示在轉換值之前要加上正負號;“”表示正數之前保留空格;0表示轉換值若位數不夠則用0填充。
3. 最小字段寬度(可選):轉換后的字符串至少應該具有該值指定的寬度。如果是*,則寬度會從值元組中讀出。
4. 點(.)后跟精度值(可選):如果轉換的是實數,精度值就表示出現在小數點后的位數。如果轉換的是字符串,那么該數字就表示最大字段寬度。如果是*,那么精度將會從元組中讀出。
5. 轉換類型:見下表

如
#使用給定的寬度打印格式化后的價格列表width = input('width:')price_width = 10item_width = width - price_widthheader_format = '%-*s%*s'format = '%-*s%*.2f'print '-' * widthprint header_format % (item_width, 'Item', price_width, 'Price')print '-' * widthprint format % (item_width, 'Apples', price_width, 0.4)print format % (item_width, 'Pears', price_width, 0.5)print format % (item_width, 'Cantaloupes', price_width, 1.92)print format % (item_width, 'Dried Apricots(16 0z.)', price_width, 8)print format % (item_width, 'prunex(4 1bs)', price_width, 12)print '=' * width
結果如下
width:35
-----------------------------------
Item Price
-----------------------------------
Apples 0.40
Pears 0.50
Cantaloupes 1.92
Dried Apricots(16 0z.) 8.00
prunex(4 1bs) 12.00
=======================
find -- 在一個較長的字符串中找子字符串,它返回子串所在位置的最左端索引,未找到則返回-1。此方法還接收可選的起始點和結束點參數。
>>> title = 'hello. world.Hot enough for ya?'
>>> title.find('wor')
7
>>> title.find('wor', 2, 6)
-1
join -- 在隊列中添加元素
>>> seq = list('12345')
>>> sep = '+'
>>> sep.join(seq)
'1+2+3+4+5'
>>> dirs = '','usr','bin','env'
>>> '/'.join(dirs)
'/usr/bin/env'
>>> 'C:'+'//'.join(dirs)
'C://usr//bin//env'
lower -- 返回字符串的小寫字母版
replace -- 返回某字符串的所有匹配項均被替換之后得到的字符串。
split -- 將字符串分割成序列
>>> '1+2+3+4+5'.split('+')
['1', '2', '3', '4', '5']
>>> '/usr/bin/env'.split('/')
['', 'usr', 'bin', 'env']
>>> 'C://usr//bin//env'.split('//')
['C:', 'usr', 'bin', 'env']
strip -- 返回除去兩側(不包括內部)空格的字符串,也可以指定需要去除的字符。
>>> '++!**1+2+3+4+5*++'.strip('+!*')
'1+2+3+4+5'
translate -- 可以替換字符串中的某些部分,只處理單個字符,并且可以同時進行多個替換。第一個參數指定需要替換的表,第二個參數指定需要刪除的字符。
>>> from string import maketrans
>>> table = maketrans('cs', 'kz')
>>> 'This is an incredible test'.translate(table)
'Thiz iz an inkredible tezt'
>>> 'This is an incredible test'.translate(table, ' ')
'Thizizaninkredibletezt'
新聞熱點
疑難解答