天天看點

python中字元串及其格式轉換技巧python中字元串及其格式轉換技巧

目錄

  • 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]