1. 基本對象類型(python里面一切皆是對象)
(接前文)
1.4.4 字符串函數
1.4.4.1 input 鍵盤輸入
>>> name = input("Please input your name:")? #name為字符串類型(str)
Please input your name:Connie
1.4.4.2 upper():字符串全部變為大寫
示例:
>>>str = "I Am Connie"
>>>str.upper() #返回I AM CONNIE
1.4.4.3 len() 返回對象(字符串、列表、元組、字典、集合等)長度或項目個數
語法:len( obj )
返回值:返回對象長度。示例:
>>>str = "connie"
>>>len(str)? #返回字符串長度6
1.4.4.4 lower() 轉換字符串中所有大寫字符為小寫
示例:
>>>str = "I Am Connie"
>>>str.lower() #返回i am connie
1.4.4.5 count(),統計字符串里某個子字符串出現的次數
語法:str.count(sub, start= 0,end=len(string))
sub -- 搜索的子字符串
start -- 字符串開始搜索的位置。默認為第一個字符,第一個字符索引值為0。
end -- 字符串中結束搜索的位置。字符中第一個字符的索引為 0。默認為字符串的最后一個位置。
示例:
str="www.runoob.com"
sub='o'
str.count(sub) #返回3
sub='run'
str.count(sub,0,10) #返回1
1.4.4.6 find() :檢測字符串中是否包含子字符串
語法:str.find(str, beg=0, end=len(string))
str -- 指定檢索的字符串
beg -- 開始索引,默認為0。
end -- 結束索引,默認為字符串的長度。
返回值:如果包含子字符串返回開始的索引值,否則返回-1。示例:
>>>str1 = "I am Tom, Tom cat"
>>>str2 = "Tom";
>>>str1.find(str2) #返回5
>>>str1.find(str2, 7)#返回10
>>>str1.find(str2,0, 7) #返回-1
1.4.4.7 index() 與find()方法同,區別是拋異常
語法:str.index(str, beg=0, end=len(string))
str -- 指定檢索的字符串
beg -- 開始索引,默認為0。
end -- 結束索引,默認為字符串的長度。
返回值:如果包含子字符串返回開始的索引值,否則拋異?!癡alueError: substring not found”
1.4.4.8 rfind() 返回字符串最后一次出現的位置(find返回第一個位置)
返回字符串最后一次出現的位置。
語法:str.rfind(str, beg=0 end=len(string))?
str -- 指定檢索的字符串
beg -- 開始索引,默認為0。
end -- 結束索引,默認為字符串的長度
返回值:返回字符串最后一次出現的位置,如果沒有匹配項則返回-1。
示例
>>>str1 = "I am connie"
>>>str2 = "am"
>>>str1.rfind(str2) #返回2(索引),即第三個字符位置
>>>str1.rfind(str2, 0, 10) #返回2(索引),即第三個字符位置
>>>str1.rfind(str2, 10, 0) #返回-1,找不到
1.4.4.9 rindex() 與rfind方法同,區別是拋異常
語法:str.rindex(str, beg=0 end=len(string))?
str -- 指定檢索的字符串
beg -- 開始索引,默認為0。
end -- 結束索引,默認為字符串的長度
返回子字符串 str 在字符串中最后出現的位置,如果沒有匹配則拋異常。
1.4.4.10 join() 將序列中的元素以指定的字符連接生成一個新的字符串
語法:str.join(sequence)
示例:
>>>s1 = "-"
>>>s2 = ""
>>>seq = ("c", "o", "n", "n", "i", "e") # 字符串序列
>>>s1.join( seq ) #用s1定義的符號('-')連接,輸出“c-o-n-n-i-e”
>>>s2.join( seq ) #用s2定義的符號(空)連接,輸出“connie”
1.4.4.11 split()? 指定分隔符對字符串進行切片
通過指定分隔符對字符串進行切片,如果第二個參數 num 有指定值,則分割為 num+1 個子字符串。
語法:str.split(str1, num)
str1 -- 分隔符,默認為所有的空字符,包括空格、換行(\n)、制表符(\t)等。
num -- 分割次數。默認為 -1, 即分隔所有。
返回值:返回分割后的字符串列表。
>>>str = "I am connie, from Shanghai"
>>>str.split()? # 以空格為分隔符,返回['I', 'am', 'connie,', 'from', 'Shanghai']
>>>str.split('a',1)? # 以 a 為分隔符,分隔1次,返回['I ', 'm connie, from Shanghai']
>>>str = '10001,10003,12310,13631,15136'
>>>str.split(',') #返回['10001', '10003', '12310', '13631', '15136']
1.4.4.12 strip() 刪除字符串頭尾指定的字符
用于移除字符串頭尾指定的字符(默認為空格)或字符序列。相關方法ltrip(),rtrip()
示例:
>>>str = "? ? I am Connie? "
>>>str.strip()? #返回'I am Connie? ? '
>>>str = "88888888I am connie888"
>>>str.strip('8')? #返回I am connie
1.4.4.13 lstrip() 刪除字符串左邊指定的字符
語法:str.lstrip([chars])
chars --指定截取的字符。
返回值:返回截掉字符串左邊的空格(默認)或指定字符后生成的新字符串。
示例:
>>>str = "? ? I am Connie? ? "
>>>str.lstrip()? #返回'I am Connie? ? '
>>>str = "88888888I am connie8888888"
>>>str.lstrip('8') #返回I am connie8888888
1.4.4.14 rstrip() 刪除字符串右邊指定字符
刪除 string 字符串右邊的指定字符(默認為空格)
>>>str = "I am connie8888888";
>>>str.rstrip('8')#返回I am connie
1.4.4.15 max() 返回字符串中最大的字母。大小按ASCII表中的編號
>>>str = "Connie0725"
>>>max(str) #返回o,小寫編號更大
>>>str = "725"
>>>max(str) #返回7
1.4.4.16 min() 返回字符串中最小的字母。大小按ASCII表中的編號
>>>str = "bda"
>>>max(str) #返回a
1.4.4.17 replace() 字符串替換
把字符串中的 old(舊字符串) 替換成 new(新字符串),如果指定第三個參數max,則替換不超過 max 次。
語法:str.replace(old, new[, max])
示例:
>>>str = "I am connie"
>>>str.replace("connie", "niuniu") #返回I am niuniu
>>>str = "www.google.com"
>>>str.replace("w", "1",2) #返回11w.google.com,指定了替換次數參數2,只替換2次
1.4.4.18 maketrans() 創建字符映射的轉換表(替換字符串中多個字符)
方法用于創建字符映射的轉換表,對于接受兩個參數的最簡單的調用方式,第一個參數是字符串,表示需要轉換的字符,
第二個參數也是字符串表示轉換的目標。兩個字符串的長度必須相同,為一一對應的關系。
語法:str.maketrans(intab, outtab)
intab -- 字符串中要替代的字符組成的字符串。
outtab -- 相應的映射字符的字符串。
示例:
>>> intab = "wo"
>>> outtab = "12"
>>> trantab = str.maketrans(intab, outtab)
>>> str = "www.google.com"
>>> str.translate(trantab)
輸出:'111.g22gle.c2m'
1.4.4.19 translate() 根據參數table給出的表轉換字符串的字符
translate()方法語法:
str.translate(table)
bytes.translate(table[, delete])
bytearray.translate(table[, delete])
table -- 翻譯表,翻譯表是通過 maketrans() 方法轉換而來。
deletechars -- 字符串中要過濾的字符列表。
返回值:返回翻譯后的字符串,若給出了 delete 參數,則將原來的bytes中的屬于delete的字符刪除,
剩下的字符要按照table中給出的映射來進行映射 。
示例:補充說明,該方法在不同的python版本中,有區別,需要查看具體的版本文檔
>>> intab = "ai"
>>> outtab = "12"
>>> trantab = str.maketrans(intab, outtab)? #創建翻譯對照表
>>> str = "I am niuniu"
>>> str.translate(trantab)#返回I 1m n2un2u,翻譯字典表中a對應1,i對應2
1.4.4.20 isalnum() 檢測字符串是否由字母和數字組成
檢測字符串是否由字母和數字組成。應用場所如校驗用戶注冊時用戶名是否合法,
通常用戶名只能是字母或數字,且以字母開頭
返回值:如果 string 至少有一個字符并且所有字符都是字母或數字則返回 True,否則返回 False
1.4.4.21 isalpha() 檢測字符串是否只由字母或文字組成
檢測字符串是否只由字母或文字組成。不能是數字或特殊符號
語法:str.isalpha()
返回值:如果字符串至少有一個字符并且所有字符都是字母或文字則返回 True,否則返回 False。
1.4.4.22 isdigit 檢測字符串是否只由數字組成
檢測字符串是否只由數字組成。應用場景如通常檢驗輸入的內容是否為電話號碼。
語法:str.isdigit()
返回值: 如果字符串只包含數字則返回 True 否則返回 False。
1.4.4.23 isnumeric() 檢測字符串是否只由數字組成(包括分數、指數等)
檢測字符串是否只由數字組成,數字可以是: Unicode 數字,全角數字(雙字節),羅馬數字,漢字數字。
指數類似 2 與分數類似 ? 也屬于數字。(太牛逼了!!!)
語法:str.isnumeric()
返回值:如果字符串中只包含數字字符,則返回 True,否則返回 False
示例:
>>> str = "connie0725"
>>> str.isnumeric() #返回false,不是全數字
>>> str = "0725"
>>> str.isnumeric()#返回true
>>> str = "?07252"
>>> str.isnumeric()#返回true,這個判斷太強大了
1.4.4.24 isdecimal() 字符串是否只包含十進制字符
示例:
>>> str = "niuniu0725"
>>> print (str.isdecimal()) #返回false
>>> str = "123"
>>> str.isdecimal() #返回true
>>> str.isdigit() #返回true 這兩個沒區別,都是判斷是否為數字
1.4.4.25 islower() 檢測字符串是否由小寫字母組成
語法:str.islower()
返回值:如果字符串中包含至少一個區分大小寫的字符,并且所有這些(區分大小寫的)字符都是小寫,則返回 True,否則返回 False。示例:
>>> str = "123456";
>>> str.islower() #返回false,字符串中沒有字母
>>> str = "ab123456def!$&";
>>> str.islower() #返回true,有字母且為小寫
>>> str = "ab123456dEf!$&";
>>> str.islower() #返回false,有字母為大寫
1.4.4.26 isupper() 字符串中所有的字母是否都為大寫
檢測字符串中所有的字母是否都為大寫。
返回值:如果字符串中包含至少一個區分大小寫的字符,并且所有這些(區分大小寫的)字符都是大寫,則返回 True,否則返回 False
示例:
>>> str = "I AM CONNIE!"
>>> str.isupper() #返回true,字母都是大寫,可以有其他符號
>>> str = "I AM CONNIE!,lalala"
>>> str.isupper() #返回flase
1.4.4.27 isspace() 檢測字符串是否只由空白字符組成
檢測字符串是否只由空白字符組成。應用場景通常是用戶輸入信息時,無意或故意輸入一串空格,這是有效的字符串,但通常
是無意義的字符串,系統對這種數據進行校驗。
語法:str.isspace()
返回值:如果字符串中只包含空格,則返回 True,否則返回 False.
示例:
>>> str = "? ? ? "
>>> str.isspace() #返回true
>>> str = "I am connie"
>>> str.isspace()#返回false
1.4.4.28 startswith()? 檢查字符串是否是以指定子字符串開頭
語法:str.startswith(substr, beg=0,end=len(string));
str -- 檢測的字符串。
substr -- 指定的子字符串。
strbeg -- 可選參數用于設置字符串檢測的起始位置。
strend -- 可選參數用于設置字符串檢測的結束位置。
返回值:如果檢測到字符串則返回True,否則返回False。
示例:
>>> str = "I am niuniu"
>>> str.startswith( 'am' )? # 返回False,不是am 開頭
>>> str.startswith( 'am', 2 )? #返回True, 從第3個字符開始的字符串
>>> str.startswith( 'am', 2, 4 ) #True 從第3個字符開始到第4個字符結束的字符串是否以am開頭。
1.4.4.29 capitalize() 字符串的第一個字母變成大寫,其他字母變小寫。
示例:
>>> str = 'this string example from runoob...Wow!!!'
>>> str.capitalize() #輸出:This string example from runoob...wow!!!
1.4.4.30 ljust() 原字符串左對齊,并用空格填充至指定長度
返回原字符串左對齊,并使用空格填充至指定長度的新字符串。如果指定的長度小于原字符串的長度則返回原字符串。
語法:str.ljust(width[, fillchar])
width -- 指定字符串長度。
fillchar -- 填充字符,默認為空格。
示例:
>>> str = "connie"
>>> str.ljust(20, '*') #字符串右邊填充*,直至字符串總長度為20
1.4.4.31 rjust() 原字符串左對齊,并用空格填充至指定長度
返回原字符串右對齊,并使用空格填充至指定長度的新字符串。如果指定的長度小于原字符串的長度則返回原字符串。
語法:str.rjust(width[, fillchar])
width -- 指定字符串長度。
fillchar -- 填充字符,默認為空格。
示例:
>>> str = "connie"
>>> str.rjust(20, '*') #字符串左邊填充*,直至字符串總長度為20
1.4.4.32 zfill() 方法 返回指定長度的字符串,原字符串右對齊,前面填充0
語法:str.zfill(width)
示例:
>>> str = "I am connie"
>>> str.zfill(20) #返回 000000000I am connie
說明:可以用str.rjust(20,'0') 方法替代。
1.4.4.33 center() 指定的寬度 width 居中的字符串
返回一個指定的寬度 width 居中的字符串
語法:str.center(width[, fillchar]),
width -- 字符串的總寬度。
fillchar -- 填充字符。
說明:
1、返回一個指定的寬度居中的字符串,如果width小于字符串寬度直接返回字符串,否則使用fillchar去填充。
2、如果 width 小于字符串寬度直接返回字符串,不會截斷:
3、fillchar 默認是空格
4、fillchar 只能是單個字符
示例:
>>> str = "www.runoob.com"
>>> str.center(21, '*') #輸出 ****www.runoob.com***
1.4.4.34 title():將字符串中各單詞的首字母變為大寫。
示例:
>>> name='python book'
>>> name.title(), 輸出Python Book
1.4.4.35 swapcase() 對字符串的大小寫字母進行轉換
用于對字符串的大小寫字母進行轉換。即大寫變小寫,小寫變大寫。想不到這個功能的應用場景
語法:str.swapcase()
1.4.4.36 endswith(),判斷字符串是否以指定后綴結尾
用于判斷字符串是否以指定后綴結尾,如果以指定后綴結尾返回 True,否則返回 False。
語法:str.endswith(suffix[, start[, end]])
suffix -- 該參數可以是一個字符串或者是一個元素。
start -- 字符串中的開始位置。
end -- 字符中結束位置。注意:該索引值為開區間。
示例:
>>> str='www.google.com'
>>> suffix='.com'
>>> str.endswith(suffix) #True
>>> str.endswith(suffix,5) #True
>>> str.endswith(suffix,0,13) #false
>>> str.endswith(suffix,0,14) #True