所有標準序列操作(索引、切片、乘法、成員資格檢查、長度、最小值和最 大值)都適用於字串,但別忘了字串是不可變的。
在%左邊指定乙個字 符串(格式字串),並在右邊指定要設定其格式的值。
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...