1. 程式人生 > >python字串操作

python字串操作

轉義字元

我們可以通過“+特殊字元”,實現某些難以用字元表示的效果

\ 反斜槓符號 ’ 單引號 " 雙引號 \b 退格(backspace) \n 換行

\t 橫向製表符 \r回車 \ 續航符

字串拼接

1.可以使用+將多個字串拼接起來 ”aa“+”bb“=”aabb“ (1)如果+兩邊都是字串,則拼接 (2)如果+兩邊都是數字,則加法運算 (3)如果+兩邊型別不同,則丟擲異常

2.可以將多個字字面字串直接放到一起實現拼接

>>> "aa""bb"
'aabb'

字串複製

使用*可以實現字串複製

>>> a ="wonita"*3
>>> a
'wonitawonitawonita'

不換行列印

呼叫print時,會自動列印一個換行符,如果不想自動換行,我們可以自己通過end=”任意字 符串“,實現末尾新增任何內容

print("aa",end ="\t")
print("bb",end ="*")
print("cc")

結果

aa	bb*cc

從控制檯讀取字串

我們可以使用inp()從控制檯讀取鍵盤輸入的內容

>>> name = input("請輸入你的名字:")
請輸入你的名字:吾志高
>>> name
'吾志高'

int() 將字串轉化為整數 float() 字串轉化為浮點數 str()將其他型別資料

轉化為字串

使用 [ ] 提取字串

字串的本質就是字串序列,我們可以通過在字串後面新增 [ ] ,在 [ ] 裡面指定偏移量

可以提取該位置的單個字元

正向搜尋:

最左側第一個字元,偏移量是0,直到len(str)-1為止

反向搜尋: 最右側第一個字元,偏移量是-1,倒數第二個是-2,直到-len(str)為止

>>> a ="abcdefghijklmnopqrstuvwxyz"
>>> a[0]
'a'
>>> a[25]
'z'
>>> a[-1]
'z'
>>> a[-26]
'a'
>>> 

replace()實現字串替換

字串是“不可改變的”,我們通過獲取字串指定位置的字元,但是我們不能改變字串

當我們需要替換某些字元,這是,只能通過建立新的字串來實現

>>> a='abcdefghijklmnopqrstuvwxyz'
>>> a.replace("c","高")
'ab高defghijklmnopqrstuvwxyz'
>>> a
'abcdefghijklmnopqrstuvwxyz'
>>> a = a.replace("c","好")
>>> a
'ab好defghijklmnopqrstuvwxyz

這個不是替換,是新建,字串不可改變

字串切片slice操作

切片slice操作可以讓我們快速提取字串,標準格式為

[起始偏移量 start:終止偏移量 end:步長 step]

>>> a = "abcdefghij"
>>> a[1:5]    步長預設為1
'bcde'
>>> a[1:5:2]
'bd'
>>> a[2:]     end預設為最後一位
'cdefghij'
>>> a[:8]      start預設為0
'abcdefgh'

逆序操作類似

'abcdefgh'
>>> a[:-3]
'abcdefg'
>>> a[-3:]
'hij'

反向輸出

>>> a[::-1]
'jihgfedcba'

終止偏移量大於最大偏移量會預設為最大偏移量

split() 分割和 join() 合併

split() 可以基於指定分隔符將字串分割成多個子字串(儲存到列表中)

如果部指定分隔符,則預設使用空白字元(換行符/空格/製表符)

>>> a = "to be or not to be"
>>> a.split()
['to', 'be', 'or', 'not', 'to', 'be']

>>> a.split("be")
['to ', ' or not to ', '']

join()用法

>>> a = ["i","'m","hunger"]
>>> "*".join(a)         通過*連線
"i*'m*hunger"   
>>> " ".join(a)        通過空格連線
"i 'm hunger"

拼接字串要點:

使用字串拼接符+,會生成新的字串物件,而join()函式在拼接字串之前會計算所有

字串的長度,然後注意拷貝,僅新建一次物件

字串駐留機制

字串駐留:僅儲存一份相同且不可改變字串的方法,不同的值被存放在字串駐留池中

python支援字串駐留機制,對於符合識別符號規則的字串(僅包含下劃線(_),字母和數 字)會啟用字串駐留機制駐留

>>> a = "abc_33"
>>> b = "abc_33"
>>> a is b
True
>>> c = "a#"
>>> d = "a#"
>>> c is d
False
>>> c == d
True

is is是判斷兩個識別符號是不是引用同一個物件 is not is not是判斷兩個識別符號是不是引用不同物件

is 與 == 區別

is用於判斷兩個變數引用的物件是不是同一個,比較的是地址

==用於判斷引用的物件的值是否相等

成員操作符

in/not in 關鍵字,判斷某個字串(子字串)是否在字串中

>>> a = "abcdefg"
>>> "b" in a
True
>>> "acd" in a
False