Python 的 f-strings 作用遠(yuǎn)超你的預(yù)期
學(xué)過(guò) Python 的朋友應(yīng)該都知道 f-strings 是用來(lái)非常方便的格式化輸出的,覺得它的使用方法無(wú)外乎就是 print(f'value = { value }',其實(shí),f-strings 遠(yuǎn)超你的預(yù)期,今天來(lái)梳理一下它還能做那些很酷的事情。
1、懶得再敲一遍變量名
str_value?=?"hello,python?coders"??
print(f"{?str_value?=?}")??
#?str_value?=?'hello,python?coders'??
2、直接改變輸出結(jié)果
num_value?=?123??
print(f"{num_value?%?2?=?}")??
#?num_value?%?2?=?1??
3、直接格式化日期
import?datetime??
??
today?=?datetime.date.today()??
print(f"{today:?%Y%m%d}")??
#?20211019??
print(f"{today?=:?%Y%m%d}")??
#?today?=?20211019??
4、2/8/16 進(jìn)制輸出真的太簡(jiǎn)單
>>>?a?=?42??
>>>?f"{a:b}"?#?2進(jìn)制??
'101010'??
>>>?f"{a:o}"?#?8進(jìn)制??
'52'??
>>>?f"{a:x}"?#?16進(jìn)制,小寫字母??
'2a'??
>>>?f"{a:X}"?#?16進(jìn)制,大寫字母??
'2A'??
>>>?f"{a:c}"?#?ascii?碼??
'*'??
5、格式化浮點(diǎn)數(shù)
>>>?num_value?=?123.456??
>>>?f'{num_value?=?:.2f}'?#保留?2?位小數(shù)??
'num_value?=?123.46'??
>>>?nested_format?=?".2f"?#可以作為變量??
>>>?print(f'{num_value:{nested_format}}')??
123.46??
6、字符串對(duì)齊,so easy!
>>>?x?=?'test'??
>>>?f'{x:>10}'???#?右對(duì)齊,左邊補(bǔ)空格??
'??????test'??
>>>?f'{x:*<10}'??#?左對(duì)齊,右邊補(bǔ)*??
'test******'??
>>>?f'{x:=^10}'??#?居中,左右補(bǔ)=??
'===test==='??
>>>?x,?n?=?'test',?10??
>>>?f'{x:~^{n}}'?#?可以傳入變量?n??
'~~~test~~~'??
>>>??
??
7、使用 !s,!r
>>>?x?=?'中'??
>>>?f"{x!s}"?#?相當(dāng)于?str(x)??
'中'??
>>>?f"{x!r}"?#?相當(dāng)于?repr(x)??
"'中'"??
8、自定義格式
class?MyClass:??
????def?__format__(self,?format_spec)?->?str:??
????????print(f'MyClass?__format__?called?with?{format_spec=!r}')??
????????return?"MyClass()"??
??
??
print(f'{MyClass():bala?bala??%%MYFORMAT%%}')??
輸出如下:
MyClass?__format__?called?with?format_spec='bala?bala??%%MYFORMAT%%'??
MyClass()??
最后
Python 的 f-string 非常靈活優(yōu)雅,同時(shí)還是效率最高的字符串拼接方式:

以后關(guān)于字符串的格式化,就 f-string 了。如果覺得有收獲,還請(qǐng)點(diǎn)贊、在看、關(guān)注,感謝支持!
推薦閱讀:
入門:?最全的零基礎(chǔ)學(xué)Python的問(wèn)題? |?零基礎(chǔ)學(xué)了8個(gè)月的Python??|?實(shí)戰(zhàn)項(xiàng)目?|學(xué)Python就是這條捷徑
干貨:爬取豆瓣短評(píng),電影《后來(lái)的我們》?|?38年NBA最佳球員分析?|? ?從萬(wàn)眾期待到口碑撲街!唐探3令人失望? |?笑看新倚天屠龍記?|?燈謎答題王?|用Python做個(gè)海量小姐姐素描圖?|碟中諜這么火,我用機(jī)器學(xué)習(xí)做個(gè)迷你推薦系統(tǒng)電影
趣味:彈球游戲? |?九宮格? |?漂亮的花?|?兩百行Python《天天酷跑》游戲!
AI:?會(huì)做詩(shī)的機(jī)器人?|?給圖片上色?|?預(yù)測(cè)收入?|?碟中諜這么火,我用機(jī)器學(xué)習(xí)做個(gè)迷你推薦系統(tǒng)電影
小工具:?Pdf轉(zhuǎn)Word,輕松搞定表格和水印!?|?一鍵把html網(wǎng)頁(yè)保存為pdf!|??再見PDF提取收費(fèi)!?|?用90行代碼打造最強(qiáng)PDF轉(zhuǎn)換器,word、PPT、excel、markdown、html一鍵轉(zhuǎn)換?|?制作一款釘釘?shù)蛢r(jià)機(jī)票提示器!?|60行代碼做了一個(gè)語(yǔ)音壁紙切換器天天看小姐姐!|
年度爆款文案
點(diǎn)閱讀原文,看200個(gè)Python案例!

