python學習之字串的思考

2021-10-05 18:26:58 字數 3601 閱讀 2567

在字串物件中,始終需要記住字串物件的值是無法修改的,所有對字串物件的操作飯後的都是新建立的字串,原字串物件是沒有發生任何變化的

在使用+符合拼接字串時,如果+其中一側不是字串時,則需要通過str函式進行轉移

>>

>

"fsdbo"+12

traceback (most recent call last)

: file ""

, line 1,in

"fsdbo"+12

typeerror: can't convert '

int' object to str implicitly

>>

>

"fsdbo"

+str(12

)'fsdbo12'

在python中,提供了findindex兩個方法在特定的字串中查詢其他字串,findindex方法不同的是如果原字串中沒有字串時返回的不同,find方法直接返回-1,index方法直接valueerror錯誤

>>

> a =

"abcdefg"

>>

> a.find(

"bc")1

>>

> a.find(

"cb")-

1>>

> a.index(

"bc")1

>>

> a.index(

"cb"

)traceback (most recent call last)

: file ""

, line 1,in

a.index(

"cb"

)valueerror: substring not found

>>

>

關於字串切片可以把字串看作列表,然後對列表切片,可以參考我這篇部落格

字串的分割就是將字串按照特定格式進去切分,然後返回列表,原字串不發生改變,split預設以空字元作為分隔符,若原字串沒有分隔符,則直接將元字元作為列表的元素直接返回

>>

> a =

"ab ac ad af ae"

>>

> a.split()[

'ab'

,'ac'

,'ad'

,'af'

,'ae'

]>>

> a.split(

"a")[''

,'b '

,'c '

,'d '

,'f '

,'e'

]>>

> a.split(

"df")[

'ab ac ad af ae'

]>>

>

join方法則是和split方法執行相反的操作,join方法是將迭代物件通過特定的連線符進行拼接

>>

> a =

"ab ac ad af ae"

>>

> b = a.split(

)>>

>

print

(b)[

'ab'

,'ac'

,'ad'

,'af'

,'ae'

]>>

>

"+".join(b)

'ab+ac+ad+af+ae'

>>

>

1、in 和not in

判斷字串是否存在特定的字串

2、startswith和endswith

判斷字串是否以特定字串開頭或結尾

1、刪除空白字串

strip方法返回刪除字串的左右空白的新的字串物件,lstrip、rstrip分別是返回刪除坐空白和右空白字串的新物件

2、替換

replace是用新的子串替換舊的子串,並返回替換後的新的字串物件,如果字串中含有多個舊的子串,都會被替換掉

>>

> a =

"ab ac ad af ae ac"

>>

> a.replace(

"ac"

,"++"

)'ab ++ ad af ae ++'

>>

>

capitalize將每句話的首字元大寫

lower是將字串中大寫的字元轉為小寫的字元

upper將字串中小寫的字元轉為大寫的字元

title將每個詞首字元大寫

swapcase是將字串中的大小寫互換

>>

> a =

"ab ac ad af ae"

>>

> a.capitalize(

)'ab ac ad af ae'

>>

> a.title(

)'ab ac ad af ae'

>>

> b = a.upper(

)>>

>

print

(b)ab ac ad af ae

>>

> a.lower(

)'ab ac ad af ae'

>>

> a.swapcase(

)'ab ac ad af ae'

len函式返回字串的長度

count方法是計算字串中含有特定子串的個數

>>

> a =

"ab ac ad af ae ac"

>>

>

len(a)

17>>

> a.count(

"ac"

)2

對於符合識別符號規則(只包含字母、下劃線_、數字)的字串物件會啟動字串駐留記憶體機制,相同的字串物件在記憶體中之儲存乙份,對於不符合要求的字串則不會啟動記憶體駐留機制,

>>

> a =

"sfdo_21"

>>

> b =

"sfdo_21"

>>

> a is b

true

>>

> c =

"sdf!"

>>

> d =

"sdf!"

>>

> c is d

false

>>

>

id(a)

71457848

>>

>

id(b)

71457848

>>

>

id(c)

71458016

>>

>

id(d)

71398040

>>

>

上面**中,由於a和b的字串符合識別符號規則,所以就能夠啟動記憶體駐留機制,c和d的字串不符合識別符號規則,則不啟動記憶體駐留機制

Python學習之字串

字串或串 string 是由數字 字母 下劃線組成的一串字元。一般記為 s a1a2 an n 0 它是程式語言中表示文字的資料型別。python的字串列表有2種取值順序 如果你的實要取得一段子串的話,可以用到變數 頭下標 尾下標 就可以擷取相應的字串,其中下標是從0開始算起,可以是正數或負數,下標...

python學習之字串

1 賦值 msg studying python now msg1 xu te t為4個空格 msg3 aaa qq.com msg4 d1 2 字串常用方法 print msg.capitalize 首字母大寫 print msg.center 40,按40個字元寬度居中顯示字串,前後用 填充 p...

PYTHON 學習之字串變數

利用百分號格式化 name zhangsan age 25 price 4500.225 print my name is s name print i am d age years old print my price is f price 保留指定位數小數 四捨五入 print my price...