優雅的字符串
前言
記得我在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函數接受兩個參數:兩個等長的字符串,表示第一個字符串中的每個字符都用第二個字符串中相同位置的字符替換。