Python的字串操作string

2021-06-19 18:47:30 字數 2365 閱讀 7024

python中的字串可以使用單引號,雙引號,三引號表示。

單引號(')與雙引號(")代表的意思相同,但要注意配對著用。並不分成單引號代表乙個字元,雙引號代表乙個字串,實際上python中沒有char。

三引號('''...''' or """...""")相比於前兩者的的優勢是,三引號內部可以自由使用單引號與雙引號,可以用於描述一段對話中(因為裡面很多引號),或者對乙個函式的描述(因為可以指示乙個多行的字串,可以直接敲回車,而不用手寫\n)。

轉義符及'\'(表示當前行未結束,下一行繼續)與c語言相同。

值得注意的是自然字串與unicode字串。自然字串可以將轉義符取消掉,如:str=r'1 \n 2', print的結果為 「1 \n 2」,其中'\'與'n'表示兩個字元,len(str)=6。 unicode用於對非英文本母的處理,雖然str=u'1 \n 2', print的結果也為 「1 \n 2」,但'\n'還是表示換行符,只是並沒有被直接轉義,len(str)=5。

python中,字串也是不可以直接通過賦值改變的,想要對字串進行某些修改時,要用到字串相關的一些函式(注意:修改完後,原字串仍未改變,需要將改變後的結果存到另乙個字串變數中):

len(str): 獲取str的長度。

enumerate(str): 返回str的index與value組成的元組。

str.pop(index): 從str中彈出位於index的資料,預設為最後乙個,實現stack時,使用str.pop()表示棧頂資料彈出,實現queue時,使用str.pop(0)表示佇列資料彈出。

str.upper(), str.lower(), str.swapcase(): 全部大寫,全部小寫,大小寫轉換。

str.find(substr, start, end), str.rfind(substr, start, end): 字串搜尋函式,分別表示從左往右與從右往左搜尋,start與end是可選引數,預設值分別為0與-1,find()是從start到end, rfind()是從end到start. 當可以找到substr時,函式返回值為發現的第乙個substr的下標(不論是find()還是rfind()函式,字串下標均是從左往右),如果未找到,則返回-1,不是0(這點,寫if-else的時候需要注意)。

str.count(substr): 也是搜尋函式,找到str中的substr的數目。

str.replace(oldsub, newsub, maxreplacetimes): 字串替換函式,如果可以在str中找到oldsub,則將oldsub替換為newsub,否則不替換。maxreplacetimes為可選引數,表示替換的次數,預設為替換所有可找到的oldsub。

[python]view plain

copy

forline 

infile.readlines: 

# 或者 for line in file:

line_new=line.strip() #由於readlines函式不去除每行結束時的換行符,需要手動去除。將line.strip()改為line.strip().split()則可得到每個單詞

str.split(substr): 字串截斷函式,將字串以substr為分界線分開變為乙個由子字串組成的list(substr分開後消失)。substr預設值為空格。

str.join(list): 將str加在list每相鄰的兩個item之間,返回乙個新的string,list中的item必須都是string。乙個主要用處是對list的items加空格,並變成一句話。

還有一些判斷函式(如以is開頭,返回bool型):str.islower(), str.isupper(), str.startswith(substr), str.endswith(substr), str.isalpha(), sub.isdigit() 等。

最後,python也支援八進位制(oct),十六進製制(hex),及ascii碼轉換(chr(), ord()). 這兩個函式並不是字串方法,而是python的內建函式,所以使用的時候,是傳遞引數,而不是像str.method() 這樣來使用。如:

[python]view plain

copy

>>> chr(

112) 

#ascii碼轉數字或字元,輸入為0<=value<=255

'p'>>> ord('p'

) #數字或字元轉ascii碼,引數為str

112>>> hex(11

) #十進位制轉16進製制,結果為str

'0xb'

>>> oct(11

) #十進位制轉8進製,結果為str

'013'

>>> unichr(112

) #unicode碼值轉數字或字元

u'p'

字串操作 str

len str 獲取字串長度 str.find 查詢,從頭到尾找到第乙個符合的就停止 str.rfind 查詢,從尾到頭找到第乙個符合的就停止 沒有找到字串的時候返回 1 str.index 類似find str.rindex 類似rfind 沒有找到字串的時候報錯 str.startswith 以...

python中字串(str)的操作

s hello 字串的重疊 s hello 2 字串的拼接 s hello world print s 統計字元個數 print len s 提取單個字元,通過下表提取 從開頭提取,下表從0開始 print s 0 從結尾提取,下表從 1開始 print s 1 切片 s 開始 結束 步進 s ab...

python學習 str字串

s hello world print s s hello world print s s hello world print s 轉義字元案例 想表達let s go 使用轉義字元 s let s go 就想表達乙個單引號,不想組成引號對 print s 表示斜槓 比如表示c user augsn...