Python字符串格式化實(shí)例講解
在Python 3.6之前,有兩種將Python表達(dá)式嵌入到字符串文本中進(jìn)行格式化的主要方法:%-formatting和str.format()
一、%-formatting
name = "Eric" age = 74 "Hello, %s. You are %s." % (name, age)
注:這種格式不是很好,因?yàn)樗侨唛L(zhǎng)的,會(huì)導(dǎo)致錯(cuò)誤。
二、str.format()
str.format() 在Python 2.6中引入的。
(1)使用str.format(),替換字段用大括號(hào)標(biāo)記:
"Hello, {}. You are {}.".format(name, age)# 輸出結(jié)果:'Hello, Eric. You are 74.'
(2)可以通過引用其索引來以任何順序引用變量:
"Hello, {1}. You are {0}-{0}.".format(age, name)# 輸出結(jié)果:'Hello, Eric. You are 74-74.'
(3)如果插入變量名稱,則會(huì)獲得額外的能夠傳遞對(duì)象的權(quán)限,然后在大括號(hào)之間引用參數(shù)和方法:
person = {'name': 'Eric', 'age': 74}
"Hello, {name}. You are {age}.".format(name=person['name'], age=person['age'])
# 輸出結(jié)果:'Hello, Eric. You are 74.'
(4)可以使用**來用字典來完成這個(gè)巧妙的技巧:
person = {'name': 'Eric', 'age': 74}
"Hello, {name}. You are {age}.".format(**person)
# 輸出結(jié)果:'Hello, Eric. You are 74.'
注:當(dāng)處理多個(gè)參數(shù)和更長(zhǎng)的字符串時(shí),str.format()仍然可能非常冗長(zhǎng)。
三、f-Strings
f-Strings是在Python 3.6開始加入標(biāo)準(zhǔn)庫(kù)。也稱為“格式化字符串文字”,F(xiàn)字符串是開頭有一個(gè)f的字符串文字,以及包含表達(dá)式的大括號(hào)將被其值替換。
(1)f-Strings
name = "Eric"
age = 74
f"Hello, {name}. You are {age}."
# 輸出結(jié)果:'Hello, Eric. You are 74.'
(2)用大寫字母F也是有效的:
name = "Eric"
age = 74
F"Hello, {name}. You are {age}."
# 輸出結(jié)果:'Hello, Eric. You are 74.'
(3)可以調(diào)用函數(shù)
name = "Eric"
age = 74
f"{name.lower()} is funny."
# 輸出結(jié)果:'eric is funny.'
f"{2 * 37}"
# 輸出結(jié)果:'74'
(4)可以使用帶有f字符串的類創(chuàng)建對(duì)象
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}."
def __repr__(self):
return f"{self.first_name} {self.last_name} is {self.age}. Surprise!"
new_comedian = Comedian("Eric", "Idle", "74")
f"{new_comedian}"
# 輸出結(jié)果;'Eric Idle is 74.'
f"{new_comedian!r}"
# 輸出結(jié)果:'Eric Idle is 74. Surprise!'
(5)多行f-string
message = (f"Hi {name}. "
f"You are a {profession}. "
f"You were in {affiliation}.")# 輸出結(jié)果:'Hi Eric. You are a comedian. You were in Monty Python.'
message = (f"Hi {name}. "
"You are a {profession}. "
"You were in {affiliation}.")
# 輸出結(jié)果:'Hi Eric. You are a {profession}. You were in {affiliation}.'
(6)使用"“”
message = f"""
Hi {name}.
You are a {profession}.
You were in {affiliation}.
"""# 輸出結(jié)果:'\n Hi Eric. \n You are a comedian. \n You were in Monty Python.\n '
(7)性能
f字符串中的f也可以代表“速度快”。f-字符串是運(yùn)行時(shí)渲染的表達(dá)式,而不是常量值。
速度比較:
'''
學(xué)習(xí)中遇到問題沒人解答?小編創(chuàng)建了一個(gè)Python學(xué)習(xí)交流群:711312441
尋找有志同道合的小伙伴,互幫互助,群里還有不錯(cuò)的視頻學(xué)習(xí)教程和PDF電子書!
'''
%%timeit
name = "Eric"
age = 74
'%s is %s.' % (name, age)
# 202 ns ± 2.05 ns per loop (mean ± std. dev. of 7 runs, 1000000 loops each)
%%timeit
name = "Eric"
age = 74
'{} is {}.'.format(name, age)
# 244 ns ± 5.52 ns per loop (mean ± std. dev. of 7 runs, 1000000 loops each)
%%timeit
name = "Eric"
age = 74
'{name} is {age}.'
# 14.4 ns ± 0.0121 ns per loop (mean ± std. dev. of 7 runs, 100000000 loops each)(8)語法正確格式
f"{'Eric Idle'}"
# 輸出結(jié)果:'Eric Idle'
f'{"Eric Idle"}'
# 輸出結(jié)果:'Eric Idle'
f"""Eric Idle"""
# 輸出結(jié)果:'Eric Idle'
f'''Eric Idle'''
# 輸出結(jié)果:'Eric Idle'
f"The \"comedian<span class="string">" is {name}, aged {age}."
# 輸出結(jié)果:'The "comedian" is Eric, aged 74.'
(9)字典
字典的鍵使用單引號(hào),請(qǐng)記住確保對(duì)包含鍵的f字符串使用雙引號(hào)。
comedian = {'name': 'Eric Idle', 'age': 74}
f"The comedian is {comedian['name']}, aged {comedian['age']}."
# 輸出結(jié)果:'The comedian is Eric Idle, aged 74.'
(10)大括號(hào)
為了使字符串出現(xiàn)大括號(hào),您必須使用雙大括號(hào):
f"{{74}}"
# 輸出結(jié)果:'{74}'
f"{{{{74}}}}"
# 輸出結(jié)果:'{{74}}'
到此這篇關(guān)于Python字符串格式化實(shí)例講解的文章就介紹到這了,更多相關(guān)Python字符串內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
- Python字符串格式化format()方法運(yùn)用實(shí)例
- 深入了解Python中字符串格式化工具f-strings的使用
- 詳解Python的字符串格式化
- Python中格式化字符串輸出的4種方式小結(jié)
- Python字符串類型及格式化問題
- python使用?f?格式化字符串的用法
- Python?創(chuàng)建格式化字符串方法
- Python格式化字符串f-string的使用教程
- Python格式化輸出字符串的五種方法總結(jié)
- 詳解Python數(shù)據(jù)類型、進(jìn)制轉(zhuǎn)換、字符串格式化的問題
- python字符串格式化函數(shù)
- python實(shí)現(xiàn)三種字符串格式化方法(%、format、f-string)
相關(guān)文章
Python 生成VOC格式的標(biāo)簽實(shí)例
這篇文章主要介紹了Python 生成VOC格式的標(biāo)簽實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2020-03-03
基于Python實(shí)現(xiàn)格斗小游戲的示例代碼
格斗游戲,曾經(jīng)是街機(jī)廳里最火爆的游戲之一,甚至可以把“之一”去掉,那個(gè)年代的格斗游戲就是街機(jī)游戲的王。本文就來用Python實(shí)現(xiàn)一個(gè)簡(jiǎn)單的格斗游戲,感興趣的可以了解一下2023-03-03
使用Python實(shí)現(xiàn)批量發(fā)送個(gè)性化郵件
在現(xiàn)代工作環(huán)境中,我們經(jīng)常需要向多個(gè)收件人發(fā)送個(gè)性化的郵件,因此本文小編為大家整理了Python實(shí)現(xiàn)批量發(fā)送個(gè)性化郵件的示例代碼,希望對(duì)大家有所幫助2023-11-11
使用Python的Matplotlib庫(kù)創(chuàng)建動(dòng)態(tài)圖表的技巧與實(shí)踐分享
在數(shù)據(jù)可視化領(lǐng)域,Matplotlib庫(kù)是Python中最流行和功能強(qiáng)大的工具之一,它能夠生成各種靜態(tài)圖表,如散點(diǎn)圖、折線圖和柱狀圖等,本文將介紹如何使用Matplotlib庫(kù)創(chuàng)建動(dòng)態(tài)圖表,并提供一些技巧和實(shí)踐經(jīng)驗(yàn),需要的朋友可以參考下2024-05-05
python實(shí)現(xiàn)輸入任意一個(gè)大寫字母生成金字塔的示例
這篇文章主要介紹了python實(shí)現(xiàn)輸入任意一個(gè)大寫字母生成金字塔的示例,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2019-10-10
Python機(jī)器學(xué)習(xí)三大件之一numpy
這篇文章主要介紹了Python機(jī)器學(xué)習(xí)三大件之一numpy,文中有非常詳細(xì)的代碼示例,對(duì)正在學(xué)習(xí)python的小伙伴們有很好地幫助喲.需要的朋友可以參考下2021-05-05
用pytorch的nn.Module構(gòu)造簡(jiǎn)單全鏈接層實(shí)例
今天小編就為大家分享一篇用pytorch的nn.Module構(gòu)造簡(jiǎn)單全鏈接層實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2020-01-01

