目錄
- python中字元串及其格式轉換技巧
-
- 其他資料轉為字元串
- 字元串的格式化
- 帶格式限定符的格式化
- 字元串的連接配接
- 字元串切片
- 字元串轉換為 ASCII 值
python中字元串及其格式轉換技巧
在python語言中,對字元串的處理可以說是在所有程式設計語言中最靈活的一種,Python字元串可以了解為一個數組,在不引入第三方庫的情況下,就可以實作字串的各種處理,下面舉例說明
其他資料轉為字元串
python中,數字,連結清單、集合等都可以轉換為字元串,也可以指定轉換的精度,例如:
數字64轉為二進制、十進制、八進制、十六進制字元對應為:
'{:b}'.format(64) #二進制
傳回:
'1000000'
十進制
'{:d}'.format(64) #十進制
傳回:
'64'
八進制
'{:o}'.format(64) #八進制
傳回:
'100'
十六進制
'{:x}'.format(64) #十六進制
傳回
'40'
分别使用了b、d、o、x的進制辨別。
對浮點數,精度可以跟類型f一起使用,
'{:.2f}'.format(321.33345)
輸出為:
'321.33'
如果數字比較大,還可以用 ‘,‘分段,例如:
'{:,d}'.format(123456789)
傳回:
'123,456,789'
字元串的格式化
python字元串格式化通過方法 format()實作,用法為:
S.format(*args, **kwargs) -> str
其中:
S:為需要執行格式化的字元串。通常包括{}組成的替換字段、字元串常量和辨別符号等,替換字段可以通過{位置}或{關鍵字}指出。
args:替換字段對應的值。
通過format()方法,可以将字元串格式化為指定的格式,同時将入參值指派給字元串指定的替換字段,例如:
'welcome {} to {}'.format('zhangsan','beijing')
傳回字元串為:
'welcome zhangsan to beijing'
字元串的format方法接受參數不限個數,位置可以不按順序,可以不用或者用多次,例如:
'welcome {0},{0}\'father,{0}\'mother to {1}'.format('zhangsan','beijing')
傳回字元串為:
"welcome zhangsan,zhangsan'father,zhangsan'mother to beijing"
唯一差別的是{}中需要加入重複替換的參數序号即可,另外,除了位置替換,也可以使用名稱替換,例如:
lsstr='公司名:{name},網站:{web},位址:{add}'
s=lsstr.format(name='百度',web='www.baidu.com',add='北京')
print(s)
傳回為:
‘公司名:百度,網站:www.baidu.com,位址:北京'
帶格式限定符的格式化
在程式設計中,我們經常需要對字元串進行對齊處理,實作不同長度字元串輸出的整齊排列,這就需要進行格式化和補全操作,在python中有豐富的的“格式符”來實作這一點
其文法是{}中帶:、^、<、>格式限定符,分别是對應填充符号、居中、左對齊、右對齊,
:号後面帶填充的字元,且隻能是一個字元,也可以不指定,預設是用空格填充,最後面可以帶輸出的字元串長度,例如:
'{:>8}'.format('189')
傳回值為:
' 189'
為一個長度為8,左邊填充空格的字元串
再比如:
'{:*^8}'.format('189')
傳回值為:
'**189***'
為一個長度為8,189居于中心,兩側填充*的字元串
字元串的連接配接
python的字元串連接配接方法也很多,例如通過print等等,如果需要對連結清單等複雜類型連接配接,可以通過函數 join進行,用字元串依次連接配接清單中每一個元素,例如:
str_list = ['I ','am ','an ','engineer']
a.join(str_list)
傳回:
'I am an engineer'
字元串切片
如果需要擷取字元串的某一部分,可以使用
str[beginPosition:endPosition]
其中str為需要截取的字元串,beginPosition為需要截取的第一個字元的下标,endPosition為截取字元最後一個的位置,需要注意的是beginPosition和endPosition為下标值,均從0開始,包含beginPosition,不包含endPosition位置的字元,例如:
text = 'asd123456'
text[1:3]
傳回為:
'sd'
當然,beginIndex,endPosition都可以不寫,不寫的情況預設第一個或者最後一個,例如:
text[:3] 傳回'asd'
text[5:]傳回'3456'
字元串轉換為 ASCII 值
在python中,一般使用使用 for 循環和 ord() 函數擷取字元串的 ASCII值,其中ord()函數來擷取字元串的 ASCII 值,函數傳回傳遞字元串的 Unicode。它接受1作為字元串的長度。for循環用于疊代序列,舉例如下:
text = 'asd123456'
ascii_values = [ord(character) for character in text]
print(ascii_values)
傳回值為
[97, 115, 100, 49, 50, 51, 52, 53, 54]