Python中常見(jiàn)的三種字符串格式化輸出方法小結(jié)
字符串格式化是編程中一個(gè)常見(jiàn)的需求,它可以們將不同類(lèi)型的數(shù)據(jù)(如數(shù)字、文本、日期等)插入到字符串中,以創(chuàng)建格式良好的輸出。在 Python 中,有多種方法可以執(zhí)行字符串格式化,包括 % 操作符格式化、str.format() 方法格式化以及更現(xiàn)代的 f-字符串格式化。本文將介紹這些方法,詳細(xì)討論它們的用法,并提供豐富的示例代碼。
% 操作符格式化
% 操作符格式化是 Python 中最早引入的字符串格式化方法之一。它的基本語(yǔ)法是將 % 操作符用于字符串,后跟一個(gè)元組或字典,用于指定要插入的值。具體來(lái)說(shuō),格式化字符串中的 % 占位符將被元組或字典中的值替換。
1. 基本示例
name = "Alice" age = 30 # 使用 % 操作符格式化字符串 formatted_str = "My name is %s and I am %d years old." % (name, age) print(formatted_str)
輸出:
My name is Alice and I am 30 years old.
在上述示例中,%s 和 %d 是占位符,分別表示字符串和整數(shù)的占位符。% 后的括號(hào)中包含了要插入到字符串中的值,按順序與占位符匹配。
2. 占位符類(lèi)型
舊式的 % 操作符格式化支持多種占位符類(lèi)型,常見(jiàn)的包括:
%s:字符串
%d:有符號(hào)十進(jìn)制整數(shù)
%f:浮點(diǎn)數(shù)
%x:十六進(jìn)制整數(shù)
%o:八進(jìn)制整數(shù)
%c:字符
3. 格式化選項(xiàng)
可以通過(guò)在占位符后添加格式化選項(xiàng)來(lái)控制輸出的格式。例如,可以指定浮點(diǎn)數(shù)的小數(shù)位數(shù)、寬度等。
pi = 3.141592653589793 # 控制浮點(diǎn)數(shù)的小數(shù)位數(shù)和寬度 formatted_pi = "Pi is approximately %.2f" % pi print(formatted_pi)
輸出:
Pi is approximately 3.14
4. 字典格式化
除了元組外,還可以使用字典進(jìn)行格式化,其中占位符的名稱(chēng)與字典中的鍵匹配。
person = {"name": "Bob", "age": 25}
# 使用字典進(jìn)行格式化
formatted_str = "My name is %(name)s and I am %(age)d years old." % person
print(formatted_str)
輸出:
My name is Bob and I am 25 years old.
str.format() 方法格式化
Python 2.7 引入了 str.format() 方法,它提供了更靈活和強(qiáng)大的字符串格式化功能。使用該方法,可以通過(guò)在字符串中使用 {} 占位符,并在 format() 方法中傳遞相應(yīng)的值來(lái)格式化字符串。
1. 基本示例
name = "Alice"
age = 30
# 使用 str.format() 方法格式化字符串
formatted_str = "My name is {} and I am {} years old.".format(name, age)
print(formatted_str)
輸出:
My name is Alice and I am 30 years old.
{} 占位符用于指定插入值的位置,通過(guò)調(diào)用 format() 方法并傳遞相應(yīng)的值來(lái)填充這些占位符。
2. 位置參數(shù)
可以在 {} 占位符中使用位置參數(shù)來(lái)明確指定要插入的值的位置。位置參數(shù)是 {} 中的索引,從 0 開(kāi)始。
formatted_str = "My name is {0} and I am {1} years old.".format(name, age)
3. 關(guān)鍵字參數(shù)
也可以使用關(guān)鍵字參數(shù)來(lái)指定要插入的值,這樣可以更清晰地指定占位符的含義。
formatted_str = "My name is {name} and I am {age} years old.".format(name=name, age=age)
4. 占位符類(lèi)型和格式化選項(xiàng)
str.format() 方法支持多種占位符類(lèi)型,并且可以使用格式化選項(xiàng)來(lái)控制輸出的格式。
pi = 3.141592653589793
# 控制浮點(diǎn)數(shù)的小數(shù)位數(shù)和寬度
formatted_pi = "Pi is approximately {:.2f}".format(pi)
print(formatted_pi)
輸出:
Pi is approximately 3.14
5. 字典格式化
與舊式的 % 操作符格式化一樣,str.format() 方法也支持使用字典進(jìn)行格式化。
person = {"name": "Bob", "age": 25}
# 使用字典進(jìn)行格式化
formatted_str = "My name is {name} and I am {age} years old.".format(**person)
6. 高級(jí)功能
str.format() 方法還支持一些高級(jí)功能,如格式化表達(dá)式、選擇格式化方式等。
value = 42
# 格式化表達(dá)式
formatted_str = "The answer is {:04X}".format(value)
print(formatted_str)
輸出:
The answer is 002A
f-字符串格式化
Python 3.6 引入了 f-字符串(f-strings),它是一種在字符串中嵌入表達(dá)式的格式化方式,非常簡(jiǎn)潔和直觀。使用 f-字符串,可以在字符串前添加 f 或 F,然后在字符串中使用 {} 占位符來(lái)插入表達(dá)式的值。
1. 基本示例
name = "Alice"
age = 30
# 使用 f-字符串格式化字符串
formatted_str = f"My name is {name} and I am {age} years old."
print(formatted_str)
輸出:
My name is Alice and I am 30 years old.
f-字符串直接嵌入了變量和表達(dá)式,使代碼更加清晰和易讀。
2. 表達(dá)式計(jì)算
f-字符串支持在 {} 中嵌入任何有效的 Python 表達(dá)式,這使得進(jìn)行一些計(jì)算和操作非常方便。
x = 5
y = 3
# 使用 f-字符串計(jì)算表達(dá)式
result = f"{x} + {y} = {x + y}"
print(result)
輸出:
5 + 3 = 8
3. 格式化選項(xiàng)
與 str.format() 方法一樣,f-字符串也支持格式化選項(xiàng),用于控制輸出的格式。
pi = 3.141592653589793
# 控制浮點(diǎn)數(shù)的小數(shù)位數(shù)和寬度
formatted_pi = f"Pi is approximately {pi:.2f}"
print(formatted_pi)
輸出:
Pi is approximately 3.14
總結(jié)
本文介紹了 Python 中字符串格式化的三種常見(jiàn)方法:舊式的 % 操作符格式化、str.format() 方法格式化以及 f-字符串格式化。每種方法都具有其優(yōu)勢(shì)和適用場(chǎng)景,可以根據(jù)需求選擇合適的方法。選擇合適的字符串格式化方法可以使代碼更易讀、更具可維護(hù)性,并提高開(kāi)發(fā)效率。根據(jù)項(xiàng)目需求和個(gè)人偏好,選擇適當(dāng)?shù)姆椒▉?lái)滿(mǎn)足格式化需求。
以上就是Python中常見(jiàn)的三種字符串格式化輸出方法小結(jié)的詳細(xì)內(nèi)容,更多關(guān)于Python字符串格式化輸出的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
淺談python實(shí)現(xiàn)Google翻譯PDF,解決換行的問(wèn)題
今天小編就為大家分享一篇淺談python實(shí)現(xiàn)Google翻譯PDF,解決換行的問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2018-11-11
Python實(shí)現(xiàn)員工信息管理系統(tǒng)
這篇文章主要為大家詳細(xì)介紹了Python實(shí)現(xiàn)員工信息管理系統(tǒng),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2022-06-06
Python中__new__()方法適應(yīng)及注意事項(xiàng)詳解
這篇文章主要介紹了Python中__new__()方法適應(yīng)及注意事項(xiàng)的相關(guān)資料,new()方法是Python中的一個(gè)特殊構(gòu)造方法,用于在創(chuàng)建對(duì)象之前調(diào)用,并負(fù)責(zé)返回類(lèi)的新實(shí)例,它與init()方法不同,需要的朋友可以參考下2025-03-03
手把手教你打造個(gè)性化全棧應(yīng)用Python?Reflex框架全面攻略
Reflex框架是為了解決傳統(tǒng)全棧開(kāi)發(fā)中的一些挑戰(zhàn)而誕生的,它充分利用了現(xiàn)代前端框架(如React)的優(yōu)勢(shì),與后端技術(shù)(如Node.js)深度集成,使得開(kāi)發(fā)者能夠更加流暢地構(gòu)建整個(gè)應(yīng)用,Reflex的設(shè)計(jì)理念包括簡(jiǎn)化、響應(yīng)性和一致性,旨在提高全棧開(kāi)發(fā)的效率和可維護(hù)性2023-12-12
使用Pytorch導(dǎo)出自定義ONNX算子的示例代碼
這篇文章主要介紹了使用Pytorch導(dǎo)出自定義ONNX算子的示例代碼,下面給出個(gè)具體應(yīng)用中的示例:需要導(dǎo)出pytorch的affine_grid算子,但在pytorch的2.0.1版本中又無(wú)法正常導(dǎo)出該算子,故可通過(guò)如下自定義算子代碼導(dǎo)出,需要的朋友可以參考下2024-03-03

