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