Python實(shí)現(xiàn)字符串格式化的五種方法
示例:
name = "Forbearing"
age = 18
print("My name is " + name + ", and I am " + str(age) + " years old.")
print("My name is", name, ", and I am", age, "years old.")
print("My name is %s, and I am %d years old." % (name, age))
print(f"My name is {name}, and I am {age} years old.")
print("My name is {}, and I am {} years old.".format(name, age))
運(yùn)行結(jié)果:

1. + 拼接:必須都是字符串,所以要 str(age)
print("My name is " + name + ", and I am " + str(age) + " years old.")
- +是字符串拼接。
- 規(guī)則很硬:“字符串” + 變量 兩邊必須都是 str。
- age 是 int,不能直接和字符串相加,所以要 str(age) 轉(zhuǎn)成字符串。
- 常見(jiàn)報(bào)錯(cuò)原因:"I am " + age(str 和 int 不能相加)。
2. print 多參數(shù):自動(dòng)轉(zhuǎn)字符串,但默認(rèn)會(huì)加空格
print("My name is", name, ", and I am", age, "years old.")
- 這里不是“拼接”,而是 print() 接收了多個(gè)參數(shù)。
- print 會(huì)把每個(gè)參數(shù)都轉(zhuǎn)成可顯示文本(所以 age 不用 str())。
- 默認(rèn)用空格把參數(shù)隔開(kāi):sep=" ",所以輸出里會(huì)出現(xiàn)一些空格。
- 如果你想控制輸出樣式,可以改 sep 或 end:
print("A", "B", sep="-") # A-B
print("X", end="") # 不換行
print("Y") # 接著輸出
3. % 格式化:舊式占位符寫(xiě)法
print("My name is %s, and I am %d years old." % (name, age))
- 先寫(xiě)一個(gè)“模板字符串”,里面放占位符:
- %s:填入字符串(很多類(lèi)型也能用 %s,會(huì)轉(zhuǎn)成字符串)
- %d:填入整數(shù)
- 右邊用一個(gè)元組 (name, age) 按順序把值塞進(jìn)去。
% 常見(jiàn)的形式
| 格式符號(hào) | 轉(zhuǎn)換 |
|---|---|
| %s | 字符串 |
| %d | 有符號(hào)的十進(jìn)制整數(shù) |
| %f | 浮點(diǎn)數(shù) |
| %c | 字符 |
| %u | 無(wú)符號(hào)十進(jìn)制整數(shù) |
| %o | 八進(jìn)制整數(shù) |
| %x | 十六進(jìn)制整數(shù)(小寫(xiě)ox) |
| %X | 十六進(jìn)制整數(shù)(大寫(xiě)OX) |
| %e | 科學(xué)計(jì)數(shù)法(小寫(xiě)’e’) |
| %E | 科學(xué)計(jì)數(shù)法(大寫(xiě)’E’) |
| %g | %f和%e的簡(jiǎn)寫(xiě) |
| %G | %f和%E的簡(jiǎn)寫(xiě) |
4. f-string:最常用、最推薦
print(f"My name is {name}, and I am {age} years old.")
- 字符串前加 f,然后用 {} 包變量或表達(dá)式。
- {} 里不只能放變量,也能放表達(dá)式/函數(shù)調(diào)用:
print(f"next year: {age + 1}")
print(f"upper: {name.upper()}")
- 也支持格式控制(例如保留兩位小數(shù)、補(bǔ)零、對(duì)齊):
x = 3.14159
print(f"{x:.2f}") # 3.14
print(f"{age:05d}") # 00018
5. format() 格式化
print("My name is {}, and I am {} years old.".format(name, age))
- {} 是占位符,.format(…) 按順序填進(jìn)去。
- 支持命名參數(shù),模板更清晰:
print("My name is {n}, and I am {a} years old.".format(n=name, a=age))
- 也支持格式控制(和 f-string 類(lèi)似):
x = 3.14159
print("{:.2f}".format(x)) # 3.14
總結(jié)
- +:真的在拼字符串,所以 int 必須 str()
- print(a, b, c):不是拼接,是打印多個(gè)參數(shù),默認(rèn)加空格
- % / format / f-string:格式化(模板 + 填值),通常更清晰
- 日常推薦:f-string
到此這篇關(guān)于Python實(shí)現(xiàn)字符串格式化的五種方法的文章就介紹到這了,更多相關(guān)Python字符串格式化內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
利用Python實(shí)現(xiàn)文件讀取與輸入以及數(shù)據(jù)存儲(chǔ)與讀取的常用命令
這篇文章主要給大家介紹了關(guān)于利用Python實(shí)現(xiàn)文件讀取與輸入以及數(shù)據(jù)存儲(chǔ)與讀取的常用命令,文中還介紹了用python循環(huán)保存文件并循環(huán)讀取文件的方法,文中通過(guò)實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下2022-11-11
python tornado上傳文件功能實(shí)現(xiàn)(前端和后端)
Tornado 是一個(gè)功能強(qiáng)大的 Web 框架,除了基本的請(qǐng)求處理能力之外,還提供了一些高級(jí)功能,在 Tornado web 框架中,上傳圖片通常涉及創(chuàng)建一個(gè)表單,讓用戶選擇文件并上傳,本文介紹tornado上傳文件功能,感興趣的朋友一起看看吧2024-03-03
Python實(shí)現(xiàn)的多叉樹(shù)尋找最短路徑算法示例
這篇文章主要介紹了Python實(shí)現(xiàn)的多叉樹(shù)尋找最短路徑算法,結(jié)合實(shí)例形式分析了Python使用深度優(yōu)先查找獲取多叉樹(shù)最短路徑相關(guān)操作技巧,需要的朋友可以參考下2018-07-07
python進(jìn)階教程之循環(huán)對(duì)象
這篇文章主要介紹了python進(jìn)階教程之循環(huán)對(duì)象,循環(huán)對(duì)象是這樣一個(gè)對(duì)象,它包含有一個(gè)next()方法,這個(gè)方法的目的是進(jìn)行到下一個(gè)結(jié)果,需要的朋友可以參考下2014-08-08
django的autoreload機(jī)制實(shí)現(xiàn)
這篇文章主要介紹了django的autoreload機(jī)制實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2020-06-06
基于Python模擬瀏覽器發(fā)送http請(qǐng)求
這篇文章主要介紹了基于Python模擬瀏覽器發(fā)送http請(qǐng)求,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-11-11

