字符串類型(string)
字符串是以單引號'
或雙引號"
括起來的任意文本,比如'abc'
,"123"
等等。
請注意,''
或""
本身只是一種表示方式,不是字符串的一部分,因此,字符串'abc'
只有a
,b
,c
這3個字符。如果'
本身也是一個字符,那就可以用""
括起來,比如"I'm OK"
包含的字符是I
,'
,m
,空格,O
,K
這6個字符。
1、創建字符串
b = 'asdasd'
2、字符串操作
a.重複輸出字符串
print('Python' * 5)
>>>PythonPythonPythonPythonPython
b.通過索引獲取字符串中字符,這裏和列表的切片操作是相同的,具體內容見列表
print('hello world'[2:])
>>>llo world
c.in 成員運算符 - 如果字符串中包含給定的字符返回 True
print('rl' in 'hello world')
>>>True
d.%格式字符串
print("she sis a good girl") print("she sis a %s girl" % 'good')
>>>she is a good girl
>>>she is a good girl
e.字符串拼接a
a = 'zxc' b = 'asd' c = 'qwe' print(a+b+c)
>>>zxcasdqwe
以上方式效率極低,建議用join做字符串拼接
a = 'zxc' b = 'asd' c = 'qwe' print(''.join([a,b,c])) print('+'.join([a,b,c]))
>>>zxcasdqwe
>>>zxc+asd+qwe
3、字符串內置方法
capitalize把字符串的第一個字符大寫,且不會修改原字符串,返回一個新的字符串
a = 'hello world!' print(a.capitalize())
>>>Hello world!
center返回一個原字符串居中,並使用*填充至長度 20 的新字符串
a = 'asd' print(a.center(20,'*'))
>>>********asd*********
count統計字符串中元素的個數
a = 'hello world!' print(a.count('l'))
>>>3
endswith判斷是否以某個內容結尾,返回布爾值
a = 'hello world!' print(a.endswith('ld!'))
>>>True
startswith判斷是否以某個內容開始,返回布爾值
expandtabs(tabsize=8)把字符串中的tab符號轉爲空格,tab默認空格數是8.
a = 'hello\t worl\td!' print(a.expandtabs(tabsize=10))
>>>hello worl d!
string.find(str, beg=0, end=len(string))檢測 str 是否包含在 string 中,如果 beg 和 end 指定範圍,則檢查是否包含在指定範圍內,如果是返回開始的索引值,否則返回-1
a = 'hello world!' print(a.find('or')) print(a.find('or',5,9)) print(a.find('or',2,5))
>>>7
>>>7
>>>-1
string.index(str, beg=0, end=len(string))跟find()方法一樣,只不過如果str不在 string中會報一個異常.
a = 'hello world!' print(a.index('or')) print(a.index('or',5,9)) print(a.index('or',1,3))
>>>7
>>>7
>>>Traceback (most recent call last):
File "str.py", line 6, in <module>
print(a.index('or',1,3))
>>>ValueError: substring not found
string.isalnum()如果string所有字符都是字母或數字則返回 True,否則返回 False
a = 'helloworld' b = '123123' c = 'python3' d = 'python 3' print(a.isalnum()) print(b.isalnum()) print(c.isalnum()) print(d.isalnum())
>>>True
>>>True
>>>True
>>>False
string.isalpha()如果 string 所有字符都是字母則返回 True,否則返回 False
a = 'helloworld' c = 'python3' print(a.isalpha()) print(c.isalpha())
>>>True
>>>False
string.isdecimal()如果 string 只包含十進制數字則返回 True 否則返回 False.
string.isdigit()如果 string 只包含數字則返回 True 否則返回 False.
string.islower()如果 string 中包含至少一個區分大小寫的字符,並且所有這些(區分大小寫的)字符都是小寫,則返回 True,否則返回 False
string.isnumeric()如果 string 中只包含數字字符,則返回 True,否則返回 False True: Unicode數字,byte數字(單字節),全角數字(雙字節),羅馬數字 False: 漢字數字 Error: 無 True: Unicode數字,,全角數字(雙字節) False: 羅馬數字,漢字數字 Error: byte數字(單字節) True: Unicode數字,全角數字(雙字節),羅馬數字,漢字數字 False: 無 Error: byte數字(單字節) string.
string.istitle()如果 string 是標題化的(見 title())則返回 True,否則返回 False
a = 'hello world' b = 'Hello World' print(a.istitle()) print(b.istitle())
>>>False
>>>True
string.isupper()如果 string 中包含至少一個區分大小寫的字符,並且所有這些(區分大小寫的)字符都是大寫,則返回 True,否則返回 False
string.join(seq)以 string 作爲分隔符,將 seq 中所有的元素(的字符串表示)合併爲一個新的字符串
a = 'MY GIRL' b = 'xxxx' print('+'.join(a)) print('$'.join([a,b]))
>>>M+Y+ +G+I+R+L
>>>MY GIRL$xxxx
string.ljust(width)返回一個原字符串左對齊,並使用空格填充至長度 width 的新字符串
a = 'MY GIRL' print(a.ljust(20,'-'))
>>>MY GIRL-------------
string.lower()轉換 string 中所有大寫字符爲小寫.
string.lstrip()截掉 string 左邊的空格
string.maketrans(intab, outtab])用於創建字符映射的轉換表,對於接受兩個參數的最簡單的調用方式,第一個參數是字符串,表示需要轉換的字符,第二個參數也是字符串表示轉換的目標。
a = 'MY GIRL' print(a.maketrans('x','S'))
>>>{120: 83}
max(str)返回字符串 str 中最大的字母。
min(str)返回字符串 str 中最小的字母。
string.partition(str)有點像 find()和 split()的結合體,從 str 出現的第一個位置起,把 字 符 串 string 分 成 一 個 3 元 素 的 元 組 (string_pre_str,str,string_post_str),如果 string 中不包含str 則 string_pre_str == string.
a = 'MY GIRL!' print(a.partition('GI')) print(a.partition('BI'))
>>>('MY ', 'GI', 'RL')
>>>('MY GIRL', '', '')
string.replace(str1, str2, num=string.count(str1)) 把 string 中的 str1 替換成 str2,如果 num 指定,則替換不超過 num 次.
a = 'hello world!' print(a.replace('l','F',2)) print(a.replace('l','F'))
>>>heFFo world!
>>>heFFo worFd!
string.rfind(str, beg=0,end=len(string) )類似於 find()函數,不過是從右邊開始查找.
string.rindex( str, beg=0,end=len(string))類似於 index(),不過是從右邊開始.
string.rjust(width)返回一個原字符串右對齊,並使用空格填充至長度 width 的新字符串
string.rpartition(str)類似於 partition()函數,不過是從右邊開始查找.
string.rstrip()刪除 string 字符串末尾的空格.
string.split(str="", num=string.count(str))以 str 爲分隔符切片 string,如果 num有指定值,則僅分隔 num 個子字符串
a = 'hello world!' print(a.split())
>>>['hello', 'world!']
string.splitlines(num=string.count('\n'))按照行分隔,返回一個包含各行作爲元素的列表,如果 num 指定則僅切片 num 個行.
a = 'hello world!\nMY GIRL!' print(a.splitlines())
>>>['hello world!', 'MY GIRL!']
string.startswith(obj, beg=0,end=len(string))檢查字符串是否是以 obj 開頭,是則返回 True,否則返回 False。如果beg 和 end 指定值,則在指定範圍內檢查.
string.strip([obj])在 string 上執行 lstrip()和 rstrip(),去掉空格包含((包括'\n', '\r', '\t', ' '))
string.swapcase()翻轉 string 中的大小寫
string.title()返回"標題化"的 string,就是說所有單詞都是以大寫開始,其餘字母均爲小寫(見 istitle())
string.translate(str, del="")根據 str 給出的表(包含 256 個字符)轉換 string 的字符,要過濾掉的字符放到 del 參數中
string.upper()轉換 string 中的小寫字母爲大寫