《瘋狂python講義》-第二章 變量和簡單類型-2.5 深入使用字符串

2.5.1 轉(zhuǎn)義字符

price = 108
print("The book's price is %s" % price) 

運(yùn)行結(jié)果:

The book's price is 108

上面第二行代碼中爆哑,print函數(shù)包括三個(gè)部分逆趋,第一部分是格式化字符串(它相當(dāng)于字符串模版)医窿,該格式化字符串中包含一個(gè)“%s”占位符,它會(huì)被第三部分的變量或表達(dá)式的值代替酸钦;第二部分固定使用“%”作為分隔符拆内。格式轉(zhuǎn)化符中的“%s”被稱為轉(zhuǎn)換說明符顽爹。

python支持的轉(zhuǎn)義字符

轉(zhuǎn)義字符 說明
\b 退格符
\n 換行符
\r 回車符
\t 制表符
\'' 雙引號(hào)
\' 單引號(hào)
\\ 反斜線

2.5.2 字符串格式化

python 提供了"%"對(duì)各種類型的數(shù)據(jù)進(jìn)行格式化輸出
轉(zhuǎn)換說明符

轉(zhuǎn)換說明符 說明
d,i 轉(zhuǎn)換為帶符號(hào)的十進(jìn)制形式的整數(shù)
o 轉(zhuǎn)換為帶符號(hào)的八進(jìn)制形式的整數(shù)
x或X 轉(zhuǎn)換為帶符號(hào)的十六進(jìn)制形式的整數(shù)
e或E 轉(zhuǎn)換為科學(xué)計(jì)數(shù)法表示的浮點(diǎn)數(shù)
f,F 轉(zhuǎn)換為十進(jìn)制形式的浮點(diǎn)數(shù)
g 智能選擇使用f或e格式
G 智能選擇使用F或E格式
C 轉(zhuǎn)換為單子符(只接受整數(shù)或單字符字符串)
r 使用repr()將變量或表達(dá)式轉(zhuǎn)換為字符串
s 使用str()將變量或表達(dá)式轉(zhuǎn)換為字符串

當(dāng)使用上面的轉(zhuǎn)換說明符時(shí)到逊,可指定轉(zhuǎn)換后的最小寬度。

num = -28
print("num is: %6i" % num)
print("num is: %6d" % num)
print("num is: %6o" % num)
print("num is: %6x" % num)
print("num is: %6X" % num)
print("num is: %6s" % num)

運(yùn)行結(jié)果

num is:    -28
num is:    -28
num is:    -34
num is:    -1c
num is:    -1C
num is:    -28

?從上面的輸出結(jié)果可以看出黔寇,此時(shí)指定了字符串的最小寬度為6偶器,因此程序轉(zhuǎn)換數(shù)值時(shí)總寬度為6,程序會(huì)自動(dòng)在數(shù)值前補(bǔ)充了三個(gè)空格缝裤。

?python允許在最小寬度之前添加一個(gè)標(biāo)志來改變這種行為屏轰,如下(這三個(gè)標(biāo)志可以同時(shí)存在):

  • -:指定左對(duì)齊
  • +:表示數(shù)值總要帶著符號(hào)(正數(shù)帶“+”,負(fù)數(shù)帶“-”)
  • 0:表示不補(bǔ)充空格憋飞,而是補(bǔ)充0

?python 允許指定小數(shù)點(diǎn)后的數(shù)字位數(shù)霎苗;如果轉(zhuǎn)換的是字符串,python允許指定轉(zhuǎn)換后的字符串的最大字符數(shù)榛做。這個(gè)標(biāo)志被稱為精度值唁盏,被放在最小寬度之后,中間用點(diǎn)(.)隔開检眯。

my_value = 3.001415926535
# 最小寬度為8厘擂,小數(shù)點(diǎn)后保留3位
print("my_value is: %8.3f" % my_value)
# 最小寬度為8,小數(shù)點(diǎn)后保留3位,左邊補(bǔ)0
print("my_value is: %08.3f" % my_value)
# 最小寬度為8锰瘸,小數(shù)點(diǎn)后保留3位驴党,左邊補(bǔ)0,始終帶符號(hào)
print("my_value is: %+08.3f" % my_value)

the_name = "Charlie"
# 只保留3個(gè)字符
print("the name is: %.3s" % the_name)
# 只保留2個(gè)字符,最小寬度為10
print("the name is: %10.2s" % the_name)

運(yùn)行結(jié)果:

1 my_value is:    3.001
2 my_value is: 0003.001
3 my_value is: +003.001
4 the name is: Cha
5 the name is:         Ch

2.5.3 序列相關(guān)方法

字符串本質(zhì)上就是由多個(gè)字符組成的获茬, 程序允許通過索引來操作字符

Python字符串直接在方括號(hào)[]中使用索引即可獲得對(duì)應(yīng)的字符:

  • 第一個(gè)索引是0,第二個(gè)索引是1,如s[0],s[1]倔既。
  • 倒數(shù)第一個(gè)索引是-1恕曲,倒數(shù)第二個(gè)索引是-2, 如s[-1],s[-2].

通過方括號(hào)中使用范圍來獲取字符串的中間一段

  • s[3:5] ---索引3到索引5(不包含)的子串
  • s[3:-5] ---索引3到倒數(shù)第5個(gè)字符的字串
  • s[-6,-3] ---從倒數(shù)第6字符到倒數(shù)第3個(gè)字符的字串。

允許省略起始索引或結(jié)束索引:

  • s[5:] ---從索引5到結(jié)束
  • s[-6:]---從倒數(shù)第6到結(jié)束
  • s[:5]---從開始到索引5
  • s[:-6]---從開始到倒數(shù)第6

in 運(yùn)算符判斷是否包含某個(gè)字串 print('very' in s)
len()函數(shù)獲取字符串長度 print(len(s))
min()渤涌、max()函數(shù)獲取字符串中的最小最大字符 print(max(s)),print(min(s))

2.5.4 大小寫相關(guān)方法

dir():列出指定類或模版包含的全部內(nèi)容佩谣, 如dir(str)

help():查看某個(gè)函數(shù)或方法的幫助文檔

在str類中與大小寫相關(guān)的常用方法如下:

title():將每個(gè)單詞的首字母改為大寫

lower():將整個(gè)字符串改為小寫

upper(): 將整個(gè)字符串改為大寫

a = 'our domain is crazyit.org'
# 每個(gè)單詞首字母大寫
print(a.title())
# 每個(gè)字母小寫
print(a.lower())
# 每個(gè)字母大寫
print(a.upper())

運(yùn)行結(jié)果:

Our Domain Is Crazyit.Org
our domain is crazyit.org
OUR DOMAIN IS CRAZYIT.ORG

2.5.5 刪除空白

strip():刪除字符串前后的空白

lstrip():刪除字符串前面(左邊)的空白

rstrip():刪除字符串后面(右邊)的空白

2.5.6 查找、替換相關(guān)方法

startswith():判斷字符串是否以指定字串開頭

endswith():判斷字符串是否以指定字串結(jié)尾

find():查找指定字串在字符串中出現(xiàn)的位置实蓬,如果沒有找到茸俭,則返回-1

index():查找指定字串在字符串中出現(xiàn)的位置吊履,如果沒有找到,則引發(fā)ValueError錯(cuò)誤

replace():使用指定字符串替換字符串中的目標(biāo)字串

translate():使用指定的翻譯映射表對(duì)字符串執(zhí)行替換

2.5.7 分隔调鬓、連接方法

split():將字符串按指定分隔符分隔成多個(gè)短語

join(): 將多個(gè)短語連接成字符串

s = 'crazyit.org is a good site'
# 使用空白對(duì)字符串進(jìn)行分割
print(s.split())  # 結(jié)果:['crazyit.org', 'is', 'a', 'good', 'site']
# 使用空白對(duì)字符串進(jìn)行分割,最多只分割前兩個(gè)單詞
print(s.split(None, 2))  # 結(jié)果:['crazyit.org', 'is', 'a good site']
# 使用點(diǎn)進(jìn)行分割
print(s.split('.'))  # 結(jié)果:['crazyit', 'org is a good site']
my_list = s.split()
# 使用'/'作為分隔符艇炎,將my_list連接成字符串
print('/'.join(my_list))  # 結(jié)果:crazyit.org/is/a/good/site
# 使用'.'作為分隔符,將my_list連接成字符串
print('.'.join(my_list))  # 結(jié)果:crazyit.org.is.a.good.site
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末腾窝,一起剝皮案震驚了整個(gè)濱河市缀踪,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌虹脯,老刑警劉巖驴娃,帶你破解...
    沈念sama閱讀 219,539評(píng)論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異循集,居然都是意外死亡唇敞,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,594評(píng)論 3 396
  • 文/潘曉璐 我一進(jìn)店門咒彤,熙熙樓的掌柜王于貴愁眉苦臉地迎上來疆柔,“玉大人,你說我怎么就攤上這事蔼紧∑庞玻” “怎么了?”我有些...
    開封第一講書人閱讀 165,871評(píng)論 0 356
  • 文/不壞的土叔 我叫張陵奸例,是天一觀的道長彬犯。 經(jīng)常有香客問我,道長查吊,這世上最難降的妖魔是什么谐区? 我笑而不...
    開封第一講書人閱讀 58,963評(píng)論 1 295
  • 正文 為了忘掉前任,我火速辦了婚禮逻卖,結(jié)果婚禮上宋列,老公的妹妹穿的比我還像新娘。我一直安慰自己评也,他們只是感情好炼杖,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,984評(píng)論 6 393
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著盗迟,像睡著了一般坤邪。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上罚缕,一...
    開封第一講書人閱讀 51,763評(píng)論 1 307
  • 那天艇纺,我揣著相機(jī)與錄音,去河邊找鬼。 笑死黔衡,一個(gè)胖子當(dāng)著我的面吹牛蚓聘,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播盟劫,決...
    沈念sama閱讀 40,468評(píng)論 3 420
  • 文/蒼蘭香墨 我猛地睜開眼夜牡,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了捞高?” 一聲冷哼從身側(cè)響起氯材,我...
    開封第一講書人閱讀 39,357評(píng)論 0 276
  • 序言:老撾萬榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎硝岗,沒想到半個(gè)月后氢哮,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,850評(píng)論 1 317
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡型檀,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,002評(píng)論 3 338
  • 正文 我和宋清朗相戀三年冗尤,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片胀溺。...
    茶點(diǎn)故事閱讀 40,144評(píng)論 1 351
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡裂七,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出仓坞,到底是詐尸還是另有隱情背零,我是刑警寧澤,帶...
    沈念sama閱讀 35,823評(píng)論 5 346
  • 正文 年R本政府宣布无埃,位于F島的核電站徙瓶,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏嫉称。R本人自食惡果不足惜侦镇,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,483評(píng)論 3 331
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望织阅。 院中可真熱鬧壳繁,春花似錦、人聲如沸荔棉。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,026評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽润樱。三九已至渣触,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間祥国,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,150評(píng)論 1 272
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留舌稀,地道東北人啊犬。 一個(gè)月前我還...
    沈念sama閱讀 48,415評(píng)論 3 373
  • 正文 我出身青樓,卻偏偏與公主長得像壁查,于是被迫代替她去往敵國和親觉至。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,092評(píng)論 2 355

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