Python基礎總結(六)(更多字符串和特殊方法)

?Python中創建的不可變的對象(如int和str)創建出來后就不會再改變,為了性能優化,Python使用同一個對象來表示具有相同內容的字符串。例如創建兩個相同的字符串變量:

>>> s1 = "test"

>>> s2 = "test"

>>> id(s1)

4337183936

>>> id(s2)

4337183936

可以看到s1和s2在內存中的標示id是同一個。

處理字符串的函數

len函數返回一個字符串中字符的個數

max函數返回字符串中的最大字符

min函數返回字符串中最小字符

字符串下標運算符:[]

字符串是一個字符序列,可以通過下標(從0開始)訪問字符串中的一個字符:

s[index]

注意:1、s[-1] = s[-1 + len(s)],表示字符串的最后一個字符。2、字符串是不可變的,不能通過下標去嘗試修改字符串中的一個字符。

字符串截取符:[Start: end]

截取從start到end-1部分的字符串,start為空表示0,end為空表示最后一個下標,如果start或end是負數,那么就用len(s)+負數來替換下標。如下例子:

>>> s = "welcome"

>>> s[: 6]

'welcom'

>>> s[3:]

'come'

>>> s[1:-1] ? #等于s[1: -1+len(s)] = s[1: 6]

'elcom'

字符串連接符:+、字符串復制符:*

>>> s1="a"

>>> s2="b"

>>> s1+s2

'ab'

>>> 3*s1

'aaa'

字符串包含某個字符串判斷:in、not in

>>> s = "welcome"

>>> "come" in s

True

>>> "come" not in s

False

比較字符串

可以使用==、!=、 >、 <、 >=、 <=來比較字符串,Python是比較字符串中從腳標0開始依次向右對應位置的字符進行大小比較的。

迭代字符串

字符串是可迭代的,這意味著可以使用for循環來遍歷字符串中的每一個字符,例如:

for ch in s:

? ? print(ch)

或遍歷奇數位

for i in range(0, len(s), 2):

? ? print(s[i])

測試字符串類型常用函數:

isalnum(): bool ? ? ? ?#字符串中至少有一個字符,并且是字母和數字組成就返回true?

isalpha(): bool ? ? ? ? #字符串中至少有一個字符,并且是字母組成就返回true

isdigit(): bool ? ? ? ? ? #字符串只含有數字就返回true

isidentifier():bool ? ?#字符串是Python標示符就返回true

islower(): bool ? ? ? ? #字符串中至少有一個字符,并全是小寫就返回true

isupper(): bool ? ? ? ?#字符串中至少有一個字符,并全是大寫就返回true

isspace(): bool ? ? ? ?#字符串中只包含空格就返回true

搜索字符串:

endswith(s1: str): bool ? ? ?#如果字符串以子串s1結尾則返回true

startswith(s1: str): bool ? ? #如果字符串以子串s1開頭則返回true

find(s1): int ? ? ? ? ? ? ? ? ? ? ? ? #返回s1在這個字符串的最低下標,如果不存在返回-1

rfind(s1): int ? ? ? ? ? ? ? ? ? ? ? ?#返回s1在這個字符串的最高下標,如果不存在返回-1

count(substring): int ? ? ? ? #返回這個子串在字符串中出現的次數

轉換字符串:

capitalize(): str ?#返回大寫首字母的字符串

lower(): str ?#將字母都變成小寫

upper(): str? #將字母都變成大寫

title(): str ?#大寫每個單詞的首字母

swapcase(): str ?#將小寫字母變成大寫,大寫字母變成小寫

replace(old, new): str ?#用新的字符串替代老的字符串

??:這里的轉換都是創建了一個新的字符串,因為字符串是不可變的。原來的字符串內容沒有變化。

刪除字符串兩端的空格(包括‘’、\t、\f、\r、\n):

lstrip(): str ? #去掉字符串前端的空白字符串

rstrip(): str? #去掉字符串后端的空白字符串

strip(): str? #去掉字符串兩端的空白字符串

格式化字符串:

center(width): str ?#返回在給定寬度上居中的字符串副本

ljust(width): str? #返回在給定寬度上居左的字符串副本

rjust(width): str? #返回在給定寬度上居右的字符串副本

運算符重載:

Python中的運算符重載思想比較簡單,你只需要在你需要重載的地方重寫和運算符對應的方法即可。這里提供和運算符對應的方法:

??方法前后都是雙下劃線

__init__ 構造函數 對象建立:X = Class(args)

__del__ 析構函數 X對象收回

__add__ 運算符+ 如果沒有_iadd_,X+Y,X+=Y

__or__ 運算符|(位OR) 如果沒有_ior_,X|Y,X|=Y

__repr__,__str__ 打印、轉換 print(X)、repr(X),str(X)

__call__ 函數調用 X(*args,**kargs)

__getattr__ 點號運算 X.undefined

__setattr__ 屬性賦值語句 X.any = value

__delattr__ 屬性刪除 del X.any

__getattribute__ 屬性獲取 X.any

__getitem__ 索引運算 X[key],X[i:j],沒__iter__時的for循環和其他迭代器

__setitem__ 索引賦值語句 X[key] = value,X[i:j] = sequence

__delitem__ 索引和分片刪除 del X[key],del X[i:j]

__len__ 長度 len(X),如果沒有__bool__,真值測試

__bool__ 布爾測試 bool(X),真測試

__lt__,__gt__, 特定的比較 X < Y,X > Y

__le__,__ge__, X<=Y,X >= Y

__eq__,__ne__ X == Y,X != Y

__radd__ 右側加法 Other+X

__iadd__ 實地(增強的)加法 X += Y (or else __add__)

__iter__,__next__ 迭代環境 I = iter(X),next(I)

__contains__ 成員關系測試 item in X (任何可迭代的)

__index__ 整數值 hex(X),bin(X),oct(X),O[X],O[X:]

__enter__,__exit__ 環境管理器 with obj as var:

__get__,__set__ 描述符屬性 X.attr,X.attr = value,del X.attr

__new__ 創建 在__init__之前創建對象

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市,隨后出現的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 229,963評論 6 542
  • 序言:濱河連續發生了三起死亡事件,死亡現場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機,發現死者居然都...
    沈念sama閱讀 99,348評論 3 429
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事。” “怎么了?”我有些...
    開封第一講書人閱讀 178,083評論 0 383
  • 文/不壞的土叔 我叫張陵,是天一觀的道長。 經常有香客問我,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 63,706評論 1 317
  • 正文 為了忘掉前任,我火速辦了婚禮,結果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當我...
    茶點故事閱讀 72,442評論 6 412
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發上,一...
    開封第一講書人閱讀 55,802評論 1 328
  • 那天,我揣著相機與錄音,去河邊找鬼。 笑死,一個胖子當著我的面吹牛,可吹牛的內容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 43,795評論 3 446
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 42,983評論 0 290
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后,有當地人在樹林里發現了一具尸體,經...
    沈念sama閱讀 49,542評論 1 335
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 41,287評論 3 358
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發現自己被綠了。 大學時的朋友給我發了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 43,486評論 1 374
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 39,030評論 5 363
  • 正文 年R本政府宣布,位于F島的核電站,受9級特大地震影響,放射性物質發生泄漏。R本人自食惡果不足惜,卻給世界環境...
    茶點故事閱讀 44,710評論 3 348
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 35,116評論 0 28
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春,著一層夾襖步出監牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 36,412評論 1 294
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個月前我還...
    沈念sama閱讀 52,224評論 3 398
  • 正文 我出身青樓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 48,462評論 2 378

推薦閱讀更多精彩內容