Python 簡(jiǎn)明教程 --- 7独泞,Python 字符串

過(guò)早的優(yōu)化代碼是罪惡之源兆览。
—— Donald Knuth

目錄

無(wú)論哪種編程語(yǔ)言,字符串處理都是最重要的內(nèi)容之一贱迟。當(dāng)然姐扮,Python 也不例外。

1衣吠,Python 字符串

這節(jié)內(nèi)容中茶敏,我們已經(jīng)知道了Python 字符串是用以下引號(hào)引住的一串字符:

  • 單引號(hào)''
  • 雙引號(hào)""
  • 三單引號(hào)'''
  • 三雙引號(hào)"""

Python3 中的字符串類型統(tǒng)一采用Unicode 編碼,因此支持多種語(yǔ)言缚俏。

我們這里介紹的字符串類型惊搏,指的是<class 'str'>

>>> type('中國(guó)')
<class 'str'>
>>> type('abc')
<class 'str'>

2,常用轉(zhuǎn)義字符

在用到某些特殊字符時(shí)忧换,需要用到轉(zhuǎn)義字符----反斜杠\恬惯。

下表是Python 中的一些常用轉(zhuǎn)義字符:

轉(zhuǎn)義字符 含義
\\ 反斜杠
\' 單引號(hào)
\" 雙引號(hào)
\n 換行
\r 回車
\t 橫向制表符

3,字符串長(zhǎng)度

使用len() 函數(shù)可以獲取字符串的長(zhǎng)度

>>> len('Hello') # 一個(gè)英文字符的長(zhǎng)度是 1
5
>>> len('Hi')
2
>>> len('Python')
6
>>> len('中國(guó)')   # 一個(gè)中文字符的長(zhǎng)度是 1
2

4包雀,截取字符串

在Python 中可以用中括號(hào)[]來(lái)截取字符串內(nèi)容宿崭。

獲取單個(gè)字符

通過(guò)下標(biāo)獲取字符串中的單個(gè)字符,語(yǔ)法格式如下:

s[n]

其中s 是一個(gè)字符串變量才写,n 為下標(biāo)葡兑,是一個(gè)整數(shù),其取值范圍為:

-len(s)<=n<=len(s)-1
  • -len(s)<=n<0:從右往左數(shù)赞草,取第n 個(gè)字符
  • 0<=n<=len(s)-1:從左往右數(shù)讹堤,取第n+1 個(gè)字符

圖解:

示例:

>>> s = 'Hello' # 字符換變量 s
>>> len(s)      # s 的長(zhǎng)度
5               # 下標(biāo)n 的范圍為 -5<=n<=4
>>> s[-6]       # 超出取值范圍,報(bào)錯(cuò)
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
IndexError: string index out of range
>>> s[-5]       # 取倒數(shù)第5 個(gè)字符
'H'
>>> s[-1]       # 取倒數(shù)第1 個(gè)字符
'o'
>>> s[0]        # 取第1 個(gè)字符
'H'
>>> s[4]        # 取最后一個(gè)字符
'o'
>>> s[5]        # 超出取值范圍厨疙,報(bào)錯(cuò)
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
IndexError: string index out of range

獲取部分字符

獲取部分字符串的語(yǔ)法格式如下:

s[m:n]

其中s 是一個(gè)字符串變量洲守,mn 可以是任意的整數(shù)。

s[m:n] 代表的含義是:獲取字符串s 下標(biāo)mn 之間的子串,子串的值包含s[m]梗醇,而不包含s[n]知允,即遵循左閉右開(kāi)原則。

圖解:

示例:

>>> s = 'Hello'
>>> s[-5:1] 
'H'
>>> s[-7:2]
'He'
>>> s[-3:2]
''
>>> s[0:3]
'Hel'
>>> s[3:1]
''
>>> s[3:-1]
'l'

m 和 n 都可不寫

  • 如果不寫m叙谨,代表從最左邊開(kāi)始
  • 如果不寫n温鸽,代表到最右邊結(jié)束

示例:

>>> s = 'Hello'
>>> s[:]        # m 和 n 都不寫代表整個(gè)字符串
'Hello'  
>>> s[:3]       # 不寫 m,代表從最左邊開(kāi)始手负,直到下標(biāo) n
'Hel'
>>> s[2:]       # 不寫 n涤垫,代表從下標(biāo) m開(kāi)始,直到最右邊
'llo'

5竟终,字符串連接

加號(hào)+ 運(yùn)算符可以連接兩個(gè)字符串

>>> 'abc' + '123'
'abc123'
>>> 'Hi' + '你好'
'Hi你好'

6蝠猬,重復(fù)字符串

一個(gè)字符串 乘一個(gè)整數(shù)n,相當(dāng)于n 個(gè)字符串相連:

>>> 'a' * 5
'aaaaa'
>>> 'abc' * 3
'abcabcabc'
>>> '你好' * 2
'你好你好'

7统捶,字符串包含

運(yùn)算符in

in 在Python 中是一個(gè)運(yùn)算符榆芦,可用于判斷一個(gè)子串是否包含在一個(gè)字符串中:

>>> 'a' in 'abc'
True
>>> 'ab' in 'abc'
True
>>> 'ad' in 'abc'
False

運(yùn)算符not in

not inin 的反義,用于判斷一個(gè)子串是否不包含在一個(gè)字符串中:

>>> 'a' not in 'abc'
False
>>> 'ab' not in 'abc'
False
>>> 'ad' not in 'abc'
True

8瘾境,字符串格式化

Python 字符串支持多種數(shù)據(jù)類型的格式化歧杏,字符串格式化符號(hào)見(jiàn)下表:

符號(hào) 含義
%c 格式化字符
%s 格式化字符串
%d 格式化整數(shù)
%o 格式化八進(jìn)制數(shù)
%x/%X 格式化十六進(jìn)制數(shù),后者為大寫
%f 格式化浮點(diǎn)數(shù)
%e 用科學(xué)計(jì)數(shù)法格式化浮點(diǎn)數(shù)

示例:

>>> '%c' % 'a'  # 格式化字符
'a'
>>> '%c' % 'B'  # 格式化字符
'B'
>>> '%s' % '中國(guó)' # 格式化字符串
'中國(guó)' 
>>> '%s' % 'abc' # 格式化字符串
'abc'
>>> '%s' % 123   # 數(shù)字類型也可格式化為字符串
'123'
>>> '%d' % 12345 # 格式化數(shù)字
'12345'
>>> '%o' % 8     # 格式化八進(jìn)制數(shù)字
'10'
>>> '%o' % 9     # 格式化八進(jìn)制數(shù)字
'11'
>>> '%x' % 10    # 格式化十六進(jìn)制數(shù)字迷守,小寫
'a'
>>> '%x' % 11    # 格式化十六進(jìn)制數(shù)字犬绒,小寫
'b'
>>> '%X' % 10    # 格式化十六進(jìn)制數(shù)字,大寫
'A' 
>>> '%X' % 11    # 格式化十六進(jìn)制數(shù)字兑凿,大寫
'B'
>>> '%f' % 123.123 # 格式化浮點(diǎn)數(shù)
'123.123000'
>>> '%e' % 123.123 # 科學(xué)計(jì)數(shù)法格式化浮點(diǎn)數(shù)
'1.231230e+02'

寬度與小數(shù)點(diǎn)位數(shù)

每種格式化符號(hào)之前都可以添加m.n

  • mn 都是正整數(shù)
  • m 表示格式化的寬度凯力,對(duì)于浮點(diǎn)數(shù)無(wú)效
  • n 表示小數(shù)點(diǎn)后的位數(shù),只對(duì)浮點(diǎn)數(shù)有效

示例:

>>> '%4s' % 'abc'   # 總寬度為 4
' abc'              # 'abc' 之前有 1 個(gè)空格
>>> '%5s' % 'abc'   # 總寬度為 5
'  abc'             # 'abc' 之前有 2 個(gè)空格
>>> '%5d' % 100     # 總寬度為 5
'  100'             # 100 之前有 2 個(gè)空格
>>> '%.5d' % 100    # 總寬度為 5礼华,注意 5 之前有個(gè)點(diǎn)
'00100'             # 寬度不夠用 0 補(bǔ)齊咐鹤,所以 100 之前有 2 個(gè) 0
>>> '%.2f' % 100.123    # 小數(shù)點(diǎn)后保留 2 位,多余位數(shù)舍棄
'100.12'
>>> '%.5f' % 100.123    # 小數(shù)點(diǎn)后保留 5 位圣絮,位數(shù)不夠祈惶,用 0 補(bǔ)齊
'100.12300'

左對(duì)齊與右對(duì)齊

默認(rèn)情況下,寬度 不夠時(shí)扮匠,會(huì)在左邊加空格捧请,這是右對(duì)齊

>>> '%5s' % 'abc'  # 寬度為 5,不夠用空格補(bǔ)齊棒搜,右對(duì)齊
'  abc'

可在數(shù)字5 之前添加一個(gè)負(fù)號(hào)-疹蛉,寬度 不夠時(shí),會(huì)在右邊加空格力麸,這是左對(duì)齊

>>> '%-5s' % 'abc' # 寬度為 5可款,不夠用空格補(bǔ)齊育韩,左對(duì)齊
'abc  '

(完。)


推薦閱讀:

Python 簡(jiǎn)明教程 --- 2闺鲸,第一個(gè)Python 程序
Python 簡(jiǎn)明教程 --- 3筋讨,Python 基礎(chǔ)概念
Python 簡(jiǎn)明教程 --- 4,Python 變量與基本數(shù)據(jù)類型
Python 簡(jiǎn)明教程 --- 5摸恍,Python 表達(dá)式與運(yùn)算符
Python 簡(jiǎn)明教程 --- 6版仔,Python 控制流

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市误墓,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌益缎,老刑警劉巖谜慌,帶你破解...
    沈念sama閱讀 206,839評(píng)論 6 482
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異莺奔,居然都是意外死亡欣范,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,543評(píng)論 2 382
  • 文/潘曉璐 我一進(jìn)店門令哟,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)恼琼,“玉大人,你說(shuō)我怎么就攤上這事屏富∏缇海” “怎么了?”我有些...
    開(kāi)封第一講書人閱讀 153,116評(píng)論 0 344
  • 文/不壞的土叔 我叫張陵狠半,是天一觀的道長(zhǎng)噩死。 經(jīng)常有香客問(wèn)我,道長(zhǎng)神年,這世上最難降的妖魔是什么已维? 我笑而不...
    開(kāi)封第一講書人閱讀 55,371評(píng)論 1 279
  • 正文 為了忘掉前任,我火速辦了婚禮已日,結(jié)果婚禮上垛耳,老公的妹妹穿的比我還像新娘。我一直安慰自己飘千,他們只是感情好堂鲜,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,384評(píng)論 5 374
  • 文/花漫 我一把揭開(kāi)白布。 她就那樣靜靜地躺著占婉,像睡著了一般泡嘴。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上逆济,一...
    開(kāi)封第一講書人閱讀 49,111評(píng)論 1 285
  • 那天酌予,我揣著相機(jī)與錄音磺箕,去河邊找鬼。 笑死抛虫,一個(gè)胖子當(dāng)著我的面吹牛松靡,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播建椰,決...
    沈念sama閱讀 38,416評(píng)論 3 400
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼雕欺,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了棉姐?” 一聲冷哼從身側(cè)響起屠列,我...
    開(kāi)封第一講書人閱讀 37,053評(píng)論 0 259
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎伞矩,沒(méi)想到半個(gè)月后笛洛,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 43,558評(píng)論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡乃坤,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,007評(píng)論 2 325
  • 正文 我和宋清朗相戀三年苛让,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片湿诊。...
    茶點(diǎn)故事閱讀 38,117評(píng)論 1 334
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡狱杰,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出厅须,到底是詐尸還是另有隱情仿畸,我是刑警寧澤,帶...
    沈念sama閱讀 33,756評(píng)論 4 324
  • 正文 年R本政府宣布朗和,位于F島的核電站颁湖,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏例隆。R本人自食惡果不足惜甥捺,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,324評(píng)論 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望镀层。 院中可真熱鬧镰禾,春花似錦、人聲如沸唱逢。這莊子的主人今日做“春日...
    開(kāi)封第一講書人閱讀 30,315評(píng)論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)坞古。三九已至备韧,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間痪枫,已是汗流浹背织堂。 一陣腳步聲響...
    開(kāi)封第一講書人閱讀 31,539評(píng)論 1 262
  • 我被黑心中介騙來(lái)泰國(guó)打工叠艳, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人易阳。 一個(gè)月前我還...
    沈念sama閱讀 45,578評(píng)論 2 355
  • 正文 我出身青樓附较,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親潦俺。 傳聞我的和親對(duì)象是個(gè)殘疾皇子拒课,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,877評(píng)論 2 345

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

  • 久違的晴天,家長(zhǎng)會(huì)事示。 家長(zhǎng)大會(huì)開(kāi)好到教室時(shí)早像,離放學(xué)已經(jīng)沒(méi)多少時(shí)間了。班主任說(shuō)已經(jīng)安排了三個(gè)家長(zhǎng)分享經(jīng)驗(yàn)肖爵。 放學(xué)鈴聲...
    飄雪兒5閱讀 7,495評(píng)論 16 22
  • 今天感恩節(jié)哎扎酷,感謝一直在我身邊的親朋好友。感恩相遇遏匆!感恩不離不棄。 中午開(kāi)了第一次的黨會(huì)谁榜,身份的轉(zhuǎn)變要...
    迷月閃星情閱讀 10,551評(píng)論 0 11
  • 可愛(ài)進(jìn)取幅聘,孤獨(dú)成精。努力飛翔窃植,天堂翱翔帝蒿。戰(zhàn)爭(zhēng)美好,孤獨(dú)進(jìn)取巷怜。膽大飛翔葛超,成就輝煌。努力進(jìn)取延塑,遙望绣张,和諧家園」卮可愛(ài)游走...
    趙原野閱讀 2,716評(píng)論 1 1
  • 在妖界我有個(gè)名頭叫胡百曉侥涵,無(wú)論是何事,只要找到胡百曉即可有解決的辦法宋雏。因?yàn)槭侵缓偞蠹乙杂瀭饔灲形摇皟A城百曉”芜飘,...
    貓九0110閱讀 3,255評(píng)論 7 3