一、概述
- 由一個個字元組成的有序序列。
- 使用單引號、雙引號、三引號引住的字元序列。
- 不可變、線性的資料結構。
二、字串的相關操作
1、元素訪問—-下標
- 字串是線性的資料結構,可以使用索引去訪問元素。
- 索引不可超界,否則拋異常IndexError。
- 字串是可迭代的物件。
1 string = "hello" 2 print(string[1])
執行結果如下:
e
1 string = "hello" 2 for s in string: 3 print(s)
執行結果如下:
h
e
l
l
o
2、“string”.join(iterable)
- 使用string作為分隔符,將可迭代物件連線起來。
- 可迭代物件本身內的元素必須是字串型別。
- 返回一個新的字串,原字串不變。
1 lst = [`1`, `3`, `a`] 2 string = "-".join(lst) 3 print(string)
執行結果如下:
1-3-a
3、+
- 將兩個字串連線在一起。
- 返回一個新的字串。
1 string1 = `hello` 2 string2 = `python` 3 string3 = string1 + string2 4 print(string3)
執行結果如下:
hellopython
4、string.split(sep=None, maxsplit=-1)
- sep:指定分隔符,預設狀態下以空白字元作為分割符。
- maxsplit:指定最大分割數,預設狀態下遍歷整個字串。
- 返回一個新的字串列表。
- 從左向右分割。
- 還有相反的方法rsplit,用法與其一致,只不過這個方法是從右向左開始分割。
1 string = "I`am a super student" 2 newstr = string.split(`s`, 1) 3 print(newstr)
執行結果如下:
["I`am a ", `uper student`]
1 string = "I`am a super student" 2 newstr = string.rsplit(`s`, 1) 3 print(newstr)
執行結果如下:
["I`am a super ", `tudent`]
5、string.splitlines([keepends=False])
- keepends:是否保留行分隔符(行分隔符有:
等)。 - 按照行進行分割。
- 返回一個新的字串列表。
1 string = "ab c de fg kl z" 2 newstr = string.splitlines() 3 print(newstr)
執行結果如下:
[`ab c`, ``, `de fg`, `kl`, `z`]
1 string = "ab c de fg kl z" 2 newstr = string.splitlines(True) 3 print(newstr)
執行結果如下:
[`ab c `, ` `, `de fg `, `kl `, `z`]
6、string.partition(sep)
- 遇到指定的分隔符sep就將字串分割為三部分(頭、分隔符、尾),如果沒有找到分隔符,就返回頭、2個空元素三部分個部分。
- 返回一個新的元組。
- 從左向右開始分割。
- 還有一個相反的方法rpartition,用法和該方法一致,rpartition是從右向左開始分割的。
1 string = "I`m a super student" 2 newtuple = string.partition(`s`) 3 print(newtuple)
執行結果如下:
("I`m a ", `s`, `uper student`)
7、string.upper()
- 將字串中的字母全部大寫。
- 返回一個新的字串。
- 與其相反的還有一個方法string.lower(),將字串中的字母全部小寫。
1 string = "I`m a super student" 2 newstr = string.upper() 3 print(newstr)
執行結果如下:
I`M A SUPER STUDENT
8、string.swapcase()
- 將字串中的字母進行大小寫互換
- 返回一個新的字串。
1 string = "A b" 2 newstr = string.swapcase() 3 print(newstr)
執行結果如下:
a B
9、string.title()
- 將字串中的每個單詞的是首字母大寫。
- 返回一個新的字串。
1 string = "hello python" 2 newstr = string.title() 3 print(newstr)
執行結果如下:
Hello Python
10、string.capitalize()
- 將首個單詞的字母大寫。
- 返回一個新的字串。
1 string = "hello python" 2 newstr = string.capitalize() 3 print(newstr)
執行結果如下:
Hello python
11、string.center(width[, fillchar])
- width:按照指定的寬度將字串居中。
- fillchar:要填充的字元。
- 返回一個新的字串。
1 string = "abc" 2 newstr = string.center(10, "*") 3 print(newstr)
執行結果如下:
***abc****
12、string.zfill(width)
- 居右對齊,左邊用0填充。
- 返回一個新的字串。
1 string = "abc" 2 newstr = string.zfill(10) 3 print(newstr)
執行結果如下:
0000000abc
13、string.ljust(width[, fillchar])
- 居左對齊,其餘空白位置根據指定的字元進行填充。
- 返回一個新的字串。
- 還有一個與其相反的方法string.rjust(width[, fillchar]),居右對其,其餘位置按照指定的字元進行填充。
1 string = "abc" 2 newstr = string.ljust(10, "*") 3 print(newstr)
執行結果如下:
abc*******
1 string = "abc" 2 newstr = string.rjust(10, "*") 3 print(newstr)
執行結果如下:
*******abc
14、string.replace(old, new[, count])
- old:要被替換的字元。
- new:要替換的新字元。
- count:替換的次數,不指定就是全部替換。
- 從字串中找到匹配的字元old,替換為新的字元new,返回新的字串。
1 string = "aabbcc" 2 newstr = string.replace(`b`, `*` ) 3 print(newstr)
執行結果如下:
aa**cc
15、string.strip([chars])
- 從字串兩端去除指定字符集chars中的所有字元。
- 如果chars沒有指定,則去除兩端的空白字元。
- 還有兩個與其相對應的方法lstrip,它是從左開始去除指定字符集中的字元;rstrip,它是從右開始去除指定字符集中的字元。
1 string = " Hello Python " 2 newstr = string.strip() 3 print(newstr)
執行結果如下:
Hello Python
1 string = "I am very very very sorry" 2 newstr = string.strip(`Iay`) 3 print(newstr)
執行結果如下:
am very very very sorr
16、string.find(sub[, start[, end]])
- 在指定的區間[start, end],查詢子串sub,如果找到就返回對應的索引,沒有找到就返回-1.
- 與其相反的方法是rfind,用於與其一直,只不過rfind是從右往左查詢。
- 還有一個與其相似的方法是string.index(sub[, start[, end]]),不同的地方是如果沒有找到它會丟擲異常ValueError。
1 string = "I am very very very sorry" 2 newstr = string.find(`very`) 3 print(newstr)
執行結果如下:
5
17、string.count(sub[, start[, end]])
- 在指定的區間[start, end],統計子串sub出現的次數。
1 string = "I am very very very sorry" 2 newstr = string.count(`very`) 3 print(newstr)
執行結果如下:
3
18、startswith(prefix[, start[, end]])
- 在指定的區間[start, end],判斷字串是否以prefix開頭
- 如果是返回Trun,反之返回False
- 與之相反的還有一個方法string.endswith(suffix[, start[, end]]),它是用來判斷字串是否以suffix結尾的。
1 string = "I am very very very sorry" 2 newstr = string.startswith(`I`) 3 print(newstr)
執行結果如下:
True
19、字串判斷is系列方法
- string.isalnum() 判斷字串是否有字母和數字組成
- string.isalpha() 判斷字串是否是字母組成
- string.isdecimal() 判斷字串是否只包含十進位制數字
- string.isdigit() 判斷字串是否全部數字(0-9)
- string.isdentifler() 判斷字串是否由字母和下劃線開頭,其他都是數字,字母、下劃線
- string.islower() 判斷字串是否全部小寫
- string.isupper() 判斷字串是否全部大寫
- string.isspace() 判斷字串是否只包含空白字元