閱讀203 返回首頁    go 阿裏雲 go 技術社區[雲棲]


python字符串操作總結

python中有各種字符串操作,一開始python有個專門的string模塊,要使用需先import string。後來從python2.0開始,string方法改用str.method()形式調用,就是直接在你的字符串變量後加方法就行了,無需import。但是為了保持向後兼容,python仍然保留了string模塊,但是並不推薦用,你懂的。

但並非所有的字符串操作都用str.method()方法調用的,有些方法是python內置函數,比如計算字符串長度用len(str)而不是str.len()。還有re模塊也有對字符串操作的一些方法,後麵再講。字符串對象是不可改變的,也就是說在python創建一個字符串後,你不能把這個字符中的某一部分改變。任何上麵的函數改變了字符串後, 都會返回一個新的字符串,原字串並沒有變。當然,這也不是絕對的。下麵總結一下常用方法。





注意s.capitalize()隻是將第一個字母大寫,不管你換行還是換句。要想每個首字母大寫,可用string模塊的capwords函數,如string.capwords('i have a dream')轉換結果為‘I Have A Dream’。string模塊字符串類型轉換函數也比較常用:string.atoi(s[,base])/string.atol(s[,base])/string.atof(s[,base])將字符串s轉換為int/long/float型。base默認為10,可選。數字轉字符的話直接用str(num)就ok了。

接下來說一下python中的字符串編碼問題,python內部表示的是unicode編碼,因此在做編碼轉換時先將其他編碼解碼(decode)為unicode,再從unicode編碼(encode)成另外一種編碼。如果一個串本身就是unicode編碼,解碼的時候就會出錯,所以解碼前要用isinstance(str,unicode)進行判斷。同樣,對非unicode字符串解碼也會出錯。

例如,將gb2312碼字符串轉為utf-8,要先解碼:str1=str.decode('gb2313'),然後再編碼str2=str1.encode('utf-8')。注意:在轉碼的時候一定要弄清str是什麼碼!

代碼中字符串的編碼與文件編碼一致。如s='編碼',在utf-8編碼文件中就是utf-8碼,在gb2312編碼文件中就是gb2312碼。但若用s=u'編碼',則s指定為unicode碼。

要獲取係統默認編碼:

import sys
print sys.getdefaultencoding()  



最後更新:2017-04-03 15:21:44

  上一篇:go 數據結構學習筆記--隊列
  下一篇:go Android MMS模塊數據存取以及各個表的字段說明