python3格式化字符串 f-string的高級(jí)用法(推薦)
f-string,亦稱為格式化字符串常量(formatted string literals),是Python3.6新引入的一種字符串格式化方法,該方法源于PEP 498 ? Literal String Interpolation,主要目的是使格式化字符串的操作更加簡(jiǎn)便。
f-string在形式上是以 f 或 F 修飾符引領(lǐng)的字符串(f’xxx’ 或 F’xxx’),以大括號(hào) {} 標(biāo)明被替換的字段;f-string在本質(zhì)上并不是字符串常量,而是一個(gè)在運(yùn)行時(shí)運(yùn)算求值的表達(dá)式:
While other string literals always have a constant value, formatted strings are really expressions evaluated at run time. (與具有恒定值的其它字符串常量不同,格式化字符串實(shí)際上是運(yùn)行時(shí)運(yùn)算求值的表達(dá)式。) —— Python Documentation
f-string在功能方面不遜于傳統(tǒng)的%-formatting語(yǔ)句和str.format()函數(shù),同時(shí)性能又優(yōu)于二者,且使用起來(lái)也更加簡(jiǎn)潔明了,因此對(duì)于Python3.6及以后的版本,推薦使用f-string進(jìn)行字符串格式化。
從Python 3.6開(kāi)始,f-string是格式化字符串的一種很好的新方法。與其他格式化方式相比,它們不僅更易讀,更簡(jiǎn)潔,不易出錯(cuò),而且速度更快!
在Python 3.6之前,有兩種將Python表達(dá)式嵌入到字符串文本中進(jìn)行格式化的主要方法:%-formatting和str.format()。
%-formatting
字符串對(duì)象具有使用%運(yùn)算符的內(nèi)置操作,您可以使用它來(lái)格式化字符串。
name = 'tom'print('貓的名字叫%s'%name)
輸出:
cat name is tom
上面的示例代碼看起來(lái)足夠易讀,但是,一旦開(kāi)始使用多個(gè)參數(shù)和更長(zhǎng)的字符串,代碼就將變得不太容易閱讀。
name = 'tom'age = 2action = '迅速'disposition = '懶'print('貓的名字叫%s,今年%d歲了,抓老鼠非常%s,但是非常%s,白天總睡覺(jué)。'%(name, age, action, disposition))
輸出:
貓的名字叫tom,今天2歲了,抓老鼠非常迅速,但是非常懶,白天總睡覺(jué)。
str.format()
str.format()是對(duì)%-formatting的改進(jìn)。它使用正常的函數(shù)調(diào)用語(yǔ)法,并且可以通過(guò)對(duì)要轉(zhuǎn)換為字符串的對(duì)象的__format __()方法進(jìn)行擴(kuò)展。
使用str.format(),替換字段用大括號(hào)標(biāo)記:
name = 'tom'print('貓的名字叫{}'.format(name))
輸出:
貓的名字叫tom
也可以通過(guò)引用其索引,以任何順序引用變量:
name = 'tom'age = 2print('貓的名字叫{1},今年{0}歲了,今天星期{0}'.format(age, name))
輸出:
貓的名字叫tom,今年2歲了,今天星期2
也可以使用 ** 來(lái)用字典,巧妙的完成格式化:
cat = {'name': 'tom', 'age': 2}print('貓的名字叫{name},今年{age}歲了'.format(**cat))
輸出:
貓的名字叫tom,今年2歲了
使用 str.format() 格式化代碼比使用 %-formatting 更易讀,但當(dāng)處理多個(gè)參數(shù)和更長(zhǎng)的字符串時(shí),str.format()看起來(lái)仍然非常冗長(zhǎng)。
f-Strings:一種改進(jìn)Python格式字符串的新方法
f-Strings語(yǔ)法與str.format()使用的語(yǔ)法類似,但較少細(xì)節(jié)??攏?恍枰?詬袷交?址??凹?或F即可。看看這是多么容易可讀:
name = 'tom'age = 2print(f'貓的名字叫{name},今年{age}歲了')
輸出:
貓的名字叫tom,今年2歲了
格式化時(shí)可以使用函數(shù):
name = 'tom'age = 2print(F'貓的名字叫{name.upper()},今年{age}歲了')
輸出:
貓的名字叫TOM,今年2歲了
格式化時(shí)可以使用字典:
cat = {'name': 'tom', 'age': 2}print(F'貓的名字叫{cat[’name’]},今年{cat[’age’]}歲了')
輸出:
貓的名字叫tom,今年2歲了
格式時(shí)可以對(duì)浮點(diǎn)數(shù)精度做限制:
name = 'tom'age = 2.1274print(F'貓的名字叫{name},今年{age: .2f}歲了')
輸出:
貓的名字叫tom,今年 2.13歲了
總結(jié)
到此這篇關(guān)于python3格式化字符串 f-string的高級(jí)用法(推薦)的文章就介紹到這了,更多相關(guān)python f-string 格式化字符串內(nèi)容請(qǐng)搜索好吧啦網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持好吧啦網(wǎng)!
相關(guān)文章:
1. python多線程和多進(jìn)程關(guān)系詳解2. 詳解瀏覽器的緩存機(jī)制3. Xml簡(jiǎn)介_(kāi)動(dòng)力節(jié)點(diǎn)Java學(xué)院整理4. Python 實(shí)現(xiàn)勞拉游戲的實(shí)例代碼(四連環(huán)、重力四子棋)5. 一款功能強(qiáng)大的markdown編輯器tui.editor使用示例詳解6. JSP之表單提交get和post的區(qū)別詳解及實(shí)例7. Python xlrd/xlwt 創(chuàng)建excel文件及常用操作8. 存儲(chǔ)于xml中需要的HTML轉(zhuǎn)義代碼9. .Net加密神器Eazfuscator.NET?2023.2?最新版使用教程10. ASP動(dòng)態(tài)網(wǎng)頁(yè)制作技術(shù)經(jīng)驗(yàn)分享
