標籤:
優雅的字串
前言
記得我在Python學習總結第一篇中有提到字串,那個可以算是先打個招呼吧,因為沒有提到任何關於字串的處理方法。今天,給大家詳細講解一下Python中字串的使用方法,如有不當或不足之處,還請大家指出及補充,先謝過。
基底字元串操作
對於序列的操作,我們馬上可以想到的都有什嗎?索引?分區?乘法?判斷成員資格?求長度?求最大最小值?沒錯,在字串的領域中,我們也同樣可以適用。不過,千萬千萬要牢記一點:字串是不可變的。所以,在字串中實施分區賦值是不可以的辣。
字串格式化
談到字串格式化,實在是很平常的啦,C++裡我們都是怎麼樣用的?memset?那麼在Python中呢,字串格式化的操作符就是百分比符號%來表示。
注意:%也可以用作模數運算。
字串格式化方法:在字串中需要格式化的地方一律用%s來表示。然後輸出的時候在%的左側放置一個字串(需要格式化的字串),右側放置需要用來格式化字串的值(可以是一個數字或者一個字串,也可以是包含多個值的元組或者字典)。
注意:%s和用來格式化字串的值的個數必須要相同。
格式化字串中的%s 部分稱為轉換說明符,它標記了需要插入轉換值的位置。如果要格式化實數(浮點數),可以使用f說明符,同時提供需要的精度:一個句點再加上希望保留的小數位元(後面也有講解到)。
模板字串:通過調用字串中模板方法來格式化字串。具體方法:substitute模板方法會用傳遞過來的關鍵字參數foo替換字串中的$foo。
運行結果如下:
基本的轉換說明符:
(1)%字元:標記轉換說明符的開始。
(2)轉換標誌(可選):-表示靠左對齊(預設為靠右對齊),+表示在轉換值之前要加上加號或減號,0表示轉換值若位元不夠則用0填充。
(3)%後最小欄位寬度(可選):轉換後的字串至少應該具有該值指定的寬度。
(4)點(.)後跟精度值(可選):如果轉換的是實數,精度值就表示出現在小數點後的位元;如果轉換的是字串,那麼該數字就表示最大的欄位寬度。如果是*,那麼精度將會從元組中讀出。
字串方法
find:在一個較長的字串中尋找子字串,它返回子串所在位置的最左端索引,如果沒有找到就返回-1。
join:在隊列中添加元素。
lower:返回字串中的字母小寫化版本。
title/capwords:將字串轉換成為標題(即所有單詞的首字母大寫,其他字母小寫)
replace:返回字串的所有匹配項均被替換之後得到的字串。
split:是join的逆方法,將字串分割成序列。(如果不提供任何分隔字元,程式會預設所有空格作為分隔字元)
strip:返回去除兩側(不包括內部)空格的字串。也可以指定需要去除兩側的字元,將它們列為參數即可。
lstrip和rstrip。
translate:和replace方法一樣,可以替換字串中的某些部分,但是和前者不同的是,translate方法只處理單個字元。它的優勢在於可以同時進行多個替換。在使用translate轉換之前,需要事先完成一張轉換表(你猜想到了嗎),我們可以使用string模組中的maketrans函數就行。
maketrans函數接受兩個參數:兩個等長的字串,表示第一個字串中的每個字元都用第二個字串中相同位置的字元替換。
Python學習總結之三 -- 優雅的字串