Python中字符串有哪些常用操作?純干貨超詳細

在Python中字符串的表達方式有四種

一對單引號

一對雙引號

一對三個單引號

一對三個雙引號

a = 'abc'

b= "abc"

c = '''abc'''

d = """abc"""

print(type(a)) # <class 'str'>

print(type(b)) # <class 'str'>

print(type(c)) # <class 'str'>

print(type(d)) # <class 'str'>

復(fù)制代碼

單雙引號混合使用

a = "LiMing say 'nice to meet you'"

復(fù)制代碼

同樣也可以通過轉(zhuǎn)義的方式不用在里面寫雙引號

a = "LiMing say \"nice to meet you\""

print(a)

復(fù)制代碼

總結(jié)就是需要外面用了雙引號盛撑,里面需要引用的語句可以用單引號括起來,反之亦然虚缎。

通常情況根據(jù)個人喜好撵彻,基本都是使用單引號或者雙引號。有些特殊情況实牡,比如需要表示多行時陌僵,可以選擇三個單(雙)引號,并且無序用\進行轉(zhuǎn)移创坞,可直接使用單引號和雙引號碗短。

a = '''

? ? My Name is 阿喵,

? ? Let's say 'Hello'

? ? '''

print(a)

復(fù)制代碼

字符串的下標和切換

?

下標:字符串是一個個字符拼接而成题涨,下標可以理解為每個字符的編號偎谁,從0開始依次類推。

作用:通過下標去操作字符串中的元素

# H的下標為0纲堵, e的下標為1 ..依次類推

a = 'HelloWorld'

# 獲取字符串a(chǎn)中下標為4的元素

print(a[4])? # o? 下標為4的元素為o

復(fù)制代碼

修改字符串中的元素是不是可以直接賦值呢巡雨? 例如:

a = 'HelloWorld'

a[4] = 'k'

print(a)

復(fù)制代碼

上面的代碼運行之后發(fā)現(xiàn)報錯。

TypeError: 'str' object does not support item assignment

復(fù)制代碼

原因是因為:字符串一旦創(chuàng)建之后席函,里面的元素是不可以修改的铐望。

所以字符串是無法直接進行修改的。

字符串運算

字符串運算中用到了+ 茂附、*正蛙、>、<营曼、!= 乒验、= 等邏輯運算符。

字符串的相加操作蒂阱,也可以理解為拼接操作锻全。例如:

a = 'Hello' + ' World'

print(a) # Hello World

# 也可以寫成

a = 'Hello' ' World'

print(a) # Hello World

復(fù)制代碼

字符串的乘法操作, 可以理解為克隆操作,字符串只能與整數(shù)(n)想乘,代表克隆n個字符串录煤。

a = 'a'

print(a * 2) # aa

b = '-'

print(b * 10) # ----------

復(fù)制代碼

切片

字符串的切片也稱為字符串截取虱痕。 所有操作都是通過字符串的下標進行操作的。

用法:字符串[開始索引(start):結(jié)束索引(end):步長(step)(默認1)]

步長(step):每隔(step-1)個取一個元素辐赞,當step為負數(shù)時部翘,代表從右向左取元素,

a = 'abcdefghijklmn'

# 從下標1開始 到4結(jié)束 進行切片? (包括1响委,不包括4新思,即左開又閉)

print(a[1:4]) # bcd

print(a[1:8]) # bcdefgh

print(a[1:8:2])# 步長為2窖梁, 結(jié)果:bdfh

# 當補償為負數(shù)時,代表逆向截取夹囚。 初始從坐標8開始纵刘,每隔一個元素取一個值,到下標為1時結(jié)束

print(a[8:1:-2]) # igec

復(fù)制代碼

字符串的常用操作

這里以代碼+注釋的方式荸哟,展示幾個常用的字符串操作假哎。

a = ' Hello World '

# 獲取字符串的長度

print(len(a)) # 13

# 刪除字符串兩邊的空格

print(a.strip()) # Hello World

# 刪除左邊的空格

print(a.lstrip()) # Hello World (只刪除左邊的空格)

# 刪除字符串右邊的空格

print(a.rstrip()) #? Hello World

# 通過指定連接符 鏈接字符串

lst = ['LiMing', 'Tom']

print('***'.join(lst)) # LiMing***Tom

# 首字母大寫

m = 'hello world'

print(m.capitalize()) # Hello world

# 返回標題化字符串,即每個單詞首字母大寫

print(m.title()) # Hello World

# 打印輸出字符鞍历,將字符串放在中間,

# center(width, fillchar)? width: 字符串的總長度舵抹, fillchar:填充字符

print(a.center(20, '*')) # *** Hello World ****

# 是否以xxx開頭

n = 'Hello'

print(n.startswith('H')) # True

# 是否以xxx結(jié)尾

print(n.endswith('o')) # True

# 字符串是全純英文字符

print(a.isalpha()) # False , 因為字符串a(chǎn)中 ' Hello World ' 有空格,因此返回False

print('HelloWorld'.isalpha()) #True

# 判斷字符串中是否全部為數(shù)字或者英文

print('Hello2World'.isalnum()) # True

print('123'.isalnum()) # True

print('abc&11'.isalnum()) # False

# 判斷是否為整數(shù)

print('123'.isdigit()) # True

print('1.23'.isdigit()) # False

# 判斷字符是否全為小寫

print('abc'.islower()) # True

# 判斷字符是否全為大寫

print('Abc'.isupper()) # False

print('ABC'.isupper()) # True

# 字符串小寫轉(zhuǎn)大寫

print('abc'.upper()) # ABC

# 字符串大寫轉(zhuǎn)小寫

print('ABC'.lower()) # abc

# 字符串的替換

b = 'aabbcc'.replace('a', 'm')

print(b) # mmbbcc

#? 1 代表替換的個數(shù)

b = 'aabbcc'.replace('a', 'm', 1)

print(b) # mabbcc

# split 字符串切割劣砍,默認空格切割

print('aa bb cc'.split()) # ['aa', 'bb', 'cc']

print('ab,cd,ef'.split(',')) # ['ab', 'cd', 'ef']

# 字符串換行分割

a = """

? ? My Name is 'Python阿喵'惧蛹,

? ? 歡迎關(guān)注

? ? """

print(a.splitlines()) # ['', "? ? My Name is 'Python阿喵',", '? ? 歡迎關(guān)注', '? ? ']

復(fù)制代碼

字符串的查找

字符串查找常用的方法用index刑枝、find

兩者功能相似香嗓,區(qū)別在于find查找不到元素時返回 -1, 不會影響程序運行装畅,而index則會拋出異常靠娱。

a = 'abcdef'

# 查找到元素返回對應(yīng)的下標

print(a.find('c')) # 2

print(a.find('h')) # -1

print(a.index('c')) # 2

print(a.index('h')) # 拋出異常,ValueError: substring not found

復(fù)制代碼

rfind: 類似于find()函數(shù)掠兄,不過是從右邊開始查找;返回字符串最后一次出現(xiàn)的位置饱岸,如果沒有匹配項則返回-1 。rindex 同理

a = 'acmncd'

# 從右邊開始計算徽千,返回第一個匹配到的下標

print(a.rfind('c')) # 4

print(a.rindex('c')) # 4

復(fù)制代碼

字符串的格式化

name = 'Python阿喵'

# %s 用于輸出字符串

print('我的賬號是: %s' % name)

age = 18

# %d 用于輸出十進制數(shù)字

print('我的年齡是:%d' % age)

money = 1.23

# %f 浮點數(shù),默認顯示小數(shù)點后6位

print('我身上有:%f 元' % money )

# 指定小數(shù)點后的位數(shù)

print('我身上有:%.2f 元' % money )

復(fù)制代碼

format操作

?

除了使用 % 進行格式化汤锨,也可以使用format

print('{} {}'.format('Hello', 'World')) # Hello Worldprint('{0} {1}'.format('Hello', 'World')) # Hello Worldprint('賬號{name}双抽, 分享{code} 技術(shù)'.format(name='Python阿喵', code='Python')) # 賬號Python阿喵, 分享Python 技術(shù)print('{1}, {0}, {1}'.format('A', 'B')) #B, A, Bprint('今年是 {}年.'.format(2020)) # 今年是 2020年.復(fù)制代碼

最后多說一句闲礼,小編是一名python開發(fā)工程師牍汹,這里有我自己整理的一套最新的python系統(tǒng)學(xué)習(xí)教程,包括從基礎(chǔ)的python腳本到web開發(fā)柬泽、爬蟲慎菲、數(shù)據(jù)分析、數(shù)據(jù)可視化锨并、機器學(xué)習(xí)等露该。想要這些資料的可以關(guān)注小編,并在后臺私信小編即可領(lǐng)取第煮。

本文章素材來源于網(wǎng)絡(luò)解幼,如有侵權(quán)請聯(lián)系刪除抑党。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市撵摆,隨后出現(xiàn)的幾起案子底靠,更是在濱河造成了極大的恐慌,老刑警劉巖特铝,帶你破解...
    沈念sama閱讀 211,290評論 6 491
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件暑中,死亡現(xiàn)場離奇詭異,居然都是意外死亡鲫剿,警方通過查閱死者的電腦和手機鳄逾,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,107評論 2 385
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來牵素,“玉大人严衬,你說我怎么就攤上這事“蚀簦” “怎么了请琳?”我有些...
    開封第一講書人閱讀 156,872評論 0 347
  • 文/不壞的土叔 我叫張陵,是天一觀的道長赠幕。 經(jīng)常有香客問我俄精,道長,這世上最難降的妖魔是什么榕堰? 我笑而不...
    開封第一講書人閱讀 56,415評論 1 283
  • 正文 為了忘掉前任竖慧,我火速辦了婚禮,結(jié)果婚禮上逆屡,老公的妹妹穿的比我還像新娘圾旨。我一直安慰自己,他們只是感情好魏蔗,可當我...
    茶點故事閱讀 65,453評論 6 385
  • 文/花漫 我一把揭開白布砍的。 她就那樣靜靜地躺著,像睡著了一般莺治。 火紅的嫁衣襯著肌膚如雪廓鞠。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,784評論 1 290
  • 那天谣旁,我揣著相機與錄音床佳,去河邊找鬼。 笑死榄审,一個胖子當著我的面吹牛砌们,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 38,927評論 3 406
  • 文/蒼蘭香墨 我猛地睜開眼怨绣,長吁一口氣:“原來是場噩夢啊……” “哼角溃!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起篮撑,我...
    開封第一講書人閱讀 37,691評論 0 266
  • 序言:老撾萬榮一對情侶失蹤减细,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后赢笨,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體未蝌,經(jīng)...
    沈念sama閱讀 44,137評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,472評論 2 326
  • 正文 我和宋清朗相戀三年茧妒,在試婚紗的時候發(fā)現(xiàn)自己被綠了萧吠。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 38,622評論 1 340
  • 序言:一個原本活蹦亂跳的男人離奇死亡桐筏,死狀恐怖纸型,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情梅忌,我是刑警寧澤狰腌,帶...
    沈念sama閱讀 34,289評論 4 329
  • 正文 年R本政府宣布,位于F島的核電站牧氮,受9級特大地震影響琼腔,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜踱葛,卻給世界環(huán)境...
    茶點故事閱讀 39,887評論 3 312
  • 文/蒙蒙 一丹莲、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧尸诽,春花似錦甥材、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,741評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至胶滋,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間悲敷,已是汗流浹背究恤。 一陣腳步聲響...
    開封第一講書人閱讀 31,977評論 1 265
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留后德,地道東北人部宿。 一個月前我還...
    沈念sama閱讀 46,316評論 2 360
  • 正文 我出身青樓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親理张。 傳聞我的和親對象是個殘疾皇子赫蛇,可洞房花燭夜當晚...
    茶點故事閱讀 43,490評論 2 348