測試環境為 CentOS 8 x86_64 (虛擬機)
參考文章 – https://selflearningsuccess.com/pythonstring/
string 為 Immutable objects 物件被創造出來後其值無法做改變,關於 Immutable objects 請參考 – https://benjr.tw/104498
其他資料型態
- String – https://benjr.tw/104605
使用單,雙 或是 三重引號來表示為字串. - List – https://benjr.tw/104232
使用 中括弧 [ ] 表示 ,其中資料用逗號做區隔. - dic – https://benjr.tw/104234
使用 大括弧 { } 表示 ,格式為 key:valu ( pair 組成 並由逗點隔開). - Tuple – https://benjr.tw/104461
使用 小括號 ( ) 表示 ,其中資料用逗號做區隔. - set – https://benjr.tw/104696
大括弧 { } 表示 ,其中資料用逗號做區隔.
可以使用單,雙 或是 三重引號來表示為字串.
[root@localhost ~]# python3 Python 3.6.8 (default, Mar 25 2022, 11:15:52) [GCC 8.5.0 20210514 (Red Hat 8.5.0-10)] on linux Type "help", "copyright", "credits" or "license" for more information.
- 單引號
>>> str1='abc\r\n\'\"123' >>> str1 'abc\r\n\'"123' >>> print(str1) abc '"123
特殊字元無法直接使用需使用轉義字元 (\)
‘ -> \’
” -> \”
n -> \n
r -> \r
t -> \t
\ -> \\ - 雙引號
>>> str2="abc\r\n\'\"123" >>> str2 'abc\r\n\'"123' >>> print(str2) abc '"123
- 三重引號
可使用單引號.>>> str3='''abc\r\n\'\"123 ... This is a book\n ... the end ...''' >>> str3 'abc\r\n\'"123\nThis is a book\n\nthe end ...' >>> print(str3) abc '"123 This is a book the end ...
或是雙引號
>>> str3="""abc\r\n\'\"123 ... This is a book\n ... the end ..."""
字串的操作方式.
- []
取得字串指定字元.>>> str1='ABC DEF' >>> str1[0] 'A' >>> str1[1:3] 'BC'
- 運算子 +
將字串連接在一起.>>> str1='ABC' >>> str2='123' >>> str1+str2 'ABC123'
下面來看一下字串常用的 method
- split
將字串依據分隔字元來拆分.>>> numbers = input('輸入數字(空白區隔):').split(' ') 輸入數字(空白區隔):1 2 3 4 5 >>> print (numbers) ['1', '2', '3', '4', '5']
上面的分隔字元為 空白,輸入字串時會依據輸入中間的空白字元來拆分成 list.
>>> type(numbers) <class 'list'>
- lower() , upper() , title() , capitalize()
將字串顯示成指定大小寫.轉成小寫
>>> str1.lower() 'abc def'
轉成大寫
>>> str1.upper() 'ABC DEF'
每個單字前第一個字元為大寫
>>> str1.title() 'Abc Def'
字串第一個字元為大寫
>>> str1.capitalize() 'Abc def'
- islower() , isupper() , isalpha() , isdecimal() , istitle() , isspace() , isalnum()
字串內的英文字母是否都小寫>>> str0='abc123' >>> str0.islower() True
字串內的英文字母是否都大寫
True >>> str1='ABC123' >>> str1.isupper() True
是否為英文字母
>>> str2='Abc' >>> str2.isalpha() True
是否為數字
>>> str3='123' >>> str3.isdecimal() True
是否為空白字元
>>> str4=' ' >>> str4.isspace() True
是否每個單字第一個字元都是大寫
>>> str5='Abc Def' >>> str5.istitle() True
是否只包含數字與英文字母
>>> str6='Abc123' >>> str6.isalnum() True
- strip() , rstrip() , lstrip()
刪除指定字元>>> str1=' ABC '
刪除左右邊空白字元.
>>> str1.strip(' ') 'ABC'
刪除右邊空白字元.
>>> str1.rstrip(' ') ' ABC'
刪除左邊空白字元.
>>> str1.lstrip(' ') 'ABC '
這邊的刪除是不按照順序,以下面例子來看,要刪除包含 213 (不用依據順序) , 所以 左邊的 123 以及右邊的 321 都會被刪除.
>>> str2='123abc321' >>> str2.strip('213') 'abc'
- center() , rjust() , ljust()
在指定的字元數填入指定字元.>>> str1='abc'
系統在 abc 前填入 *** (3個) 與後面填入 **** (4個),總共 10 個字元.
>>> str1.center(10,'*') '***abc****'
字串靠右,* 填在左邊.
>>> str1.rjust(10,'*') '*******abc'
字串靠左,* 填在右邊.
>>> str1.ljust(10,'*') 'abc*******'
- join()
將字串結合在一起.>>> str1='123' >>> str2='ABC' >>> str1.join(str2) 'A123B123C'
- replace()
替換指定字串.>>> str1='ABC 123' >>> str1.replace('123' , 'ABC') 'ABC ABC'
- count()
計算字串出現的次數.>>> str1='ABC 123' >>> str1.replace('123' , 'ABC') 'ABC ABC' >>> str1='ABC 123 abc123' >>> str1.count('ABC') 1 >>> str1.count('abc') 1 >>> str1.count('123') 2
沒有解決問題,試試搜尋本站其他內容