(6)基本對象類型--字符串相關函數(P2)

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

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市,隨后出現的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 228,702評論 6 534
  • 序言:濱河連續發生了三起死亡事件,死亡現場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機,發現死者居然都...
    沈念sama閱讀 98,615評論 3 419
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事?!?“怎么了?”我有些...
    開封第一講書人閱讀 176,606評論 0 376
  • 文/不壞的土叔 我叫張陵,是天一觀的道長。 經常有香客問我,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 63,044評論 1 314
  • 正文 為了忘掉前任,我火速辦了婚禮,結果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當我...
    茶點故事閱讀 71,826評論 6 410
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發上,一...
    開封第一講書人閱讀 55,227評論 1 324
  • 那天,我揣著相機與錄音,去河邊找鬼。 笑死,一個胖子當著我的面吹牛,可吹牛的內容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 43,307評論 3 442
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 42,447評論 0 289
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后,有當地人在樹林里發現了一具尸體,經...
    沈念sama閱讀 48,992評論 1 335
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 40,807評論 3 355
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發現自己被綠了。 大學時的朋友給我發了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 43,001評論 1 370
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 38,550評論 5 361
  • 正文 年R本政府宣布,位于F島的核電站,受9級特大地震影響,放射性物質發生泄漏。R本人自食惡果不足惜,卻給世界環境...
    茶點故事閱讀 44,243評論 3 347
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 34,667評論 0 26
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春,著一層夾襖步出監牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 35,930評論 1 287
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個月前我還...
    沈念sama閱讀 51,709評論 3 393
  • 正文 我出身青樓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 47,996評論 2 374

推薦閱讀更多精彩內容