string
字符串的表示
>>>print repr(1000L)
1000L
>>>print str(1000L)
1000
repr python表達形式,會輸出目標類型
原始字符
原始字符對于反斜線不會有特殊對待,字符串以r開頭表示原始字符
使用字符串
字符串是不可改變的
字符串格式化:完整版
| 轉換類型 | 含義 |
|---|---|
| d,i | 帶符號的十進制整數(shù) |
| o | 不帶符號的八進制 |
| u | 不帶符號的十進制 |
| x | 不帶符號的十六進制(小寫) |
| X | 不帶符號的十六進制(大寫) |
| e | 科學計數(shù)法表示的浮點數(shù)(小寫) |
| E | 科學計數(shù)法表示的浮點數(shù)(大寫) |
| f,F | 十進制浮點數(shù) |
| g | 如果指數(shù)大于-4或者小于精度值則和e相同,其它情況與f相同 |
| G | 如果指數(shù)大于-4或者小于精度值則和E相同,其它情況與F相同 |
| C | 單字符(使用repr轉換任意python對象) |
| r | 字符串(使用repr轉換任意python對象) |
| s | 字符串(使用str轉換任意python對象) |
-
1.%字符 :
標記轉換說明符的開始 -
2.轉換標志(可選) :
- 表示左對齊; + 表示在轉換值之前加上正負號; ""(空白字符)表示正數(shù)之前保留空格; 0 表示轉換值若位數(shù)不夠用0填充 -
3.最小字段寬度(可選) :
轉換后的字符串至少應該具有該值指定的寬度。如果是*,則寬度會從元組中讀出 - 4.點(.)后跟精度值(可選) : 如果轉換的是實數(shù),精度值就表示出現(xiàn)在小數(shù)點后的位數(shù)。如果轉換的是字符串,那么該數(shù)字就表示最大字段寬度。如果是*,那么精度將會從元組中讀出。
格式化字符串的%s部分稱為轉換說明符(conversion specifier),他們比較了需要插入轉換值的位置。s表示值會被格式轉化為字符串----如果不是字符串,用str轉換為字符串。
寬度 : 最小字符串個數(shù)
精度 : 小數(shù)位數(shù)
可以使用*(星號)表示字段寬度或者是精度,此時數(shù)值會從元組中讀出:
>>>'%*.*s' % (5,4,'abcde')
' abcd'
符號,對齊使用0填充
在字段寬度和精度值之前可以放置一個"標志",該標志可以是零,減號,加號或空格。零表示使用0填充
零
>>> '%010.2f' % f
'0000003.14'
減號:用來左對齊數(shù)值
>>> '%-10.2f' % pi
'3.14'
空白(""):意味整數(shù)前加空格,在對齊正負數(shù)時很有用
>>>print ('% 5d' % 10) + '\n' + ('% 5d' % -10)
10
-10
正號(+) : 正數(shù)前加空格,對齊正負數(shù)
>>> print ('%+5d' % 10) + '\n' + ('%+5d' % -10)
+10
-10
字符串方法
find方法返回字符所在位置的最左端索引
join方法連接字符串,需要連接的全是字符串
lower方法返回字符串的小寫版
upper方法返回字符串的大寫版
title方法:首字母大寫,其余小寫
replace方法返回字符串的所有匹配項全部替換之后的字符串
split:將字符串分割成序列(如果不提供分隔符,程序會把空格作為分隔符(空格,制表,換行等))
strip方法返回去除兩側(不包括內部)空格的字符串,也可以去除特定的字符,將他們作為參數(shù)即可:
>>>'*** this * is * a * test !!!***'.strip('!!!*')
`this * is * a * test`
translate和replace方法一樣替換字符串中的某一部分,不過可以同時進行多個替換
使用translate方法之前,需要先制作一張轉換表(轉換表是以某字符替換某字符的對應關系),使用string模塊中的maketrans函數(shù)
from string import maketrans
table = maketrans('cs','kz')#maketrans接受兩個等長的字符串