python字串內建函式操作例項原始碼講解
阿新 • • 發佈:2019-01-10
#coding=utf8 ''' 下面列出目前字串內建支援的方法,所有這些方法都包含了對Unicode的支援, 一些甚至是專門用於Unicode的。 ---------------------------------------------------------------------------- string.capitalize() : 把字串的第一個字元大寫 string.center(width): 返回一個原字串居中, 並使用空格填充值長度width的新字串 string.count(str,beg=0, end=len(string)) : 返回str在string裡面出現的次數, 如果beg或者end指定則返回指定範圍內str出現的次數 string.decode(encoding="utf8", errors="strict"): 以encoding指定的編碼格式解碼string, 如果預設報一個ValueError的異常, 除非errors指定的是'ignore'或者'replace' string.encode(encoding="utf8", errors="strict"): 以encoding指定的編碼格式編碼string, 如果預設報一個ValueError的異常, 除非errors指定的是'ignore'或者'replace' string.endswith(obj,beg=0,end=len(string)): 檢查字串是否以obj結束, 如果beg或者end指定則檢查指定範圍內是否以obj結束, 如果是,返回True,否則返回False string.expandtabs(tabsize=8): 把字串string中的tab符號轉為空格, 預設的空格數tabsize是8 string.find(str,beg=0,end=len(string)): 檢測str是否包含在string中,如果beg和end指定範圍, 檢測是否包含在指定範圍內,如果是返回開始的索引值, 否則返回-1 string.index(str,beg=0,end=len(string)): 跟find()一樣,如果str不在string中會報一個異常。 string.isalnum(): 如果string至少有一個字元並且所有字元都是字母或數字則返回True,否則返回False。 string.isalpha(): 如果string至少有一個字元並且所有字元都是字母則返回True,否則返回False。 string.isdecimal(): 如果string只包含十進位制數字則返回True,否則返回False。 string.isdigit(): 如果string只包含數字則返回True,否則返回False。 string.islower(): 如果string中包含至少一個區分大小寫的字元,並且所有這些字元都是小寫,則返回True。 string.isnumeric(): 如果string中只包含數字字元,則返回True,否則返回False。 string.isspace(): 如果string中只包含空格,則返回True,否則返回False string.istitle(): 如果string是標題化的,則返回True,否則返回False string.isupper(): 如果string中包含至少一個區分大小寫的字元,並且所有這些字元都是大寫,則返回True string.join(seq): Merges以string作為分隔符,將seq中所有的元素(的字串表示)合併為一個新的字串。 string.ljust(width): 返回一個原字串左對齊,並使用空格填充至長度width的新字串 string.lower(): 轉換string中所有大寫字元為小寫。 string.lstrip(): 截掉string左邊的空格。 string.partition(str): 有點像find()和split()的結合體,從str出現的第一個位置起, 把字串string分成一個3元素的元組(string_pre_str,str,string_post_str), 如果string中不包含str則string_pre_str==string。 string.replace(str1,str2,num=string.count(str1)): 把string中的str1替換成str2,如果num指定,則替換不超過num次。 string.rfind(str,beg=0,end=len(string)): 類似於find()函式,不過是從右邊開會查詢。 string.rindex(str,beg=0,end=len(string)): 類似於index(),不過是從右邊開始。 string.rjust(width): 返回一個原始字串右對齊, 並使用空格填充至長度width的新字串。 string.rpartition(str): 類似於partition()函式,不過是從右邊開始。 string.rstrip(): 刪除string字串末尾的空格。 string.split(str="",num=string.count(str)): 以str為分隔符切片str,如果num有指定值,則僅分隔num個子字串。 string.splitlines(num=string.count("\n")): 按照行分隔,返回一個包含各行作為元素的列表, 如果num指定則僅切片num個行。 string.startswith(obj,beg=0,end=len(string)): 檢查字串是否是以obj開頭,是則返回True, 否則返回False。如果beg和end指定值,則在指定範圍內檢查。 string.strip([obj]): 在string上執行lstrip()和rstrip() string.swapcase(): 翻轉string中的大小寫 string.title(): 返回“標題化”的string,就是說所有單詞都是以大寫開始, 其餘字母均為小寫。 string.translate(str,del=""): 根據str給出的表(包含256個字元)轉換string的字元, 要過濾掉的字元放到del引數中。 string.upper(): 轉化string中的小寫字母為大寫。 string.zfill(width): 返回長度為width的字串,原字串string右對齊,前面填充0 ---------------------------------------------------------------------------- ''' import string #操作要用的字串 testString="where there is a will ,there is a way" testString_1="I am 45 years,I born in 1999" #把字串的第一個字元大寫 print "--------------Call capitalize()-------------" print testString.capitalize() print "-----------------------------------------" print #呼叫center()函式,把字元居中 #並使用空格填充至長度為原字串二倍的新字串 print "--------------Call center()-------------" print testString.center(len(testString)*2) print "-----------------------------------------" print #記錄字串中ere出現的次數 #我這個版本沒有beg、end引數,只有一個str引數 print "--------------Call count()-------------" print testString.count("ere") print "-----------------------------------------" print #設定字串編碼格式 print "--------------Call encode()-------------" print testString.encode("utf8") print "-----------------------------------------" print #呼叫endswith函式 #只有一個引數suffix,沒喲引數beg、end print "--------------Call endswith()-------------" print testString.endswith("way") print "-----------------------------------------" print #把字串中的tab符號轉為空格, #預設的空格數tabsize是8 print "--------------Call expandtabs()-------------" print testString.expandtabs(8) print "-----------------------------------------" print #查詢str中是否包含某個人字元 #如果包含返回索引值 print "--------------Call find()-------------" print "The first appear:",testString.find("is") print "-----------------------------------------" print #呼叫index()函式 print "--------------Call index()-------------" print "The index of the first appear ere :",testString.index("ere") print "-----------------------------------------" print #呼叫isalnum()函式 #所有字元必須是字母或數字,不能包含其他字元 #否則為true print "--------------Call isalnum()-------------" print "456abc".isalnum() print "456 abc".isalnum() print "-----------------------------------------" print #呼叫isalpha() #如果字串的所有字元都是字母則返回True print "--------------Call isalpha()-------------" print "abc".isalpha() print "abc12".isalpha() print "-----------------------------------------" print #呼叫isdecimal() #如果字串只包含十進位制數則返回True #當前版本不包含該方法 #print "89".isdecimal() #呼叫isdigit() #如果只包含數字則返回True print "--------------Call isdigit()-------------" print testString_1.isdigit() print "1223456".isdigit() print "-----------------------------------------" print #呼叫islower() #判讀字串是否全部為小寫,如果為小寫為True print "--------------Call islower()-------------" print testString_1.islower() print "1223abcde".islower() print "-----------------------------------------" print #呼叫isnumeric() #判讀字串是否全部為數字,如果為數字為True #當前版本不包含isnumeric函式 ''' print "--------------Call isnumeric()-------------" print testString_1.isnumeric() print "1223.123".isnumeric() print "-----------------------------------------" print ''' #呼叫isspace() #判讀字串是否全部為空格,如果為全部為空格為True print "--------------Call isspace()-------------" print testString_1.isspace() print " ".isspace() print "-----------------------------------------" print #呼叫istitle() #判讀字串是否全部為空格,如果為全部為空格為True print "--------------Call istitle()-------------" print "I Am Ewang ".istitle() print "i am ewang ".istitle() print "-----------------------------------------" print #呼叫isupper() #判讀字串是否全部為大寫,如果為大寫為True print "--------------Call isupper()-------------" print testString_1.isupper() print "1223ABC".isupper() print "-----------------------------------------" print #呼叫join() #把" love "加入IU中,用" love "把字元進行分開 print "--------------Call join()-------------" print " love ".join("IU") print "-----------------------------------------" print #呼叫ljust() #字串左對齊,並用空格填充所需長度 print "--------------Call ljust()-------------" print "love".ljust(8) print "-----------------------------------------" print #呼叫lower() #把字串轉換為小寫 print "--------------Call lower()-------------" print "LOVE".lower() print "-----------------------------------------" print #呼叫lstrip() #去掉左邊空格 print "--------------Call lstrip()-------------" print "LOVE ".lstrip() print "-----------------------------------------" print #呼叫partition() #從is出現的第一個位置,把字串分成一個三元素的元組 print "--------------Call partition()-------------" print testString.partition("is") print "-----------------------------------------" print #呼叫partition() #從is出現的第一個位置,把字串分成一個三元素的元組 print "--------------Call partition()-------------" print testString.partition("is") print "-----------------------------------------" print #呼叫replace() #把is替換成IS,並指定替換次數為2 print "--------------Call replace()-------------" print testString.replace("is","IS",2) print "-----------------------------------------" print #呼叫rfind() #從右邊開始查詢字串,指定開始和結束位置 print "--------------Call rfind()-------------" print testString.rfind("is",0,34) print "-----------------------------------------" print #呼叫rfind() #從右邊開始查詢字串,指定開始和結束位置 print "--------------Call rfind()-------------" print testString.rfind("is",0,34) print "-----------------------------------------" print #呼叫rindex() #從右邊開始查詢字串,指定開始和結束位置 print "--------------Call rindex()-------------" print testString.rindex("is",0,34) print "-----------------------------------------" print #呼叫rjust() #字串右對齊,並使用空格填充值長度為8的新字串 print "--------------Call rjust()-------------" print "love".rjust(8) print "-----------------------------------------" print #呼叫rpartition() #從右邊開始is出現的第一個位置,把字串分成一個三元素的元組 print "--------------Call rpartition()-------------" print testString.rpartition("is") print "-----------------------------------------" print #呼叫rstrip() #刪除字串末尾的空格 print "--------------Call rstrip()-------------" print testString.rstrip() print "-----------------------------------------" print #呼叫split() #根據is分隔字串,,並指定分隔符出現的次數為1 print "--------------Call split()-------------" print testString.split("is",1) print testString.split("is",2) print testString.split("is",3) print "-----------------------------------------" print #呼叫splitlines() #按照行分隔,返回一個包含各行作為元素 #指定換行符\n的個數 oneDemo=''' one two three four five six seven eight nine ten eleven twleve ''' print "--------------Call splitlines()-------------" print oneDemo.splitlines(0) print oneDemo.splitlines(1) print oneDemo.splitlines(6) print "-----------------------------------------" print #呼叫startswith(obj) #檢查字串是否以obj開頭 #如果是返回True,否則返回False。 #如果指定開始和結束位置,則在指定位置檢查 print "--------------Call startswith()-------------" print testString.startswith("is",0,20) print testString.startswith("where",0,10) print testString.startswith("where") print "-----------------------------------------" print #呼叫strip([obj]) #刪除字串開始和結束的空格 print "--------------Call strip()-------------" print " someone like to eat hotdog ".strip() print "-----------------------------------------" print #呼叫swapcase() #翻轉string中的大小寫 print "--------------Call swapcase()-------------" print " someone like to eat HOTDOG ".swapcase() print "-----------------------------------------" print #呼叫title() #返回標題化的string,所有單詞都是以大寫開始 #其餘字母都是小寫 print "--------------Call title()-------------" print " someone like to eat hotdog ".title() print "-----------------------------------------" print #呼叫translate(str,del="") #根據str給出的錶轉換string的字元 #要過濾掉的字元放在del引數中 print "--------------Call translate()-------------" instr = 'someone' outstr = '1234567' #返回一個翻譯表 #建立一個對映,someone分別對應1234567 #由於存在重複字母,所以在對映過程中,以最新的值為準 #即:o對應5,e對應7 table = string.maketrans(instr,outstr) astr = 'someone--1234567' #執行translate時,someone被翻譯為:1537567 tas=astr.translate(table,"1234") #如果相等,則兩個相等 print cmp("1537567--567",tas) print tas print "-----------------------------------------" print #呼叫upper() #把字串變成大寫字母 print "--------------Call title()-------------" print " someone like to eat hotdog ".upper() print "-----------------------------------------" print #呼叫zfill(width) #返回長度為width的字串,原字串string右對齊,前面填充0 print "--------------Call zfill()-------------" print " someone".zfill(10) print "-----------------------------------------" print