1. 程式人生 > >Python修行之路之字符串(二)修改、查找、格式化

Python修行之路之字符串(二)修改、查找、格式化

value 小寫 %d aar suffix mat 定義 常量 大寫

字符串修改
replace(old,new[,count]) - > str
字符串中找到匹配替換為新子串,返回新字符串
count表示替換幾次,不指定就是全部替換
原字符串為一個常量,不可變。修改返回的為新子串
strip([chars]) - > str
從字符串兩端去除指定字符集chaars中的所有字符
如果chars沒有指定,去除兩端的空白字符
空白字符、就是指看不見的字符如\r\n\t空格 空白字符,空串確實為空
lstrip([chars]) - > str
從左開始
rstrip([chars]) - > str
從右開始
字符串查找
find(sub[,start[,end]]) - > int
在指定的區間[start,end),從左至右,查找子串sub。找到返回索引,沒找到返回-1
順序查找,不可能跳躍查找
rfind(sub[,start[,end]]) - > int
在指定的區間[start,end),從右至左,查找子串sub。找到返回索引,沒找到返回-1

    index(sub[,start[,end]]) - > int
        在指定的區間[start,end),從左至右,查找子串sub.找到返回索引,沒找到拋出ValueError
    rindex(sub[,start,[end]]) - > int
        在指定的區間[start,end),從左至右,查找子串sub.找到返回索引,沒找到拋出異常ValueError

               *時間復雜度
                    index和count方法都是O(n)
                    隨著列表數據規模的增大,而效率下降
                len(string)
                    返回字符串的長度,即字符的個數
    count(sub[,start[,end]])-> int
        在指定的區間[start,end),從左至右,統計子串sub出現的次數

字符串判斷
ends with(suffix[,start[,end]]) - >bool
在指定的區間[start,end),字符串是否是suffix結尾
startswith(prefix[,start,end]]) - > bool
在指定的區間[start,end),字符串是否是prefix開頭

    *查找是註意定義範圍,默認遍歷非常耗時

字符串判斷is系列
isalnum() ->bool是否是字母和數字組成
isalpha()是否是字母
isdecimal()是否只包含十進制數字
isdigit()是否全部數字(0-9)
isidentifier()是不是字母和下劃線開頭,其他都是字母、數字、下劃線。

islower()是否都是小寫
isupper()是否全部大寫
isspace()是否只包含空白字符
字符串格式化
字符串的格式化是一種拼接字符串輸出樣式的手段,更靈活方便
join拼接只能使用分隔符,且要求被拼接的是可叠代對象
+拼接字符串還算方便,但是非字符串需要先轉換為字符串才能拼接
在2.5版本之前,只能使用printf style風格的print輸出
printf-style formatting,來自於c語言的print輸出
格式要求
占位符:使用%和格式字符組成,例如%s、%d等
s調用str(),r會調用repr().所有對象都可以被這兩個轉換
占位符中還可以插入修飾字符,例如%03d表示打印3個位置,不夠前面補零
format%value格式字符串和被格式的值之間使用%分隔
values只能是一個對象,或是一個和格式字符串占位符數目相等的元組,或一個字典

    *不是所有數字都能精確表達,只能控制在一定範圍
    format函數格式字符串語法---Python鼓勵使用
        "{}{xxx}".format(*args,**kwargs) - > str
        args是位置參數,是一個元組
        kwargs是關鍵字參數,是一個字典
        花括號表示占位符
        {}表示按照順序匹配位置參數,{n}表示取位置參數索引為n的值
        {xxx}表示在關鍵字參數中搜索名稱一致的

        {{}}表示打印花括號

Python修行之路之字符串(二)修改、查找、格式化