本文目錄一覽:
- 1、Python 基礎知識全篇-字符串(Strings)
- 2、python字符串操作
- 3、python 字符串提取信息方法總結
- 4、Python中字符串常用操作有哪些
- 5、Python處理字符串必備方法
Python 基礎知識全篇-字符串(Strings)
單引號和雙引號
字符串可以包含在單引號或雙引號中。
這種靈活的方式可以讓我們在字符串中包含引號。
當我們需要創建一個多行字符串的時候,可以用三個引號。如下所示:
改變大小寫
你可以很方便的改變字符串的大小寫。如下所示:
最常見的大小寫形式是全小寫(lower),首字母大寫(title)和全大寫(upper)。如下所示:
注意:初始字符串沒被改變。
你會經常見到這種用法。變量名後跟點和操作名稱,且後跟一組圓括號。圓括號里可能是空的,也可能包含一些數據。
variable_name.action()
在這個例子中, action 是一個 方法 的名字。 title , lower , upper 是內置在 Python 中的函數,可以作用於字符串的方法。
連接字符串
字符串連接示例如下所示:
加號連接兩個字符串。你可以使用任意個加號來連接字符串。
格式化字符串簡介
空白符
空白符通常指計算機能夠發現但不可見的字符。諸如空格,製表符,換行符等。
空格很容易創建,基本上在你擁有計算機的時候就會打出空格符。製表符和換行符是由特殊字符連接組成的。
“\t” 代表製表符,”\n” 代表換行符。你可以將它們添加進字符串的任意部分。
去除空白符
有時候我們想去除掉字符串開始或者結尾的空白符。Python 中有一些方法可以幫我們做到這點。如下所示:
lstrip 去除左側開端的空白符, rstrip 去除右端結尾的空白符, strip 去除兩端空白符。
看一個更清晰的例子,如下所示:
動手試一試
Someone Said
找一條自己喜歡的名言,存儲在變量。結合適當的介紹打印出來。例如:” Ken Thompson once said, ‘One of my most productive days was throwing away 1000 lines of code’ “。
First Name Cases
將你的姓存儲在一個變量中。
分別用 lowercase, Titlecase, UPPERCASE 三種方式打印姓。
Full Name
將你的名和姓存儲在不同的變量中,連接它們並打印。
Name Strip
將你的姓存儲在變量中。在姓的前後兩端至少各包含兩種空白符。
打印姓。
分別打印出去掉左側空白符,右側空白符,都去掉空白符的姓。
python字符串操作
字符串操作在各個計算機語言中都是比較常見的操作,下面我們對python的字符串操作做下簡單介紹。
一、索引操作
字符串是由一些連續的字符組成,支持索引操作,索引位置從0開始,比如以下代碼會輸出’P‘字符:
二、截取子串
字符串也可以像列表那樣給定起始與終止索引生成一個新的子串,比如以下代碼會輸出“Py”:
三、連接操作
多個字符串相加會生成一個新串,比如以下代碼輸出”Love Python“:
四、大小寫轉換
調用字符串的upper與lower方法會分別生成新的大寫和小寫的字符串,比如以下代碼第一個輸出:”I LOVE PYTHON“,第二個輸出:”i love python“:
五、前後綴判斷
調用字符串的startswith與endswith方法可以判斷字符串是否以某個子串開關或者結尾,比如以下會分別打印出 ” python startswith py “ 和 ” python endswith on “:
六、查找與替換子串
調用find方法可以判斷是否包含某個子串,比如以下代碼會輸出” python contains th” 和 ” python doesn’t contain he”:
調用replace方法可以對字符串進行替換,比如要把”hello world”中的”hello“替換為”world“,以下代碼會輸出:”world world“
七、分隔字符串
如果我們要把一句話按空格分隔為一個一個的單詞要怎麼做呢,這時調用split方法即可,比如以下代碼會把”hello world ni hao“轉換為[“hello”,”world”,”ni”,”hao”]:
八、清除前後字符
如果一個字符串前後有空白字符,我們需要去掉,你可以調用字符串的替換方法來做,但更簡單的做法是調用strip方法,比如以下代碼就會去掉兩端的空白字符輸出“hello python”:
九、大小寫對換
如果我們需要把字符串中的小寫轉換為大寫,大寫轉換為小寫,那要怎麼做呢,很簡單,調用下swapcase就可以了,如以下代碼會輸出“ heLLO pYThON ”:
十、字符分類判斷
有很多方法用來判斷一個字符串是否屬於某個分類,比如 isdigit判斷是否是數字,isalpha判斷是否是字母,isalnum判斷是否是字母數字等,如下代碼:
python 字符串提取信息方法總結
在日常項目中,我們經常會使用python從字符串中提取我們想要的信息,以下是各種提取信息方法的總結。
格式: str[beg:end:step]
描述: 字符串[開始索引:結束索引:步長]切取字符串為開始索引到結束索引-1內的字符串步長不指定時步長為1
舉例:
print(str[::2]) //::這裡表示整個字符串,每兩個位置提取一個
print(str[1:3]) //提取第2個到第3個
print(str[2::]) //截取2 – 末尾的字符
本小節介紹了,處理字符串經常用到的一些函數方法。
語法: str.find(str, beg=0, end=len(string))
描述: Python find() 方法檢測字符串中是否包含子字符串 str ,如果指定 beg(開始) 和 end(結束) 範圍,則檢查是否包含在指定範圍內,如果包含子字符串返回開始的索引值,否則返回-1。
語法: str.split(str=””, num=string.count(str)).
描述: Python split() 通過指定分隔符對字符串進行切片,如果參數 num 有指定值,則分隔 num+1 個子字符串.返回分割後的字符串列表,該方法可以講字符串轉化為列表處理。
另外的: str.splitlines([keepends])按照行(‘\r’, ‘\r\n’, \n’)分隔,返回一個包含各行作為元素的列表,如果參數 keepends 為 False,不包含換行符,如果為 True,則保留換行符。
語法: str.partition(str)
描述: partition() 方法用來根據指定的分隔符將字符串進行分割。如果字符串包含指定的分隔符,則返回一個3元的元組,第一個為分隔符左邊的子串,第二個為分隔符本身,第三個為分隔符右邊的子串。
語法: str.replace(old, new, max)
描述: Python replace() 方法把字符串中的 old(舊字符串) 替換成 new(新字符串),如果指定第三個參數max,則替換不超過 max 次。
語法: str.strip([chars]);
描述: Python strip() 方法用於移除字符串頭尾指定的字符(默認為空格或換行符)或字符序列。:該方法只能刪除開頭或是結尾的字符,不能刪除中間部分的字符。
語法: str.join(sequence)
描述: Python join() 方法用於將序列中的元素以指定的字符連接生成一個新的字符串。
上述方法還有其變形,如str.rfind(),這代表從字符串右邊開始處理,正常是從左邊開始處理。下表是其它常用的python字符串自帶函數方法。
正則表達式是一個特殊的字符序列,它能幫助你方便的檢查一個字符串是否與某種模式匹配。本小節主要介紹Python中常用的正則表達式處理函數和正則表達式的書寫規則。
re 模塊使 Python 語言擁有全部的正則表達式功能。所以在python中使用正則表達式處理函數需要import re
語法: re.search(pattern, string, flags=0)
描述: re.search 掃描整個字符串並返回第一個成功的匹配。匹配成功re.search方法返回一個匹配的對象,否則返回None。
語法: re.sub(pattern, repl, string, count=0, flags=0)
描述: Python 的 re 模塊提供了re.sub用於替換字符串中的匹配項。
語法: pattern.findall(string, pos, endpos)
描述: 在字符串中找到正則表達式所匹配的所有子串,並返回一個列表,如果沒有找到匹配的,則返回空列表。注意: match 和 search 是匹配一次 findall 匹配所有。
模式字符串使用特殊的語法來表示一個正則表達式:
Python中字符串常用操作有哪些
字符串是 Python
中常用的數據類型,我們可以使用引號(‘或”)來創建字符串,對字符串進行使用和操作,需要用到特定的函數,以下是常用的Python字符串操作方法:
1. capitalize()
作用:capitalize() 主要是用來實現字符串首字母大寫,其他字母小寫的功能。
實例:
1
2str1 = “oldboy”
print(str1.capitalize())
輸出結果:Oldboy
2. swapcase()
作用:swapcase() 主要是用來實現字符串大小寫反轉。
實例:
1
2str1 = ” Oldboy”
print(str1.swapcase())
輸出結果:oLDBOY
3. title()
作用:title() 主要是用來實現字符串非字母隔開的部分,首字母大寫,其餘字母小寫。
實例:
1
2str1 = “Old boy edu com”
print(str1.title())
輸出結果:Old Boy Edu Com
4. upper()
作用:upper() 主要是用來實現字符串所有字母全部大寫。
實例:
1
2str1 = “Oldboyedu”
print(str1.upper())
輸出結果:OLDBOYEDU
5. lower()
作用:lower() 主要是用來實現字符串所有字母全部小寫。
實例:
1
2str1 = “oLDBOYEDU”
print(str1.lower())
輸出結果:oldboyedu
6. center()
作用:center() 主要是用來實現字符串內容居中,填充物默認為空。
實例:
1
2
3str1 = “Oldboyedu”
print(str1.center(15))
print(str1.center(15,”*”))
輸出結果:
Oldboyedu
***Oldboyedu***
7. find()
作用:find() 主要作用是通過元素找索引,可以整體找,可以切片,找不到則返回-1。
實例:
1
2
3str1 = “Oldboyedu”
print(str1.find(‘b’))
print(str1.find(‘A’))
輸出結果:3 -1
8. index()
作用:index() 主要作用是通過元素找索引,可以整體找,可以切片,找不到會報錯。
實例:
1
2
3str1 = ” Oldboyedu “
print(str1.index(“b”))
print(str1.index(“A”))
輸出結果:
Traceback (most recent call last):
File “”, line 1, in
ValueError: substring not found
9. startswith(obj)
作用:startswith(obj) 主要作用是檢查字符串是否是以 obj 開頭,是則返回 True,否則返回 False。
實例:
1
2str1 = “Oldboyedu”
print(str1.startswith(“O”))
輸出結果:True
10. endswith(obj)
作用:endswith(obj) 主要作用是檢查字符串是否是以 obj 開頭,是則返回 True,否則返回 False。
實例:
1
2str1 = ” Oldboyedu “
print(str1.endswith(“edu”))
輸出結果:True
11. strip()
作用:strip() 主要作用是去除字符串前後兩端的空格或其他字符、換行符、tab鍵等。
實例:
1
2
3
4str1 = “***Oldboy***”
print(str1.strip(“*”)) #去除兩邊的*
print(str1.lstrip(“*”)) #去除左邊的*
print(str1.rstrip(“*”)) #去除右邊的*
輸出結果:
Oldboy
Oldboy***
***Oldboy
12. replace(oldstr, newstr)
作用:replace(oldstr, newstr)主要作用是替換字符串。
實例:
1
2str1 = “Oldboyedu”
print(str1.replace(“boy”,”man”))
輸出結果:Oldmanedu
13. isalpha()
作用:isalpha()主要作用是要判斷字符串是否只由字母組成,是返回Ture,否返回False。
實例:
1
2
3
4str1 = “Oldboyedu”
str2 = “Old boy edu”
print(str1.isalpha())
print(str2.isalpha())
輸出結果:True False
14. isdigit()
作用:isdigit()主要作用是判斷字符串是否只由數字組成,是返回Ture,否返回False。
實例:
1
2
3
4str1 = “Oldboyedu”
str2 = “520”
print(str1.isdigit())
print(str2.isdigit())
輸出結果:False True
15. format()
作用:format()主要作用是格式化字符串。
方式一:按位置傳參
1
2str1 = ‘我叫{},今年{}歲’.format(‘oldboy’,30)
print(str1)
輸出結果:我叫oldboy,今年30歲
方式二:按索引傳參
1
2str1 = ‘我叫{0},今年{1}歲’.format(‘oldboy’,30)
print(str1)
輸出結果:我叫oldboy,今年30歲
方式三:按key傳參
1
2str1 = ‘我叫{name},今年{age}歲’.format(age=30,name=’oldboy’)
print(str1)
輸出結果:我叫oldboy,今年30歲
16. count()
作用:count()主要作用是統計元素在字符串出現的次數。
1
2str1 = “oldboyedu”
print(str1.count(‘o’)) #統計字符o在字符串中出現的次數
數據結果:2
Python處理字符串必備方法
字符串是Python中基本的數據類型,幾乎在每個Python程序中都會使用到它。
▍1、Slicing
slicing切片,按照一定條件從列表或者元組中取出部分元素(比如特定範圍、索引、分割值)
▍2、****strip()
strip()方法用於移除字符串頭尾指定的字符(默認為空格或換行符)或字符序列。
在使用strip()方法時,默認去除空格或換行符,所以#號並沒有去除。
可以給strip()方法添加指定字符,如下所示。
此外當指定內容不在頭尾處時,並不會被去除。
第一個\n前有個空格,所以只會去取尾部的換行符。
最後strip()方法的參數是剝離其值的所有組合,這個可以看下面這個案例。
最外層的首字符和尾字符參數值將從字符串中剝離。字符從前端移除,直到到達一個不包含在字符集中的字符串字符為止。
在尾部也會發生類似的動作。
▍3、****lstrip()
移除字符串左側指定的字符(默認為空格或換行符)或字符序列。
同樣的,可以移除左側所有包含在字符集中的字符串。
▍4、rstrip()
移除字符串右側指定的字符(默認為空格或換行符)或字符序列。
▍5、****removeprefix()
Python3.9中移除前綴的函數。
和strip()相比,並不會把字符集中的字符串進行逐個匹配。
▍6、removesuffix()
Python3.9中移除後綴的函數。
▍7、****replace()
把字符串中的內容替換成指定的內容。
▍8、****re.sub()
re是正則的表達式,sub是substitute表示替換。
re.sub則是相對複雜點的替換。
和replace()做對比,使用re.sub()進行替換操作,確實更高級點。
▍9、****split()
對字符串做分隔處理,最終的結果是一個列表。
當不指定分隔符時,默認按空格分隔。
此外,還可以指定字符串的分隔次數。
▍10、****rsplit()
從右側開始對字符串進行分隔。
▍11、****join()
string.join(seq)。以string作為分隔符,將seq中所有的元素(的字符串表示)合併為一個新的字符串。
▍12、****upper()
將字符串中的字母,全部轉換為大寫。
▍13、****lower()
將字符串中的字母,全部轉換為小寫。
▍14、capitalize()
將字符串中的首個字母轉換為大寫。
▍15、****islower()
判斷字符串中的所有字母是否都為小寫,是則返回True,否則返回False。
▍16、isupper()
判斷字符串中的所有字母是否都為大寫,是則返回True,否則返回False。
▍17、****isalpha()
如果字符串至少有一個字符並且所有字符都是字母,則返回 True,否則返回 False。
▍18、isnumeric()
如果字符串中只包含數字字符,則返回 True,否則返回 False。
▍19、isalnum()
如果字符串中至少有一個字符並且所有字符都是字母或數字,則返回True,否則返回 False。
▍20、count()
返回指定內容在字符串中出現的次數。
▍21、****find()
檢測指定內容是否包含在字符串中,如果是返回開始的索引值,否則返回-1。
此外,還可以指定開始的範圍。
▍22、rfind()
類似於find()函數,返回字符串最後一次出現的位置,如果沒有匹配項則返回 -1。
▍23、startswith()
檢查字符串是否是以指定內容開頭,是則返回 True,否則返回 False。
**
**
▍24、****endswith()
檢查字符串是否是以指定內容結束,是則返回 True,否則返回 False。
▍25、****partition()
string.partition(str),有點像find()和split()的結合體。
從str出現的第一個位置起,把字符串string分成一個3 元素的元組(string_pre_str,str,string_post_str),如果string中不包含str則 string_pre_str==string。
▍26、center()
返回一個原字符串居中,並使用空格填充至長度width的新字符串。
▍27、ljust()
返回一個原字符串左對齊,並使用空格填充至長度width的新字符串。
▍28、rjust()
返回一個原字符串右對齊,並使用空格填充至長度width的新字符串。
▍29、f-Strings
f-string是格式化字符串的新語法。
與其他格式化方式相比,它們不僅更易讀,更簡潔,不易出錯,而且速度更快!
▍30、swapcase()
翻轉字符串中的字母大小寫。
▍31、zfill()
string.zfill(width)。
返回長度為width的字符串,原字符串string右對齊,前面填充0。
參考文獻:
原創文章,作者:YDYCY,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/324448.html