Python處理字符串的常用函數(shù)實(shí)例總結(jié)
前言
今天我們說了字符串的基礎(chǔ),格式化,這次我們講解字符串的常用函數(shù),不要錯(cuò)過!
前兩篇都在本文同個(gè)專欄,歡迎關(guān)注。下面開始講解。
字符串都有哪些操作?
實(shí)際開發(fā)都有這些需求:
第一大類:判斷識(shí)別字符串
- 判斷字符串屬于那種字面類型(數(shù)字,全字母,其他)
- 判斷字符串包含某些結(jié)構(gòu)(數(shù)字大寫,局部子串,子串出現(xiàn)頻次等)
第二類:字符串編輯的操作(生成新字符串)
- 字符串的替換/合并/填充等
- 字典替換,填充0值,清空操作等
第三類:字符串跟字節(jié)串的互轉(zhuǎn)。
這類操作通常發(fā)生在數(shù)據(jù)跨程序/跨服務(wù)器傳輸,我們傳輸bytes,然后獲取轉(zhuǎn)string類型。
第一類 判斷識(shí)別字符串
學(xué)委準(zhǔn)備了下面的代碼:
#!/usr/bin/env python # -*- coding: utf-8 -*- # @Time : 2021/10/30 10:13 上午 # @Author : LeiXueWei # @CSDN/Juejin/Wechat: 雷學(xué)委 # @XueWeiTag: CodingDemo # @File : string_funs_cat1.py # @Project : hello import sys slogan = "keep studying, keep coding, I am Levin" # 判斷結(jié)構(gòu) print("算某個(gè)子串出現(xiàn)數(shù)次: slogan.count('keep') = ", slogan.count('keep')) print("找某個(gè)子串首次出現(xiàn)的下標(biāo): slogan.find('keep') = ", slogan.find('keep')) print("找某個(gè)子串最后出現(xiàn)的下標(biāo): slogan.rfind('keep') = ", slogan.rfind('keep')) print("找某個(gè)子串下標(biāo): slogan.index('keep') = ", slogan.index('keep')) print("找某個(gè)子串下標(biāo): slogan.rindex('keep') = ", slogan.rindex('keep')) print("是否'keep'開頭的字符串: slogan.startswith('keep') = ", slogan.startswith('keep')) print("是否'keep'結(jié)束的字符串: slogan.endswith('keep') = ", slogan.endswith('keep')) # 字符串屬性相關(guān) print("字符串長(zhǎng)度: len(slogan) = ", len(slogan)) print("字符串是否都是空格: slogan.isspace() = ", slogan.isspace()) print("字符串是否大寫: slogan.isupper() = ", slogan.isupper()) print("字符串是否小寫: slogan.islower() = ", slogan.islower()) print("字符串是否為每個(gè)詞首字母都大寫: slogan.istitle() = ", slogan.istitle()) # 判斷字符串?dāng)?shù)據(jù)類型 print("字符串是否全為字母: slogan.isalpha() = ", slogan.isalpha()) print("字符串是否全為數(shù)字: slogan.isalnum() = ", slogan.isalnum()) print("字符串是否數(shù)字: slogan.isnumeric() = ", slogan.isnumeric()) print("字符串是否浮點(diǎn)數(shù): slogan.isdecimal() = ", slogan.isdecimal()) print("字符串是否為空格串: slogan.isspace() = ", slogan.isspace())
讀者可以直接復(fù)制運(yùn)行代碼,學(xué)委補(bǔ)充了運(yùn)行效果圖:
第二類 字符串編輯的操作
下面學(xué)委準(zhǔn)備了一些代碼展示:
#!/usr/bin/env python # -*- coding: utf-8 -*- # @Time : 2021/10/30 10:13 上午 # @Author : LeiXueWei # @CSDN/Juejin/Wechat: 雷學(xué)委 # @XueWeiTag: CodingDemo # @File : string_funs_cat2.py # @Project : hello import sys slogan = "keep studying, keep coding, I am Levin" print("首字母大寫: slogan.capitalize() = ", slogan.capitalize()) print("全部字母大寫: slogan.upper() = ", slogan.upper()) print("全部字母小寫: slogan.lower() = ", slogan.lower()) print("轉(zhuǎn)為首字母都大寫(標(biāo)題風(fēng)格): slogan.title() = ", slogan.title()) print("大小寫逆轉(zhuǎn): slogan.swapcase() = ", slogan.swapcase()) table = slogan.maketrans({"e": "5"}) print("字符串替換表: slogan.translate(table) = ", slogan.translate(table)) # 字符串替換,合并,填充等 print("替換tabs為n個(gè)空格: 'hello\t學(xué)委'.expandtabs(4) = '", "hello\t學(xué)委".expandtabs(4)) print("左子串來串聯(lián)傳入的列表: ' '.join(slogan) = '", " ".join(slogan)) print("替換子串: ' '.replace(first, second) = '", slogan.replace("e", "11")) print("填充0值: slogan.rzfill(2)= '", slogan.zfill(50)) print("填充#值: slogan.rjust(50,"#")= '", slogan.rjust(50,"#")) print("填充#值: slogan.ljust(50,"#")= '", slogan.ljust(50,"#")) print("移除首尾空格: slogan.strip()= '", slogan.strip()) data = slogan.split("e") print("split slogan into data= ", data)
運(yùn)行效果如下:
第三類:字符串跟字節(jié)串的互轉(zhuǎn)
下面學(xué)委準(zhǔn)備了一些代碼展示:
#!/usr/bin/env python # -*- coding: utf-8 -*- # @Time : 2021/10/30 10:13 上午 # @Author : LeiXueWei # @CSDN/Juejin/Wechat: 雷學(xué)委 # @XueWeiTag: CodingDemo # @File : string_funs_cat3.py # @Project : hello import sys slogan = "keep studying, keep coding, I am Levin" bytes = slogan.encode("utf-8") print("type of encoded string = ", type(bytes)) # 注意python的string類型沒有decode函數(shù),該函數(shù)屬于bytes類型對(duì)象特有!??! print("type of decoded byte = ", type(bytes.decode("utf-8"))) print("type of decoded byte = ", bytes.decode("utf-8"))
運(yùn)行效果如下:
總結(jié)
其實(shí)學(xué)委還漏了幾個(gè)函數(shù),但是不想介紹它們了。
學(xué)習(xí)編程不是去記憶,但是也并非啥都不看都靠感覺。
我喜歡下面這句話:
讀書破萬卷,下筆如有神!
精心準(zhǔn)備的代碼,讀者運(yùn)行一下,自己感悟!(注釋寫的很清楚了)
到此這篇關(guān)于Python處理字符串的常用函數(shù)的文章就介紹到這了,更多相關(guān)Python處理字符串函數(shù)內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
介紹Python的Urllib庫(kù)的一些高級(jí)用法
這篇文章主要介紹了Python的Urllib庫(kù)的一些高級(jí)用法,是用Python編寫爬蟲的一些基礎(chǔ)知識(shí),需要的朋友可以參考下2015-04-04Python中基本的日期時(shí)間處理的學(xué)習(xí)教程
這篇文章主要介紹了Python中基本的日期時(shí)間處理的學(xué)習(xí)教程,日期時(shí)間相關(guān)模塊的使用是Python入門學(xué)習(xí)中的基礎(chǔ)知識(shí),需要的朋友可以參考下2015-10-10python實(shí)現(xiàn)封裝得到virustotal掃描結(jié)果
這篇文章主要介紹了python實(shí)現(xiàn)封裝得到virustotal掃描結(jié)果的方法,是比較實(shí)用的技巧,可將掃描結(jié)果寫入數(shù)據(jù)庫(kù),需要的朋友可以參考下2014-10-10利用Python實(shí)現(xiàn)sqlite3增刪改查的封裝
在一些小的應(yīng)用中,難免會(huì)用到數(shù)據(jù)庫(kù),Sqlite數(shù)據(jù)庫(kù)以其小巧輕便,無需安裝,移植性好著稱,下面這篇文章主要給大家介紹了關(guān)于利用Python實(shí)現(xiàn)sqlite3增刪改查的封裝,需要的朋友可以參考下2021-12-12利用Pandas實(shí)現(xiàn)對(duì)數(shù)據(jù)進(jìn)行移動(dòng)計(jì)算
這篇文章主要為大家詳細(xì)介紹了如何利用Pandas實(shí)現(xiàn)對(duì)數(shù)據(jù)進(jìn)行移動(dòng)計(jì)算,文中的示例代碼講解詳細(xì),對(duì)我們了解Pandas有一定幫助,需要的可以參考一下2022-07-07Python三元運(yùn)算與lambda表達(dá)式實(shí)例解析
這篇文章主要介紹了Python三元運(yùn)算與lambda表達(dá)式實(shí)例解析,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2019-11-11Python+Socket實(shí)現(xiàn)基于TCP協(xié)議的客戶與服務(wù)端中文自動(dòng)回復(fù)聊天功能示例
這篇文章主要介紹了Python+Socket實(shí)現(xiàn)基于TCP協(xié)議的客戶與服務(wù)端中文自動(dòng)回復(fù)聊天功能,結(jié)合實(shí)例形式分析了Python+Socket實(shí)現(xiàn)帶自動(dòng)回復(fù)功能的TCP聊天程序相關(guān)操作方法與注意事項(xiàng),需要的朋友可以參考下2017-08-08Jupyter Notebook添加代碼自動(dòng)補(bǔ)全功能的實(shí)現(xiàn)
這篇文章主要介紹了Jupyter Notebook添加代碼自動(dòng)補(bǔ)全功能的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2021-01-01