Python字符串
字符串格式化
Python將若干值插入到帶有"%"標記的字符串中,從而可以動態(tài)的輸出字符串
<ol>
<li>
在"%"操作符的左側(cè)放置一個需要進行格式化的字符創(chuàng)戚扳,這個字符串帶有一個或多個嵌入的轉(zhuǎn)換目標椒振,都以"%"開頭
</li>
<li>
在"%"操作的右側(cè)放置一個(或多個)對象,這些對象將會從插入到左側(cè)想讓Python進行格式化字符串的一個裝換目標位置上去
</li>
</ol>
<pre>
'That is %d %s bird!' %(1,'dead')
That is 1 dead bird!
"%d %d %d you" %(1,'spam',4) #注意格式化的順序
1 spam 4 you
x = 1234
res = 'integers:...%d...%-6d...%06d'%(x,x,x)
integers:...1234...1234 ...001234
'浮點數(shù):%.2f'%1.254
浮點數(shù):1.25
</pre>
基于字典的字符串格式化
字符串的格式化同時也允許左邊的轉(zhuǎn)換目標來引用右邊字典中的鍵來提取對應的值
<pre>
"%(n)d %(x)s"%{"n":1,"x":"spam"}
1 spam
</pre>
上例中迹鹅,格式化字符串里(n)和(x)引用了右邊字典中的鍵來提取對應的值
<pre>
reply = """Greetings...
Hello %(name)s!
Your age squared is %(age)s"""
values = {'name':'Bob','age':40}
print(reply % values)
Greetings...
Hello Bob!
Your age squared is 40
</pre>
字符串格式化調(diào)用方法
調(diào)用字符串對象的format方法使用主體字符串作為模板权旷,并且接受任意多個表示將要更具模板替換的值的參數(shù)。
在主體字符串中戏锹,花括號通過位置{0}或這關鍵字{food}指出替換目標將要插入的參數(shù)
<pre>
template = '{0},{1} and {2}'
template.format('spam','ham','egges')
'spam,ham and egges'
template = '{motto},{pork} and {food}'
template.format(motto='spam',pork='ham',food='egges')
'spam,ham and egges'
template = '{motto},{0} and {food}'
template.format('ham',motto='spam',food='egges')
'spam,ham and egges'
4.表示一個有小數(shù)點后兩位的小數(shù) 0:表示()中第一個數(shù)
'{0:.2f}'.format(1/3.0)
0.33
</pre>
字符串格的合并
<pre>
1.Python使用"+"連接不同的字符串冠胯。如果兩側(cè)都是字符串類型則采用連接操作,如果都是數(shù)字類型砸采用加法運算
锦针,如果兩邊類型不一樣則拋出異常
str1 = 'hello '
str2 = 'world '
str3 = 'hello '
str4 = 'China '
result = str1 + str2 + str3 + str4
hello world hello China
2.join()函數(shù)配合列表使用也可以連接字符串.接受一個list類型的參數(shù)
strs = ['hello','world','hello','China']
' '.join(strs)
'hello world hello China'
3.可以使用reduce()函數(shù)進行累計拼接
import operator
op = reduce(operator.add, strs,"")
'hello world hello China'
</pre>
字符串的截取
Python可以通過"索引"荠察、"切片"獲取子字符串
<pre>
word = "world"
print(word[4])
print(word[0:3])
print(word[0:4:2]) #各一個字符取一個
print(word[::-1]) #字符串反轉(zhuǎn) 從最后一個開始取
'd' 'wor' 'wr' 'dlrow'
</pre>
字符串的比較
Python直接使用"=="、"!="奈搜、">"悉盆、"<"運算符比較來那個字符串的內(nèi)容
<pre>
word = 'hello world'
print('hello' == word[0:5])
print(word>'tyt')
print(word.startswith('hello')) #判斷字符串是否以hello開頭
print(word.endswith('ld',6))
True False True True
</pre>
字符串的查找和替換
find(substring[,start[,end]])
子串,開始位置馋吗,結(jié)束位置
<pre>
sentence ="This is a apple"
print(sentence.find("a"))
sentence ="This is a apple"
print(sentence.rfind('a')) #從后往前找
</pre>
替換字符串
字符串的替換 replace()先創(chuàng)建變量的拷貝焕盟,然后在拷貝中替換字符串
不會改變變量的值
<pre>
centence = "hello world, hello China"
print(centence.replace("hello", "hi"))
print(centence.replace("hello", "hi",1))
print(centence)
</pre>