Python中String類型的用法。這一部分我主要是整理一些思路。網上已經有很多朋友分享了Python中String類型的用法。
String的表現形式
1: 'me'單引號
2: "me"雙引號 前面兩種方式的配合,很有Javascript中的感覺。這樣寫的確是方便很多。在底層Python編譯器會統一成單引號
3: '''me'''三引號,這個一般用來寫多行文本。__doc__使用這個。讓我更直接的相對的就是在代碼中拼接HTML代碼可以用到。
4: r"messs",在字串前面添加一個r,raw的縮寫,就是原生字元(關掉字串中的轉義)。這個在寫r“C:\windows\system32”路徑的時候使用,在print顯示的時候也可以使用到。Python中還有一個函數有一樣的功能rept()。
5: u"Python文法String的操作",指明這是一個unicode字元,知道是為國際化或解決編碼問題的,但目前沒具體在什麼地方用。碰到過編碼問題,但也沒通過這個方式解決,還希望看客給個實際運用的情境,好理解一些。
相關的逸出字元的內容
String的類型轉換
基本上通過str(),就可以轉化大多數的object了。具體轉換的形式其實由類的__str()__這個函數決定的。所以自己寫的函數最後實現一下這個方法,方便str()的調用。
String是一個序列
String是一個序列,而且是一個不可變(Immutable)。既然String是一個序列,很自然的就相到可以使用Slice。S[0:3]這種方式,
有幾個特別的地方說明一下
1:S[:] 其實就是一個新的字元拷貝,感覺沒什麼用,因為 string類型的=賦值本身就是一個拷貝的過程,這個應該也只是一個淺拷貝
2:S[1:9:2] 這個是感覺很奇怪的東西,其實2這裡是步長的意思。
3:S[::-1] 這個可以將一個字元反轉。就是"abc"變成"cba",但這樣其實是有問題的,如果你用的是中文,根本沒辦法反。反了就成亂碼啦。
字串直接可以同"+"的方式來串連,這個也好理解
String中的String.Empty很特殊
這裡借用了C#中的String.Empty這個常量。Python其實就是一個""Null 字元串,但這個和C#中的很多意義不同了
比如一個字串為 name=“abc”。 調用函數的相應結果
name='abc'
print name.count('') #-->4
print '' in name #-->True
print name.index('') #-->0
print name.find('') #-->0
String可以使用for 和 in
因為是一個序列,所以可以使用for-in,但同時in還可以單獨使用
if "abc" in str:
print "yes"
String的格式化輸出
我一般用到的都比較簡單,
print "%s %d" %('2',1)
如果大家有興趣可以去看最下面的參考一文。
String的方法
網上很多,我這裡就直接轉連結 《Python 常用字串操作》
String的模板方法
用過C#的都知道,C#的文法中有String.Format("ssss{0}sss{1}",1,3)這種替換的方式。在Python中我就試圖尋找類似的方式。(*^__^*)Python也是有的。直接複製例子:
>>> from string import Template
>>> s = Template('$who likes $what')
>>> s.substitute(who='tim', what='kung pao')
'tim likes kung pao'
參考:
http://www.telitchina.com/www/12/2007-07/35.html