python 字符串格式化的示例
一、舊式的字符串格式化
% 操作符
參考以下示例:
>>> name = "Eric" >>> "Hello, %s." % name 'Hello, Eric.'
當(dāng)有多個(gè)變量需要插入到字符串中時(shí):
>>> name = "Eric" >>> age = 74 >>> "Hello, %s. You are %s." % (name, age) 'Hello, Eric. You are 74.'
當(dāng)需要替換的變量進(jìn)一步增多時(shí),使用 % 操作符格式化字符串會(huì)導(dǎo)致代碼可讀性變得很差:
>>> first_name = "Eric" >>> last_name = "Idle" >>> age = 74 >>> profession = "comedian" >>> affiliation = "Monty Python" >>> "Hello, %s %s. You are %s. You are a %s. You were a member of %s." % (first_name, last_name, age, profession, affiliation) 'Hello, Eric Idle. You are 74. You are a comedian. You were a member of Monty Python.'
str.format()
str.format() 是對(duì) % 方式的改進(jìn),它使用常見的函數(shù)調(diào)用的語法,并且可以通過定義對(duì)象本身的 __format__() 方法控制字符串格式化的具體行為。
基本用法:
>>> name = "Eric"
>>> age = 74
>>> "Hello, {}. You are {}.".format(name, age)
'Hello, Eric. You are 74.'
str.format() 相對(duì)于 % 操作符有著更強(qiáng)的靈活性。比如可以通過數(shù)字索引來關(guān)聯(lián)替換到字符串中的變量:
>>> name = "Eric"
>>> age = 74
>>> "Hello, {1}. You are {0}.".format(age, name)
'Hello, Eric. You are 74.'
為了提高代碼可讀性,{} 中也可以使用有具體含義的參數(shù)名:
>>> name = "Eric"
>>> age = 74
>>> "Hello, {name}. You are {age}".format(name=name, age=age)
'Hello, Eric. You are 74'
針對(duì)字典結(jié)構(gòu)的數(shù)據(jù):
>>> person = {'name': 'Eric', 'age': 74}
>>> "Hello, {name}. You are {age}.".format(name=person['name'], age=person['age'])
'Hello, Eric. You are 74.'
或者更簡(jiǎn)潔的方式:
>>> person = {'name': 'Eric', 'age': 74}
>>> "Hello, {name}. You are {age}.".format(**person)
'Hello, Eric. You are 74.'
問題在于當(dāng)需要替換的變量很多時(shí),str.format() 方式依然會(huì)導(dǎo)致代碼變得過于冗長(zhǎng):
>>> first_name = "Eric"
>>> last_name = "Idle"
>>> age = 74
>>> profession = "comedian"
>>> affiliation = "Monty Python"
>>> "Hello, {first_name} {last_name}. You are {age}. \
You are a {profession}. You were a member of {affiliation}."\
.format(first_name=first_name, last_name=last_name, age=age, \
profession=profession, affiliation=affiliation)
'Hello, Eric Idle. You are 74. You are a comedian. You were a member of Monty Python.'
二、f-string
基本用法
>>> name = "Eric"
>>> age = 74
>>> f"Hello, {name}. You are {age}."
'Hello, Eric. You are 74.'
嵌入表達(dá)式
>>> f"{2 * 37}"
'74'
>>> def to_lowercase(input):
... return input.lower()
>>> name = "Eric Idle"
>>> f"{to_lowercase(name)} is funny"
'eric idle is funny'
>>> f"{name.lower()} is funny"
'eric idle is funny'
f-string 中還可以直接嵌入某個(gè)對(duì)象實(shí)例,只要其內(nèi)部實(shí)現(xiàn)了 __str__ 或者 __repr__ 方法:
class Comedian:
def __init__(self, first_name, last_name, age):
self.first_name = first_name
self.last_name = last_name
self.age = age
def __str__(self):
return f"{self.first_name} {self.last_name} is {self.age}"
new_comedian = Comedian("Eric", "Idle", 74)
print(f"{new_comedian}")
# Eric Idle is 74
多行 f-string
>>> name = "Eric"
>>> profession = "comedian"
>>> affiliation = "Monty Python"
>>> message = (
... f"Hi {name}. "
... f"You are a {profession}. "
... f"You were in {affiliation}."
... )
>>> message
'Hi Eric. You are a comedian. You were in Monty Python.'
參考資料
Python 3's f-Strings: An Improved String Formatting Syntax (Guide)
以上就是python 字符串格式化的示例的詳細(xì)內(nèi)容,更多關(guān)于python 字符串格式化的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
Python爬取三國(guó)演義的實(shí)現(xiàn)方法
這篇文章通過實(shí)例給大家演示了利用python如何爬取三國(guó)演義,對(duì)于學(xué)習(xí)python的朋友們來說是個(gè)不錯(cuò)的實(shí)例,有需要的朋友可以參考借鑒,下面來一起看看吧。2016-09-09
Python標(biāo)準(zhǔn)庫pickle的簡(jiǎn)單使用
本文主要介紹了Python標(biāo)準(zhǔn)庫pickle的簡(jiǎn)單使用,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2023-05-05
python使用pika庫調(diào)用rabbitmq交換機(jī)模式詳解
這篇文章主要介紹了python使用pika庫調(diào)用rabbitmq交換機(jī)模式詳解,文章圍繞主題展開詳細(xì)的內(nèi)容介紹,具有一定的參考價(jià)值,感興趣的小伙伴可以參考一下2022-08-08
詳解pycharm連接遠(yuǎn)程linux服務(wù)器的虛擬環(huán)境的方法
這篇文章主要介紹了pycharm連接遠(yuǎn)程linux服務(wù)器的虛擬環(huán)境的詳細(xì)教程,本文通過圖文并茂的形式給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-11-11
Python中調(diào)用和運(yùn)行其他.py文件的多種實(shí)現(xiàn)方法
本文介紹了在Python中調(diào)用和運(yùn)行其他.py文件的四種方法:subprocess模塊、exec函數(shù)、import語句和os.system函數(shù),每種方法都有其適用場(chǎng)景和優(yōu)缺點(diǎn)2025-02-02
簡(jiǎn)單談?wù)凱ython中的反轉(zhuǎn)字符串問題
本文給大家總結(jié)了5種可以實(shí)現(xiàn)python中反轉(zhuǎn)字符串的方法,非常的實(shí)用,有需要的小伙伴可以參考下2016-10-10
python小程序基于Jupyter實(shí)現(xiàn)天氣查詢的方法
這篇文章主要介紹了python小程序基于Jupyter實(shí)現(xiàn)天氣查詢的方法,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-03-03

