Python格式化字符串的四種常見(jiàn)方式
一、引言
在 Python 編程中,格式化字符串是一項(xiàng)常見(jiàn)且重要的任務(wù),它能夠幫助我們將變量、表達(dá)式等內(nèi)容插入到字符串中,使輸出更加清晰和易讀。Python 提供了多種格式化字符串的方式,每種方式都有其特點(diǎn)和適用場(chǎng)景。本文將詳細(xì)介紹 Python 中格式化字符串的 4 種常見(jiàn)方式,并通過(guò)豐富的代碼示例進(jìn)行說(shuō)明。
二、% 格式化
2.1 基本原理
%
格式化是 Python 中最古老的字符串格式化方式,它使用 %
操作符,根據(jù) %
后面的格式化字符來(lái)指定變量的類型,并將變量插入到字符串中。
2.2 代碼示例
# 定義變量 name = "Alice" age = 25 # 使用 % 格式化字符串,%s 表示字符串類型,%d 表示整數(shù)類型 message = "My name is %s and I am %d years old." % (name, age) print(message) # 輸出格式化后的字符串 # 格式化浮點(diǎn)數(shù),%.2f 表示保留兩位小數(shù) height = 1.65 height_message = "My height is %.2f meters." % height print(height_message)
在上述代碼中,%s
用于格式化字符串,%d
用于格式化整數(shù),%.2f
用于格式化浮點(diǎn)數(shù)并保留兩位小數(shù)。通過(guò) %
操作符,將變量插入到對(duì)應(yīng)的位置。
三、str.format() 方法
3.1 基本原理
str.format()
方法是 Python 2.6 引入的一種格式化字符串的方式,它使用花括號(hào) {}
作為占位符,通過(guò) format()
方法中的參數(shù)來(lái)填充占位符。
3.2 代碼示例
# 定義變量 name = "Bob" age = 30 # 使用 str.format() 方法格式化字符串 message = "My name is {} and I am {} years old.".format(name, age) print(message) # 通過(guò)索引指定占位符的填充順序 message_index = "My name is {1} and I am {0} years old.".format(age, name) print(message_index) # 通過(guò)關(guān)鍵字參數(shù)指定占位符的填充 message_keyword = "My name is {name} and I am {age} years old.".format(name=name, age=age) print(message_keyword) # 格式化浮點(diǎn)數(shù),指定保留小數(shù)位數(shù) weight = 70.5 weight_message = "My weight is {:.1f} kilograms.".format(weight) print(weight_message)
在上述代碼中,{}
是默認(rèn)的占位符,也可以通過(guò)索引或關(guān)鍵字參數(shù)來(lái)指定占位符的填充順序和內(nèi)容。同時(shí),還可以使用 :.1f
等格式說(shuō)明符來(lái)格式化浮點(diǎn)數(shù)。
四、f-string(格式化字符串字面值)
4.1 基本原理
f-string 是 Python 3.6 引入的一種新的格式化字符串方式,它在字符串前加上 f
或 F
前綴,在字符串中使用花括號(hào) {}
直接嵌入變量或表達(dá)式。
4.2 代碼示例
# 定義變量 name = "Charlie" age = 35 # 使用 f-string 格式化字符串 message = f"My name is {name} and I am {age} years old." print(message) # 在 f-string 中使用表達(dá)式 birth_year = 2023 - age message_expr = f"I was born in {birth_year}." print(message_expr) # 格式化浮點(diǎn)數(shù) salary = 5000.75 salary_message = f"My monthly salary is {salary:.2f} yuan." print(salary_message)
在上述代碼中,通過(guò)在字符串前加上 f
前綴,在花括號(hào)中直接使用變量或表達(dá)式,Python 會(huì)自動(dòng)將其替換為對(duì)應(yīng)的值。同時(shí),也可以使用格式說(shuō)明符來(lái)格式化變量。
五、模板字符串
5.1 基本原理
模板字符串是 Python 的 string
模塊中的 Template
類提供的一種格式化字符串方式,它使用 $
符號(hào)作為占位符,通過(guò) substitute()
方法來(lái)替換占位符。
5.2 代碼示例
from string import Template # 定義變量 name = "David" age = 40 # 創(chuàng)建模板字符串 template = Template("My name is $name and I am $age years old.") # 使用 substitute() 方法替換占位符 message = template.substitute(name=name, age=age) print(message)
在上述代碼中,首先導(dǎo)入 Template
類,然后創(chuàng)建一個(gè)模板字符串,使用 $
符號(hào)定義占位符。最后,通過(guò) substitute()
方法將變量替換到占位符中。
六、總結(jié)與展望
6.1 總結(jié)
Python 提供了多種格式化字符串的方式,每種方式都有其優(yōu)缺點(diǎn):
%
格式化是最古老的方式,語(yǔ)法簡(jiǎn)單,但不夠靈活。str.format()
方法提供了更多的靈活性,支持索引、關(guān)鍵字參數(shù)等,但代碼相對(duì)冗長(zhǎng)。- f-string 是最簡(jiǎn)潔和直觀的方式,支持直接嵌入變量和表達(dá)式,代碼可讀性高,但要求 Python 版本在 3.6 及以上。
- 模板字符串提供了一種安全的格式化方式,適用于需要從用戶輸入中獲取數(shù)據(jù)進(jìn)行格式化的場(chǎng)景。
6.2 展望
隨著 Python 語(yǔ)言的不斷發(fā)展,f-string 由于其簡(jiǎn)潔性和易用性,可能會(huì)成為未來(lái)格式化字符串的主流方式。同時(shí),模板字符串在處理用戶輸入時(shí)的安全性優(yōu)勢(shì)也會(huì)在特定場(chǎng)景中得到更廣泛的應(yīng)用。開(kāi)發(fā)者可以根據(jù)具體的需求和 Python 版本選擇合適的格式化方式。
以上就是Python格式化字符串的四種常見(jiàn)方式的詳細(xì)內(nèi)容,更多關(guān)于Python格式化字符串的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
python實(shí)現(xiàn)H2O中的隨機(jī)森林算法介紹及其項(xiàng)目實(shí)戰(zhàn)
這篇文章主要介紹了python實(shí)現(xiàn)H2O中的隨機(jī)森林算法介紹及其項(xiàng)目實(shí)戰(zhàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2019-08-08Python函數(shù)any()和all()的用法及區(qū)別介紹
any函數(shù):any(x),只要x中有一個(gè)不為空,0,false就返回True,否則返回False。all(x)函數(shù)必須x中的所有元素均不為空,0,false才會(huì)返回True,否則返回False。接下來(lái)通過(guò)本文給大家介紹Python函數(shù)any()和all()的用法及區(qū)別介紹,需要的朋友參考下吧2018-09-09使用python為mysql實(shí)現(xiàn)restful接口
這篇文章主要介紹了使用python為mysql實(shí)現(xiàn)restful接口的相關(guān)資料,需要的朋友可以參考下2018-01-01python使用numpy計(jì)算兩個(gè)框的iou方法示例
這篇文章主要介紹了python使用numpy計(jì)算兩個(gè)框的iou方法示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-08-08python 遞歸相關(guān)知識(shí)總結(jié)
這篇文章主要介紹了python 遞歸相關(guān)知識(shí)總結(jié),幫助大家更好的理解和學(xué)習(xí)使用python,感興趣的朋友可以了解下2021-03-03Python 如何利用pandas 和 matplotlib繪制柱狀圖
Python 中的 pandas 和 matplotlib 庫(kù)提供了豐富的功能,可以幫助你輕松地繪制各種類型的圖表,本文將介紹如何使用這兩個(gè)庫(kù),繪制一個(gè)店鋪銷售數(shù)量的柱狀圖,并添加各種元素,如數(shù)據(jù)標(biāo)簽、圖例、網(wǎng)格線等,感興趣的朋友一起看看吧2023-10-10matlab輸出數(shù)據(jù)為excel文件的問(wèn)題
這篇文章主要介紹了matlab輸出數(shù)據(jù)為excel文件的問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-08-08