Python基礎教程 第3章 字串

2021-09-10 09:38:37 字數 3328 閱讀 8597

所有標準序列操作(索引、切片、乘法、成員資格檢查、長度、最小值和最 大值)都適用於字串,但別忘了字串是不可變的。

在%左邊指定乙個字 符串(格式字串),並在右邊指定要設定其格式的值。

format

="hello, %s. %s enough for ya?"

values =

('world'

,'hot'

)format

% values

# 'hello, world. hot enough for ya?'

上述格式字串中的%s稱為轉換說明符,指出了要將值插入什麼地方。

還有一種方法是使用字串方法format。每個替換欄位都用花括號括起,其中可能包含名稱。

"{}, {} and {}"

.format

("first"

,"second"

,"third"

)# 'first, second and third'

" "

.format

("be"

,"not"

,"or"

,"to"

)# 'to be or not to be'

每個值都被插入字串中,以替換用花括號括起的替換字段。在格式字串中,最激動人心的部分為替換字段。

替換欄位由如下部分組成,其中每個部分都是可選的。

最簡單情況下只需要向format提供其格式的未命名引數,並在格式字串中使用未命名字段,還可以使用索引指定在哪個欄位中使用相應的未命名引數。

" {}  {}"

.format(1

,2, bar=

4, foo=3)

# '3 1 4 2'

" "

.format(1

,2, bar=

4, foo=3)

# 索引

# '3 2 4 1'

fullname =

["alfred"

,"smoketoomuch"

]# 訪問組成部分

"mr "

.format

(name=fullname)

# 'mr smoketoomuch'

指定要在字段中包含的值後,就可新增有關如何設定其格式的指令了。首先,可以提供乙個轉換標誌。

print

(" "

.format

(pi=

"π")

)# π 'π' '\u03c0'

上述三個標誌(s、r和a)指定分別使用str、repr和ascii進行轉換。函式str通常建立外觀 普通的字串版本(這裡沒有對輸入字串做任何處理)。函式repr嘗試建立給定值的python表 示(這裡是乙個字串字面量)。函式ascii建立只包含ascii字元的表示,類似於python 2中的 repr。

方法center通過在兩邊新增填充字元(預設為空格)讓字串居中。

"the middle by jimmy eat world"

.center(39)

# ' the middle by jimmy eat world '

方法find在字串中查詢子串。如果找到,就返回子串的第乙個字元的索引,否則返回-1.

你還可指定搜尋的起點和終點(它們都是可選的)。

'with a moo-moo here, and a moo-moo there'

.find(

'moo'

)# 7

'$$$ get rich now!!! $$$'

.find(

'!!!',0

,16)# 同時指定了起點和終點

起點和終點值(第二個和第三個引數)指定的搜尋範圍包含起點,但不包含終點。 這是python慣常的做法。

join方法與split相反,用於合併序列。

seq =

['1'

,'2'

,'3'

,'4'

,'5'

]sep =

'+'sep.join(seq)

# '1+2+3+4+5'

dirs ='',

'usr'

,'bin'

,'env'

'/'.join(dirs)

# '/usr/bin/env'

所合併序列的元素必須都是字串。

方法lower返回字串的小寫版本。如果不想區分字串的大小寫(即忽略大小寫的差別),這將很有用。

'trondheim hammer dance'

.lower(

)# 'trondheim hammer dance'

方法replace將指定子串都替換為另乙個字串,並返回替換後的結果。

'this is a test'

.replace(

'is'

,'eez'

)# 'theez eez a test'

其作用與join相反,用於將字串拆分為序列。

'1+2+3+4+5'

.split(

'+')

# ['1', '2', '3', '4', '5']

' internal whitespace is kept '

.strip(

)

方法strip將字串開頭和末尾的空白(但不包括中間的空白)刪除,並返回刪除後的結果。

' internal whitespace is kept '

.strip(

)'internal whitespace is kept'

與replace類似,不過translate可以同時替換多個,只能進行單字元替換,效率更高。使用translate前必須建立乙個轉換表。

table =

str.maketrans(

'cs'

,'kz'

)'this is an incredible test'

.translate(table)

# 'thiz iz an inkredible tezt'

很多字串方法都以is打頭,如isspace、isdigit和isupper,它們判斷字串是否具有特定 的性質(如包含的字元全為空白、數字或大寫)。如果字串具備特定的性質,這些方法就返回 true,否則返回false。

Python基礎教程 第3章 字串

所有標準的序列操作 索引,分片,乘法,判斷成員資格,求長度,最大值,最小值 對字串都是同樣適用的。3.1 字串是不可變的 在python中,字串和元組一樣,都是不可變的,即一經建立就不可更改它。以下的分片賦值是不合法的 website website 3 com traceback most rec...

《python基礎教程》第3章使用字串 讀書筆記

1.字串格式化操作符是乙個百分號 2.只有元組和字典可以格式化乙個以上的值。列表或者其他序列只會被解釋為乙個值。3.in操作符只能查詢字串中的單個字元。4.字串方法 find find方法可以在乙個較長的字串中查詢子串,它返回子串所在位置的最左端索引,如果沒有找到則返回 1。這個方法還能提供起始點和...

Python基礎教程 第8章 異常

1.自定義異常 繼承exception 1.自定義異常類 方法 從exception類繼承 class somecustomexception exception pass2.處理異常 1 捕捉異常 try except try x input enter the first number y in...