日本免费高清视频-国产福利视频导航-黄色在线播放国产-天天操天天操天天操天天操|www.shdianci.com

學(xué)無先后,達者為師

網(wǎng)站首頁 編程語言 正文

python中字符串String及其常見操作指南(方法、函數(shù))_python

作者:驚乀鴻 ? 更新時間: 2022-06-07 編程語言

注意:對字符串的所有操作,原始數(shù)據(jù)(即原字符串)不變 !(字符串是不可變類型)

對原字符串操作會返回一個操作后的數(shù)據(jù), 可以使用變量去接受數(shù)據(jù)

-----------------------------------------------------------------------------------------------------------------------------------------------------------------------

下標(biāo)與切片

str[下標(biāo)],從左向右0→+,從右向左-1→

str[起始:結(jié)束:步長],范圍包首不包尾

>>> str="0123456789"    #定義一個字符串,從0到9,共10個元素
>>> str[0]              #取出0號下標(biāo)的元素
'0'
>>> str[10]             #嘗試取出10號下標(biāo)的元素
Traceback (most recent call last):
  File "", line 1, in 
    str[10]
IndexError: string index out of range
                        #報錯,下標(biāo)越界,不存在str[10]
>>> str[9]              #下標(biāo)從左向右數(shù),第一個為0號下標(biāo),第N個元素下標(biāo)為N-1
'9'
>>> str[-1]             #下標(biāo)從右向左數(shù),第一個為-N號下標(biāo),倒數(shù)最后一個為-1
'9'
>>> str[-10]
'0'

常見方法

查找

?.find(str),str存在字符串中返回下標(biāo)索引值,不存在返回-1

.rfind(str),str存在字符串中,查找順序為從右向左,其它與find一樣

.index(str),存在返回下標(biāo)索引值,不存在報異常

.rindex(str),存在返回下標(biāo)索引值,查找順序為從右向左,其它與index一樣

.count(str[,起始,結(jié)束]),查找指定字符串中該字符出現(xiàn)的總次數(shù)

>>> str='123aaabcdeeff'        #定義一個字符串用于測試字符串方法的使用
>>> str.find(0)                #嘗試查詢整數(shù)0是在于字符串中的下標(biāo)
Traceback (most recent call last):
  File "", line 1, in 
    str.find(0)
TypeError: must be str, not int
                               #字符串操作,查詢操作對象必須為字符串類型,所以元素應(yīng)用‘'標(biāo)識
>>> str.find('1')          #查詢字符1在指定字符串中首次出現(xiàn)的下標(biāo)
0                          #返回的下標(biāo)為0
>>> str.find('a')          #查詢字符a在指定字符串中首次出現(xiàn)的下標(biāo)
3                          #返回的下標(biāo)為3
>>> str.rfind('a')         #反向查詢(即從末尾向前查詢),字符a首次出現(xiàn)在字符串中的下標(biāo)
5                          #返回的下標(biāo)為5
>>> str.index('0')         #使用index查詢時,字符不存在時,會報錯
Traceback (most recent call last):
  File "", line 1, in 
    str.index('0')
ValueError: substring not found
>>> str.find('0')          #使用find查詢時,不存在返回-1
-1
>>> str.rindex('a')        #使用rindex反向查詢
5
>>> str.count('a')         #使用count查詢指定字符出現(xiàn)的總共次數(shù)
3
>>> str.count('f')         
2
>>> str.count('a',0,3)     #使用count時,可以指定范圍,第一個數(shù)字指定起始位置,                   
0                          #第二個數(shù)字指定 結(jié)束范圍,查詢范圍包含起始位,不包含結(jié)束位
>>> str.count('a',1,5)
2
>>> str.find('abcde')      #操作對象為字符串,傳入?yún)?shù)也是一個字符串,并不一定是一個字符
5                          #可以是字母數(shù)字以及中文

替換

.replace(str1,str2 [,n] ),將字符串中所有的str1替換為str2,n可指定最多替換的次數(shù)

>>> str='123aaabcdeeff'
>>> str.replace('a','s')            #不指定替換次數(shù),將會全部替換
'123sssbcdeeff'
>>> str.replace('a','s',1)          #指定次數(shù)時,僅替換指定次數(shù)個,替換順序為從前向后
'123saabcdeeff'
>>> str.replace('a','s',2)
'123ssabcdeeff'

分割

.split(str[,n]),以str為分隔符(分割后丟失),將字符串分割為多個字符串,n可指定最多的分割次數(shù)

.partition(str),已指定字符做為一個部分,分割兩邊,生成三部分的字符串

.splitlines(),按照行進行分割,返回一個包含各行作為元素的列表

>>> str='123123123'                #定義一個字符串,用于測試
>>> str.split('2')                 #使用split進行分割
['1', '31', '31', '3']             #分割后指定的分割符消失,生成多個字符串的列表
>>> str.partition('2')             #使用partition進行分割
('1', '2', '3123123')              #僅進行一次分割,分割后制定的分割符單獨成為一部分
>>> str='abc\nabc\nabc\nabc'       #定義一個包含行符的字符串
>>> print(str)                     #打印輸出測試
abc
abc
abc
abc
>>> str.splitlines()               #使用splitlines進行分割,生成一個列表,每一行數(shù)據(jù)為一個元素
['abc', 'abc', 'abc', 'abc']

大小寫格式化

.capitalize(),將字符串第一個首字母大寫(其它都小寫)

.title(),將字符串中所有單詞首字母大寫(其它都小寫)

.lower()轉(zhuǎn)換所有大寫字符為小寫

.upper()轉(zhuǎn)換所有小寫字符為大寫

>>> str="abcABC defDEF hijHIJ klMN"      #定義一個包含大小寫的字符串用于測試
>>> str.capitalize()                     #將字符串首字母進行大寫
'Abcabc defdef hijhij klmn'
>>> str.title()                          #將所有單詞首字母進行大寫
'Abcabc Defdef Hijhij Klmn'
>>> str.lower()                          #將字符串中所有字母小寫
'abcabc defdef hijhij klmn'
>>> str.upper()                          #將字符串中所有字母大寫
'ABCABC DEFDEF HIJHIJ KLMN'
>>> 

對齊格式化

?.ljust(width)返回一個原字符串左對齊,并默認使用空格補充至長度為width的字符串

.rjust(width)返回一個原字符串右對齊,并默認使用空格補充至...........

.center(width) 返回一個原字符居中,并使用空格補充至width長度的新字符串

#默認使用空格補充長度,顯示不夠明顯,所以為了突出效果,指定使用了*補充
str1='   abcde  '           
print(str1.ljust(20,'*'))   #左對齊,指定長度為20
str2='   abcde   '
print(str2.rjust(20,'*'))   #右對齊,指定長度為20
str3='   abcde   '
print(str3.center(20,'*'))  #居中對齊,指定長度為20
 
#執(zhí)行結(jié)果
#   abcde  **********
# *********   abcde   
# ****   abcde   *****

清除空白字符

.lstrip(),刪除左側(cè)的空白字符

.rstrip(),刪除末尾的空白字符

.strip(),刪除兩端的空白字符

>>> str='   abc   '
>>> str.lstrip()        #刪除左側(cè)空格
'abc   '
>>> str.rstrip()        #刪除右側(cè)空格
'   abc'
>>> str.strip()         #刪除兩側(cè)空格
'abc'
>>> 

檢查

.startswith(str),檢查字符串是否以指定字符開頭,是則返回Turn,否則返回False

.endswith(str),檢查字符串是否以指定字符結(jié)尾,是則返回Turn,否則為False

.isalpha(),檢查字符串是否都是字母,是返回Turn,否則返回False

.isdigit(),檢查字符串是否只包含數(shù)字,是返回Turn,否則返回False

.isalnum(),檢查字符串是否都是字母或數(shù)字,是返回Turn,否則返回False

.isspace(),檢查字符串是否只包含空格,是返回Turn,否則返回False

>>> str0='0123abcd'
>>> str1='12345'
>>> str2='abcdef'
>>> str3='    '
>>> str0.startswith('0')    #檢查是否包含指定字符串,是則返回True
True
>>> str0.startswith('6')    #不包含則返回Flace
False
>>> str0.endswith('0')      #檢查是否以指定字符串結(jié)束,不是返回Flace
False
>>> str0.endswith('d')      #是則返回True
True
>>> str1.isalnum()          #檢測指定字符串是否全是字母和數(shù)字組成
True
>>> str2.isalpha()          #檢測指定字符串是否全為字母
True
>>> str0.isdigit()          #檢測指定字符串是否全是數(shù)字
False
>>> str3.isspace()          #檢測指定字符串是否全為空格
True
>>> 

補充:16個常用函數(shù)

方法 描述
str.len() 返回str字符串的長度
str.lower() 返回字符串str的副本,全部字符小寫
str.upper() 返回字符串str的副本,全部字符大寫
str.islower() 當(dāng)str全部字符都是小寫時,返回True,否則返回False
str.isupper() 當(dāng)str全部字符都是大寫時,返回True,否則返回False
str.isprintable() 當(dāng)str全部的字符都是可打印時,返回 True,否則返回False
str.isalnum() 當(dāng)str只由字母或數(shù)字組成時,返回True,否則返回False
str.isalpha() 當(dāng)str的所有字符都是字母組時,返回True,否則返回False
str.isascii() 當(dāng)str的所有字符均在ascii碼內(nèi),返回True, 否則返回False
str.isdecimal() 當(dāng)str的所有字符均是Unicode數(shù)字全角數(shù)字時,返回True,否則返回False
str.isdigit() 當(dāng)str的所有字符都是Unicode數(shù)字byte數(shù)字全角數(shù)字羅馬數(shù)字時,返回True,否則返回False
str.isnumeric() 當(dāng)str的所有字符都是Unicode數(shù)字全角數(shù)字羅馬數(shù)字漢字數(shù)字時,返回True, 否則返回False
str.isidentifier() 如果str是有效的Python標(biāo)識符返回True,否則返回False
str.isspace() 當(dāng)str所有字符都是空格時,返回True, 否則返回False
str.format() 返回字符串str的一種排版格式
str.count(sub [, start [, end]]) 返回str[start: end]中sub子串出現(xiàn)的次數(shù)

總結(jié)

原文鏈接:https://blog.csdn.net/weixin_43965642/article/details/84988578

欄目分類
最近更新