<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
接下來我們會進入 字串常用方法的應用階段,重點學習字串的內建函數。正式學習之前,我們要先了解一個詞 物件 (劃重點,不是男女朋友!),只有知道 物件是什麼?才能更好的幫助我們接下來的學習。
對於 Python 來說,物件的概念,更像是身份的概念,我們可以理解為 每一個 變數 其實就是 物件。
Python裡面有一句話:萬物解釋物件
在程式設計領域中,通常把現實世界中的實體稱為物件,例如:
物件指的是一個具體的實體,不用於指代一個抽象的群體(或者也可以說是一個實體所處的群體)
類似的,飛機、地鐵這些具體的交通工具可以被稱為物件,但是不能說交通工具是一個物件
學習字串的常用方法之前,我們再來吻戲一下字串的索引
通過索引 [] 獲取字串中指定位置的字元,範例如下:
>>> s = 'Python' >>> s[0] 'P' >>> s[1] 'y' >>> s[2] 't' >>> s[3] 'h' >>> s[4] '0' >>> s[5] 'n'
在 Python 中,使用語法 string [start:end],獲取字串 string 中在 [start, end) 範圍的子字串。
注意範圍 [start, end) 包含 start,不包含 end。也可以理解為是列表的 左閉右開原則 。
舉例如下:
>>> s = 'Python' >>> s[1] 'y' >>> s[2] 't' >>> s[3] 'h' >>> s[0:5] 'Pytho'
find() 函數與 index() 函數的功能:都是返回你想找的成員(元素)的位置
find() 函數的用法:str = string.finde(item) item:想要查詢匹配的元素,返回一個整型
index() 函數的用法:str = string.index(item) item:想要查詢匹配的元素,返回一個整型或者報錯
附:字串裡的位置是從左向右從下標位[0]開始計算
find() 函數與 index() 函數的區別:
info = "Python is good code" print(info.find("P")) print(info.find("good")) print(info.find("Java")) # >>> 0 # >>> 10 # >>> -1
info = "Python is good code" print(info.index("P")) print(info.index("good")) print(info.index("Java")) # 直接報錯(語法錯誤) 'ValueError: substring not found' # >>> 0 # >>> 10
startswith() 函數的功能:判斷字串 開始位 是否是某成員(元素),可以指定統計的範圍,[start,end) 左閉區間右開區間
startswith() 函數的用法:str = string.startswith(item) item:想要查詢匹配的元素,返回一個布林值
endswith() 函數的功能:判斷字串 結尾 是否是某成員(元素),可以指定統計的範圍,[start,end) 左閉區間右開區間
startswith() 函數的用法:str = string.endswith(item) item:想要查詢匹配的元素,返回一個布林值
範例如下:
info = 'Python is good' print(info.startswith('Python')) print(info.startswith('Java')) print(info.endswith('good')) print(info.endswith('bad')) # >>> True # >>> False # >>> True # >>> False string_test = "this is string example" print(string_test.startswith('this')) # 字串是否以 this 開頭 print(string_test.startswith('string', 8)) # 從第九個字元開始的字串是否以 string 開頭 print(string_test.startswith('this', 2, 4)) # 從第2個字元開始到第四個字元結束的字串是否以 this 開頭 # >>> True # >>> True # >>> False
capitalize 的功能 : 將字串的首字母大寫
capitalize 的用法:str = string.capitalize() ;
範例如下:
>>> str = 'string' >>> str.capitalize() 'String'
capitalize() 的注意事項:
capitalize()函數小練習
將han meimei轉換成規範的英文名字,列印實現姓、名首字母都是大寫
name_1="han" name_2="meimei" print(name_1.capitalize() + ' ' +name_2.capitalize()) # >>> 輸出結果 'Han Meimei'
casefold()函數與lower()函數 的功能 : 將字串的全體字元小寫
casefold()函數與lower()函數 的用法:str = string.casefold() , str = string.lower() ;
範例如下:
>>> str_01 = 'Hello' >>> str_01.casefold() 'hello' >>> str_02 = 'World' >>> str_02.lower() 'world'
casefold()函數與lower()函數 的注意事項:
chinese = "你好,世界" english = "Hello,World" test_str = "test@1.com$OK" print(chinese.casefold()) print(chinese.lower()) print(english.casefold()) print(english.lower()) print(test_str.casefold()) print(test_str.lower())
既然 casefold()函數與lower()函數 都可以將字串的全體字元轉為小寫,那麼又有什麼區別呢?
其實還是有區別的,lower()函數是很早之前就存在的將字串小寫的方法,而casefold()函數則是 Python3.3版本之後才引入的小寫方法。lower()函數是將英文字元進行小寫,但是對德語等其他非英語字元就失去了效果,這個時候就是 casefold() 函數大顯身手的時候了。
casefold()函數與lower()函數 小練習
將下列三個驗證碼全部轉為 小寫
str_1 = “NAh8”
str_2 = “Sn6H”
str_3 = “HKFM”
str_1 = "NAh8" str_2 = "Sn6H" str_3 = "HKFM" print (str_1.lower()) print (str_2.casefold()) print (str_3.lower())
upper() 函數的功能:將字串全體大寫
upper() 函數的用法:str = string.upper()
範例如下:
>>> str = 'string' >>> str.upper() 'STRING'
capitalize 的注意事項:
str_test = 'Hello World' print(str_test.upper()) # >>> 'HELLO WORLD'
swapcase() 函數的功能:將字串中的字元進行大小寫轉換
swapcase() 函數的用法:str = string.swapcase()
swapcase() 函數的注意事項:只對字串的字母有效
info_one = 'Python is good' info_two = 'pthon web is so esay' print(info_one.swapcase()) print(info_two.swapcase())
zfill() 函數的功能:為字串定義長度,如果現有字串長度不滿足,缺少的部分自動用 0 補齊
zfill() 函數的用法:str = string.zfill(width) width:新字串希望的長度
zfill() 函數的注意事項:與字串的字元沒有關係;如果定義的字串長度小於當前字串長度,則不會發生變化。
info = "Hello World" print(info.zfill(10)) print(info.zfill(15)) print(info.zfill(20))
count() 函數的功能:統計字串出現的次數;或者說返回當前字串某個成員(元素)出現的次數
count() 函數的用法:str = string.zfill(item) item:查詢個數/次數的元素
count() 函數的注意事項:如果查詢的成員(元素)不存在,則返回 0
info = ''' Please send this message to those people who mean something to you,to those who have touched your life in one way or another,to those who make you smile when you really need it,to those that make you see the brighter side of things when you are really down,to those who you want to let them know that you appreciate their friendship. And if you don't, don't worry,nothing bad will happen to you,you will just miss out on the opportunity to brighten someone's day with this message. ''' this_count = info.count('this') you_count = info.count('you') love_count = info.count('love') print('"this"出現的次數為: ' + str(this_count) + '次') # >>> "this"出現的次數為: 2次 print('"you"出現的次數為: ' + str(you_count) + '次') # >>> "you"出現的次數為: 11次 print('"love"出現的次數為: ' + str(love_count) + '次') # >>> "maybe"出現的次數為: 0次
strip() 函數的功能 :去掉字串兩邊的指定元素,預設是空格
strip() 函數的用法 :str = string.strip(item) ,括弧裡傳一個想要去掉的成員(元素),可以不填寫
strip() 函數的拓展 :
範例如下:
info = ' Jack is a good boy ' new_info_01 = info.strip() print(new_info_01) # >>> Jack is a good boy new_info_02 = info.strip(info) print(new_info_02) print(len(new_info_02)) # >>> 實際上這裡的 'new_info_02' 已經北清空了 # >>> 0 清空後的 'new_info_02' 長度為0 text = 'abcde' text_lstrip = text.lstrip('a') print(text_lstrip) # >>> bcde text_rstrip = text.rstrip('e') print(text_rstrip) # >>> abcd
replace()函數的功能:把字串中的 old(舊字串) 替換成 new(新字串),並可以指定數量,預設 -1 代表替換全部
replace()函數的用法:str = string.replace(old, new, max)
範例如下:
info = "hello, Neo" print(info.replace("Neo", "Jack")) print(info.replace(" ", "*", 1)) # >>> hello, Jack # >>> hello,*Neo info_test = "hello world !!!" new_info_01 = info_test.replace("h", "H") new_info_02 = new_info_01.replace("w", "W") print(new_info_02.replace('!!!', 'Python')) # >>> Hello World Python
join()函數的功能:將序列中的元素以指定的字元連線生成一個新的字串
join()函數的用法:str = "".join(lists)
範例如下:
lists = ["a", "b", "c"] tuples = ("1", "2", "3") print("*".join(lists)) # >>> a*b*c print("@".join(tuples)) # >>> 1@2@3
知識點
“”.join(lists) 是常見的將列表、元組轉成字串的寫法
列表裡面只能存放字串元素,有其他型別的元素會報錯 TypeError: sequence item 0: expected str instance, int found
元組也能傳進去
split()函數的功能:將字串按照str分割成列表,如果引數 num 有指定值,則分隔 num+1 個子字串
split()函數的用法:str = string.split() ,括號內可以指定分隔符
使用空格將字串分割為多個單詞,返回一個列表,範例如下:
info = 'Hello World Python Is Good' print(info.split(" ")) # >>> ['Hello', 'World', 'Python', 'Is', 'Good'] print(info.split(" ", 1)) # >>> ['Hello', 'World Python Is Good']
預設情況下,使用空格將字串分割為多個單詞,可以在 split () 方法中指定分隔符,範例如下:
info = 'Hello World:Python Is_Good' print(info.split(":")) # >>> ['Hello World', 'Python Is_Good']
之所以說它是集合,是因為我們有多個函數返回的是 bool 型別,接下來我們看看都有哪些函數返回的是 bool 型別。
isspace() 函數的功能:判斷字串是否是一個由空格組成的字串
isspace() 函數的用法:isspace_bool_type = string.isspace() ,無引數可傳,返回一個 bool 型別
範例如下:
string = ' ' print(string.isspace()) # >>> True new_string = 'hello world' print(new_string.isspace()) # >>> False 雖然 'hello world' 中有一個空格,但是除了空格之外,還有其他字元,所以返回 False
附:這裡需要注意一點,由空格組成的字串不等於空字串,因為空格也佔用一個長度。
istitle()函數的功能:判斷字串是否是一個標題型別 (即多個單詞,首字母都是大寫)
istitle()函數的用法:istitle_bool_type = string.istitle() ,無引數可傳,返回一個 bool 型別
範例如下:
info_01 = 'Hello Jack' info_02 = 'hello jack' print(info_01.istitle()) # >>> True print(info_02.istitle()) # >>> False
附:需要注意的是該函數只能對英文有效
功能:
用法:
範例如下:
text_01 = 'GOOD BYE' print(text_01.isupper()) # >>> True print(text_01.islower()) # >>> False
以上就是Python學習之字串常用方法總結的詳細內容,更多關於Python字串的資料請關注it145.com其它相關文章!
相關文章
<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
综合看Anker超能充系列的性价比很高,并且与不仅和iPhone12/苹果<em>Mac</em>Book很配,而且适合多设备充电需求的日常使用或差旅场景,不管是安卓还是Switch同样也能用得上它,希望这次分享能给准备购入充电器的小伙伴们有所
2021-06-01 09:31:42
除了L4WUDU与吴亦凡已经多次共事,成为了明面上的厂牌成员,吴亦凡还曾带领20XXCLUB全队参加2020年的一场音乐节,这也是20XXCLUB首次全员合照,王嗣尧Turbo、陈彦希Regi、<em>Mac</em> Ova Seas、林渝植等人全部出场。然而让
2021-06-01 09:31:34
目前应用IPFS的机构:1 谷歌<em>浏览器</em>支持IPFS分布式协议 2 万维网 (历史档案博物馆)数据库 3 火狐<em>浏览器</em>支持 IPFS分布式协议 4 EOS 等数字货币数据存储 5 美国国会图书馆,历史资料永久保存在 IPFS 6 加
2021-06-01 09:31:24
开拓者的车机是兼容苹果和<em>安卓</em>,虽然我不怎么用,但确实兼顾了我家人的很多需求:副驾的门板还配有解锁开关,有的时候老婆开车,下车的时候偶尔会忘记解锁,我在副驾驶可以自己开门:第二排设计很好,不仅配置了一个很大的
2021-06-01 09:30:48
不仅是<em>安卓</em>手机,苹果手机的降价力度也是前所未有了,iPhone12也“跳水价”了,发布价是6799元,如今已经跌至5308元,降价幅度超过1400元,最新定价确认了。iPhone12是苹果首款5G手机,同时也是全球首款5nm芯片的智能机,它
2021-06-01 09:30:45