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

?Python中創(chuàng)建的不可變的對(duì)象(如int和str)創(chuàng)建出來(lái)后就不會(huì)再改變其屏,為了性能優(yōu)化,Python使用同一個(gè)對(duì)象來(lái)表示具有相同內(nèi)容的字符串缨该。例如創(chuàng)建兩個(gè)相同的字符串變量:

>>> s1 = "test"

>>> s2 = "test"

>>> id(s1)

4337183936

>>> id(s2)

4337183936

可以看到s1和s2在內(nèi)存中的標(biāo)示id是同一個(gè)偎行。

處理字符串的函數(shù)

len函數(shù)返回一個(gè)字符串中字符的個(gè)數(shù)

max函數(shù)返回字符串中的最大字符

min函數(shù)返回字符串中最小字符

字符串下標(biāo)運(yùn)算符:[]

字符串是一個(gè)字符序列,可以通過(guò)下標(biāo)(從0開(kāi)始)訪問(wèn)字符串中的一個(gè)字符:

s[index]

注意:1贰拿、s[-1] = s[-1 + len(s)],表示字符串的最后一個(gè)字符蛤袒。2、字符串是不可變的膨更,不能通過(guò)下標(biāo)去嘗試修改字符串中的一個(gè)字符妙真。

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

截取從start到end-1部分的字符串,start為空表示0荚守,end為空表示最后一個(gè)下標(biāo),如果start或end是負(fù)數(shù)珍德,那么就用len(s)+負(fù)數(shù)來(lái)替換下標(biāo)练般。如下例子:

>>> s = "welcome"

>>> s[: 6]

'welcom'

>>> s[3:]

'come'

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

'elcom'

字符串連接符:+、字符串復(fù)制符:*

>>> s1="a"

>>> s2="b"

>>> s1+s2

'ab'

>>> 3*s1

'aaa'

字符串包含某個(gè)字符串判斷:in锈候、not in

>>> s = "welcome"

>>> "come" in s

True

>>> "come" not in s

False

比較字符串

可以使用==薄料、!=、 >泵琳、 <摄职、 >=、 <=來(lái)比較字符串获列,Python是比較字符串中從腳標(biāo)0開(kāi)始依次向右對(duì)應(yīng)位置的字符進(jìn)行大小比較的谷市。

迭代字符串

字符串是可迭代的,這意味著可以使用for循環(huán)來(lái)遍歷字符串中的每一個(gè)字符蛛倦,例如:

for ch in s:

? ? print(ch)

或遍歷奇數(shù)位

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

? ? print(s[i])

測(cè)試字符串類型常用函數(shù):

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

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

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

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

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

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

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

搜索字符串:

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

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

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

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

count(substring): int ? ? ? ? #返回這個(gè)子串在字符串中出現(xiàn)的次數(shù)

轉(zhuǎn)換字符串:

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

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

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

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

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

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

??:這里的轉(zhuǎn)換都是創(chuàng)建了一個(gè)新的字符串,因?yàn)樽址遣豢勺兊挠瞩恕T瓉?lái)的字符串內(nèi)容沒(méi)有變化碍拆。

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

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

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

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

格式化字符串:

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

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

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

運(yùn)算符重載:

Python中的運(yùn)算符重載思想比較簡(jiǎn)單礼烈,你只需要在你需要重載的地方重寫(xiě)和運(yùn)算符對(duì)應(yīng)的方法即可弧满。這里提供和運(yùn)算符對(duì)應(yīng)的方法:

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

__init__ 構(gòu)造函數(shù) 對(duì)象建立:X = Class(args)

__del__ 析構(gòu)函數(shù) X對(duì)象收回

__add__ 運(yùn)算符+ 如果沒(méi)有_iadd_,X+Y,X+=Y

__or__ 運(yùn)算符|(位OR) 如果沒(méi)有_ior_,X|Y,X|=Y

__repr__,__str__ 打印、轉(zhuǎn)換 print(X)此熬、repr(X),str(X)

__call__ 函數(shù)調(diào)用 X(*args,**kargs)

__getattr__ 點(diǎn)號(hào)運(yùn)算 X.undefined

__setattr__ 屬性賦值語(yǔ)句 X.any = value

__delattr__ 屬性刪除 del X.any

__getattribute__ 屬性獲取 X.any

__getitem__ 索引運(yùn)算 X[key],X[i:j],沒(méi)__iter__時(shí)的for循環(huán)和其他迭代器

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

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

__len__ 長(zhǎng)度 len(X),如果沒(méi)有__bool__,真值測(cè)試

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

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

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

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

__radd__ 右側(cè)加法 Other+X

__iadd__ 實(shí)地(增強(qiáng)的)加法 X += Y (or else __add__)

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

__contains__ 成員關(guān)系測(cè)試 item in X (任何可迭代的)

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

__enter__,__exit__ 環(huán)境管理器 with obj as var:

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

__new__ 創(chuàng)建 在__init__之前創(chuàng)建對(duì)象

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末庭呜,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子犀忱,更是在濱河造成了極大的恐慌募谎,老刑警劉巖,帶你破解...
    沈念sama閱讀 211,639評(píng)論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件阴汇,死亡現(xiàn)場(chǎng)離奇詭異数冬,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī)搀庶,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,277評(píng)論 3 385
  • 文/潘曉璐 我一進(jìn)店門吉执,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)疯淫,“玉大人,你說(shuō)我怎么就攤上這事戳玫∥醪簦” “怎么了?”我有些...
    開(kāi)封第一講書(shū)人閱讀 157,221評(píng)論 0 348
  • 文/不壞的土叔 我叫張陵咕宿,是天一觀的道長(zhǎng)币绩。 經(jīng)常有香客問(wèn)我,道長(zhǎng)府阀,這世上最難降的妖魔是什么缆镣? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 56,474評(píng)論 1 283
  • 正文 為了忘掉前任,我火速辦了婚禮试浙,結(jié)果婚禮上董瞻,老公的妹妹穿的比我還像新娘。我一直安慰自己田巴,他們只是感情好钠糊,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,570評(píng)論 6 386
  • 文/花漫 我一把揭開(kāi)白布。 她就那樣靜靜地躺著壹哺,像睡著了一般抄伍。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上管宵,一...
    開(kāi)封第一講書(shū)人閱讀 49,816評(píng)論 1 290
  • 那天截珍,我揣著相機(jī)與錄音,去河邊找鬼箩朴。 笑死岗喉,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的炸庞。 我是一名探鬼主播钱床,決...
    沈念sama閱讀 38,957評(píng)論 3 408
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼燕雁!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起鲸拥,我...
    開(kāi)封第一講書(shū)人閱讀 37,718評(píng)論 0 266
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤拐格,失蹤者是張志新(化名)和其女友劉穎,沒(méi)想到半個(gè)月后刑赶,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體捏浊,經(jīng)...
    沈念sama閱讀 44,176評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,511評(píng)論 2 327
  • 正文 我和宋清朗相戀三年撞叨,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了金踪。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片浊洞。...
    茶點(diǎn)故事閱讀 38,646評(píng)論 1 340
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖胡岔,靈堂內(nèi)的尸體忽然破棺而出法希,到底是詐尸還是另有隱情,我是刑警寧澤靶瘸,帶...
    沈念sama閱讀 34,322評(píng)論 4 330
  • 正文 年R本政府宣布苫亦,位于F島的核電站,受9級(jí)特大地震影響怨咪,放射性物質(zhì)發(fā)生泄漏屋剑。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,934評(píng)論 3 313
  • 文/蒙蒙 一诗眨、第九天 我趴在偏房一處隱蔽的房頂上張望唉匾。 院中可真熱鬧,春花似錦匠楚、人聲如沸巍膘。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 30,755評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)典徘。三九已至,卻和暖如春益咬,著一層夾襖步出監(jiān)牢的瞬間逮诲,已是汗流浹背。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 31,987評(píng)論 1 266
  • 我被黑心中介騙來(lái)泰國(guó)打工幽告, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留梅鹦,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 46,358評(píng)論 2 360
  • 正文 我出身青樓冗锁,卻偏偏與公主長(zhǎng)得像齐唆,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子冻河,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,514評(píng)論 2 348

推薦閱讀更多精彩內(nèi)容