網(wǎng)站首頁 編程語言 正文
注意:對字符串的所有操作,原始數(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
相關(guān)推薦
- 2022-05-25 從零搭建開發(fā)腳手架 SpringBoot自定義配置的多種姿勢及Idea自動提示
- 2022-12-07 C語言如何求整數(shù)的位數(shù)及各位數(shù)字之和_C 語言
- 2022-09-10 Go語言O(shè)RM包中使用worm構(gòu)造查詢條件的實例詳解_Golang
- 2022-03-31 python中常用的九個語法技巧_python
- 2023-04-03 Python數(shù)據(jù)結(jié)構(gòu)隊列解決約瑟夫斯問題_python
- 2022-11-04 C++多態(tài)特性之派生與虛函數(shù)與模板詳細介紹_C 語言
- 2022-09-23 windows10本地搭建FTP服務(wù)器圖文教程_FTP服務(wù)器
- 2022-04-11 SQL?Server的觸發(fā)器你了解多少_MsSql
- 最近更新
-
- window11 系統(tǒng)安裝 yarn
- 超詳細win安裝深度學(xué)習(xí)環(huán)境2025年最新版(
- Linux 中運行的top命令 怎么退出?
- MySQL 中decimal 的用法? 存儲小
- get 、set 、toString 方法的使
- @Resource和 @Autowired注解
- Java基礎(chǔ)操作-- 運算符,流程控制 Flo
- 1. Int 和Integer 的區(qū)別,Jav
- spring @retryable不生效的一種
- Spring Security之認證信息的處理
- Spring Security之認證過濾器
- Spring Security概述快速入門
- Spring Security之配置體系
- 【SpringBoot】SpringCache
- Spring Security之基于方法配置權(quán)
- redisson分布式鎖中waittime的設(shè)
- maven:解決release錯誤:Artif
- restTemplate使用總結(jié)
- Spring Security之安全異常處理
- MybatisPlus優(yōu)雅實現(xiàn)加密?
- Spring ioc容器與Bean的生命周期。
- 【探索SpringCloud】服務(wù)發(fā)現(xiàn)-Nac
- Spring Security之基于HttpR
- Redis 底層數(shù)據(jù)結(jié)構(gòu)-簡單動態(tài)字符串(SD
- arthas操作spring被代理目標(biāo)對象命令
- Spring中的單例模式應(yīng)用詳解
- 聊聊消息隊列,發(fā)送消息的4種方式
- bootspring第三方資源配置管理
- GIT同步修改后的遠程分支