python中f字符串以及其常見(jiàn)用法總結(jié)
前言
有個(gè)小伙伴看到之前寫(xiě)的Faker庫(kù)相關(guān)文章中出現(xiàn)了f'{}' 這個(gè)東東,他問(wèn)我是啥意思?
實(shí)際上,這個(gè)是使用到了 f-string 作為格式化的方法,為此簡(jiǎn)單羅列了一下 f-string 及其常見(jiàn)用法,給小伙伴們作為參考。
一、f-string是什么?
Python f-string 是執(zhí)行字符串格式化的最新 Python 語(yǔ)法。自 Python 3.6 起可用。
Python f 字符串提供了一種更快,更易讀,更簡(jiǎn)明且不易出錯(cuò)的在 Python 中格式化字符串的方式。f 字符串的前綴為f,并使用{}括號(hào)評(píng)估值。在冒號(hào)后指定用于類(lèi)型,填充或?qū)R的格式說(shuō)明符。例如:f'{price:.3f}',其中price是變量名, .3f 表明精度(保留三位小數(shù))。
二、格式化常見(jiàn)用法
Python中常見(jiàn)的格式化方法有三種,分別是:
1. % 符號(hào)+格式指定符
2. format()函數(shù)
3. f-string
下面舉個(gè)例子,結(jié)果都是“【張三】今年【18】歲”,但是使用了不同的格式化方法:
name = "張三" age = 18 # 最原始提供的字符串替換方法,使用了 % 運(yùn)算符和經(jīng)典字符串格式指定,如 %s %d 等 print("【%s】今年【%d】歲" % (name, age)) # 【張三】今年【18】歲 # Python 3.0 新增了 format() 函數(shù),可以提供高級(jí)的格式化選項(xiàng) print("【{}】今年【{}】歲".format(name, age)) # 【張三】今年【18】歲 # Python 3.6 f-string出現(xiàn),使得格式化方法更加靈活,字符串前綴為 f,并使用 {} 評(píng)估值 print(f"【{name}】今年【{age}】歲") # 【張三】今年【18】歲
三、f-string常見(jiàn)用法匯總
下面分別舉例說(shuō)明 f-string的一些常見(jiàn)用法
1. f-string 中接收表達(dá)式
num = 12 price = 6 # f-string 中可以接收表達(dá)式 print(f'【{num}】個(gè)蘋(píng)果,每個(gè)【{price}】元,一共要花【{num * price}】元') # 【12】個(gè)蘋(píng)果,每個(gè)【6】元,一共要花【72】元
2. f-string 可以對(duì)字典取值
user = {"name": "Ace", "job": "teacher"} print(f'【{user["name"]}】的工作是【{user["job"]}】') # 【Ace】的工作是【teacher】
3. f-string 針對(duì)多行數(shù)據(jù)進(jìn)行格式化
name = "李四" age = 28 job = "碼農(nóng)" msg = ( f'Name: {name}\n' f'Age: {age}\n' f'Job: {job}' ) # 注意 msg 使用了 () 進(jìn)行包裹 print(msg) # Name: 李四 # Age: 28 # Job: 碼農(nóng)
4. f-string 中調(diào)用函數(shù)
def my_max(x, y): """ 三目運(yùn)算比較兩個(gè)數(shù)字大小 :param x: int x :param y: int y :return: x 和 y 中較大的數(shù)字 """ return x if x > y else y a = 3 b = 4 print(f'【{a}】和【】中較大的是【{my_max(a, b)}】') # 【3】和【4】中較大的是【4】
5. f-string 轉(zhuǎn)義用法
print(f"Python 使用 {{}} 來(lái)計(jì)算f-string中的變量") # Python 使用 {} 來(lái)計(jì)算f-string中的變量 print(f'你真的很\'厲害\'') # 注意:?jiǎn)我?hào)中想繼續(xù)使用單引號(hào),那就需要進(jìn)行轉(zhuǎn)義 # 你真的很'厲害'
6. f-string 格式化浮點(diǎn)數(shù)
val = 11 # 通過(guò) : 后跟 浮點(diǎn)數(shù)標(biāo)識(shí) ,可以實(shí)現(xiàn)格式化浮點(diǎn)數(shù) print(f'{val:.3f}') # 11.000 print(f'{val:.4f}') # 11.0000
7. f-string 格式化寬度
for i in range(1, 11): print(f'{i:02} {i * i:3} {i * i * i:4}') # 01 1 1 # 02 4 8 # 03 9 27 # 04 16 64 # 05 25 125 # 06 36 216 # 07 49 343 # 08 64 512 # 09 81 729 # 10 100 1000
8. f-string 對(duì)齊字符串
s1 = 'a' s2 = 'ab' s3 = 'abc' s4 = 'abcd' # 將輸出的寬度設(shè)置為十個(gè)字符。 使用 > 符號(hào),讓輸出結(jié)果右對(duì)齊。 print(f'{s1:>10}') print(f'{s2:>10}') print(f'{s3:>10}') print(f'{s4:>10}') # a # ab # abc # abcd # 實(shí)際上,只要大于最大的字符串長(zhǎng)度,就可以實(shí)現(xiàn)右對(duì)齊,感興趣可以試下小于最大字符串長(zhǎng)度會(huì)有什么表現(xiàn)
9. f-string 格式化時(shí)間
import datetime now = datetime.datetime.now() print(f'{now:%Y-%m-%d %H:%M}') # 2023-04-02 21:07
10. f-string 接收對(duì)象 ,注意:對(duì)象必須定義了__str__()或__repr__()函數(shù)
class User: def __init__(self, name, job): self.name = name self.job = job def __repr__(self): return f"{self.name} is a {self.job}" u = User('Ace', 'teacher') print(f'{u}') # Ace is a teacher
以上就是 f-string 常見(jiàn)的一些用法,使用f-string格式化數(shù)據(jù)可以更加靈活,滿(mǎn)足多樣化的需求,但注意,一定要Python3.6以上的版本才支持!
注意:Python3.6以上的版本才支持!
注意:Python3.6以上的版本才支持!
注意:Python3.6以上的版本才支持!
總結(jié)
到此這篇關(guān)于python中f字符串以及其常見(jiàn)用法總結(jié)的文章就介紹到這了,更多相關(guān)python中f字符串用法內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
python使用threading.Condition交替打印兩個(gè)字符
這篇文章主要為大家詳細(xì)介紹了python使用threading.Condition交替打印兩個(gè)字符,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2019-05-05使用虛擬環(huán)境實(shí)現(xiàn)Python版本和依賴(lài)庫(kù)的兼容
這篇文章主要介紹了使用虛擬環(huán)境實(shí)現(xiàn)Python版本和依賴(lài)庫(kù)的兼容的相關(guān)資料,需要的朋友可以參考下2022-12-12五個(gè)Jupyter?Notebook實(shí)用魔法命令分享
Jupyter?Notebook是一個(gè)開(kāi)源的交互式編程環(huán)境,用于創(chuàng)建和共享包含實(shí)時(shí)代碼、文本等,本文主要來(lái)和大家分享一些有趣的Jupyter?Notebook魔法命令,需要的可以參考一下2023-07-07Python實(shí)現(xiàn)批量壓縮解壓文件(zip、rar)
Python是一種廣泛使用的編程語(yǔ)言,非常適合處理各種任務(wù),包括批量解壓縮文件,本文主要介紹了Python實(shí)現(xiàn)批量壓縮解壓文件,具有一定的參考價(jià)值,感興趣的可以了解一下2023-09-09python基礎(chǔ)while循環(huán)及if判斷的實(shí)例講解
下面小編就為大家?guī)?lái)一篇python基礎(chǔ)while循環(huán)及if判斷的實(shí)例講解。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2017-08-08python實(shí)現(xiàn)的簡(jiǎn)單抽獎(jiǎng)系統(tǒng)實(shí)例
這篇文章主要介紹了python實(shí)現(xiàn)的簡(jiǎn)單抽獎(jiǎng)系統(tǒng),涉及Python隨機(jī)數(shù)及文件操作的相關(guān)技巧,需要的朋友可以參考下2015-05-05