字符傳格式化
字符傳格式化經過佔位符'%'實現,通常狀況下使用元組對佔位符進行替換
python
若是要格式化的字符串包括符號‘%’,則必須使用%%app
from math import pi print '這是百分號%%,這是pi的近似值:%08.2f' % pi print '這是百分號%%,這是pi的近似值:%+8.2f' % -pi print '這是百分號%%,這是pi的近似值:%-*.2f' % (8,pi) print '這是百分號%%,這是pi的近似值:%.*s' % (4,'aaaaaa')
在要格式化的字符串中,佔位表達式‘%08.2f‘中,f表示是浮點數,'.2'表示小數點的精度,小數點前一位數字表示替換數值的保留位數,不足則在左邊補0(即%後的0)
this
字符串中整個佔位表達式的參數說明以下:spa
%字符:標記佔位符替換的起始部分code
轉換標識符(可選):上例中是%後的0,-表示左對齊,+表示在轉換值以前加正負,「」(空白字符)表示在正數以前保留空格,0表示轉換後若位數不夠則用0填充索引
最小字段寬度(可選):轉換後字符串至少應該具備該指定寬度,若是是*號,則寬度從元組中取出ip
小數點(.)後跟精度(可選):若是轉換的是實數,精度值就表示小數點後位數;若是轉換的是字符串,那麼該精度值表示的是轉換後的最大字寬,若是是*,則從該值元組中取出字符串
使用給定輸入打印一個簡版的價格表
input
#使用給定寬度打印價格列表 total_width=input('input width:') price_width=10 item_width=total_width-price_width print '='*total_width print '%-*s%*s' %(item_width,'item',price_width,'price') print '-'*total_width print '%-*s%*.2f' %(item_width,'apple',price_width,2.8888) print '-'*total_width print '%-*s%*.2f' %(item_width,'pear',price_width,8) print '-'*total_width print '%-*s%*.2f' %(item_width,'orange',price_width,pi) print '='*total_width
字符串方法
前面介紹過一些列表及序列方法,這裏介紹一部分字符串方法string
find:在一個較長字符串中查找子字符串,返回子字符串所在位置的最左端索引,未找到則返回-1,這裏in關鍵字只能判斷單一字符是否在指定字符串中
strTest='hello, world!' print strTest.find('lo') #從指定索引開始查詢 print strTest.find('l',5) #包左不包右,查詢指定範圍的字符索引 print strTest.find('l',4,10)
join(seq):將某一字符串序列seq,按照指定的字符串拼接成一個字符串返回
temp = '-'.join(['a','b','c','d']) print temp #a-b-c-d
split(separator):將某一字符串按照指定的字符separator分割,返回一個列表,不改變原字符串
var = 'test'.split('es') print var #['t', 't']
lower:將字符串轉化爲小寫
test='ABCD' print test.lower()
replace:該方法會返回一個被替換後的新字符串
print test.replace('AB', 'ab')
strip:該方法返回去除兩側(不包括內部)空格的字符串,也能夠指定須要去除的字符
test='***this is a test!***' print test print test.strip('*')
translate: translate方法和replace方法同樣能夠替換字符串中的某些部分,可是translate方法只處理單個字符,能夠同時進行多個替換,有時候比replace高效
from string import maketrans #maketrans的兩個參數必須是等長的,對應位置的替換表 tab = maketrans('es', '* ') tem = 'testabc' #第二個參數用於指定要刪除的字符 va = tem.translate(tab,'b') print va print tem