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. % 格式化:舊式占位符寫法
print("My name is %s, and I am %d years old." % (name, age))
- 先寫一個(gè)“模板字符串”,里面放占位符:
- %s:填入字符串(很多類型也能用 %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ù)(小寫ox) |
| %X | 十六進(jìn)制整數(shù)(大寫OX) |
| %e | 科學(xué)計(jì)數(shù)法(小寫’e’) |
| %E | 科學(xué)計(jì)數(shù)法(大寫’E’) |
| %g | %f和%e的簡(jiǎn)寫 |
| %G | %f和%E的簡(jiǎn)寫 |
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 類似):
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使用DuckDB秒級(jí)處理超大Excel文件的終極指南
你是否經(jīng)歷過(guò)這樣的絕望:雙擊打開(kāi)一個(gè) 500MB 的 Excel 文件,看著鼠標(biāo)光標(biāo)變成旋轉(zhuǎn)的圓圈,內(nèi)存占用飆升,最后屏幕變白顯示未響應(yīng),本文將手把手教你如何利用 DuckDB 輕松讀取、查詢和分析超大 Excel 文件,需要的朋友可以參考下2026-02-02
Python閉包原理與nonlocal關(guān)鍵字實(shí)戰(zhàn)指南
閉包是Python中一個(gè)強(qiáng)大而優(yōu)雅的特性,掌握它能讓你寫出更靈活、更模塊化的代碼,本文將深入解析閉包的原理,并通過(guò)實(shí)戰(zhàn)案例帶你徹底理解nonlocal關(guān)鍵字,感興趣的朋友跟隨小編一起看看吧2026-03-03
python實(shí)現(xiàn)登錄密碼重置簡(jiǎn)易操作代碼
這篇文章主要介紹了python實(shí)現(xiàn)登錄密碼重置簡(jiǎn)易操作,代碼簡(jiǎn)單易懂,非常不錯(cuò),具有一定的參考借鑒價(jià)值 ,需要的朋友可以參考下2019-08-08
使用django和vue進(jìn)行數(shù)據(jù)交互的方法步驟
這篇文章主要介紹了使用django和vue進(jìn)行數(shù)據(jù)交互的方法步驟,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2019-11-11
Python+pandas數(shù)據(jù)分析實(shí)踐總結(jié)
這篇文章主要介紹了Python+pandas數(shù)據(jù)分析實(shí)踐總結(jié)的相關(guān)資料,需要的朋友可以參考下2023-07-07
python通過(guò)移動(dòng)端訪問(wèn)查看電腦界面
這篇文章主要介紹了python通過(guò)移動(dòng)端訪問(wèn)查看電腦界面,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-01-01
Python數(shù)據(jù)可視化常用4大繪圖庫(kù)原理詳解
這篇文章主要介紹了Python數(shù)據(jù)可視化常用4大繪圖庫(kù)原理詳解,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-10-10
pycharm運(yùn)行程序時(shí)出現(xiàn)Run‘python tests for XXX.py‘問(wèn)題及
這篇文章主要介紹了pycharm運(yùn)行程序時(shí)出現(xiàn)Run ‘python tests for XXX.py‘問(wèn)題及解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-08-08
淺談Python3.10 和 Python3.9 之間的差異
多年來(lái),Python 進(jìn)行了大量升級(jí),并且在新版本中添加了許多功能。本文就詳細(xì)的介紹 一下Python3.10 和 Python3.9差異,感興趣的朋友可以了解一下2021-09-09

