python3 f-string格式化字符串的高級用法


從Python 3.6開始,f-string是格式化字符串的一種很好的新方法。與其他格式化方式相比,它們不僅更易讀,更簡潔,不易出錯,而且速度更快!

在Python 3.6之前,有兩種將Python表達式嵌入到字符串文本中進行格式化的主要方法:%-formattingstr.format()

%-formatting

字符串對象具有使用%運算符的內置操作,您可以使用它來格式化字符串。

name = "tom"
print("貓的名字叫%s"%name)

 輸出:

cat name is tom

上面的示例代碼看起來足夠易讀,但是,一旦開始使用多個參數和更長的字符串,代碼就將變得不太容易閱讀。

name = "tom"
age = 2
action = "迅速"
disposition = ""

print("貓的名字叫%s,今年%d歲了,抓老鼠非常%s,但是非常%s,白天總睡覺。"%(name, age, action, disposition))

輸出:

貓的名字叫tom,今天2歲了,抓老鼠非常迅速,但是非常懶,白天總睡覺。

str.format()

str.format()是對%-formatting的改進。它使用正常的函數調用語法,並且可以通過對要轉換為字符串的對象的__format __()方法進行擴展。

使用str.format(),替換字段用大括號標記:

name = "tom"
print("貓的名字叫{}".format(name))

輸出:

貓的名字叫tom

也可以通過引用其索引,以任何順序引用變量:

name = "tom"
age = 2

print("貓的名字叫{1},今年{0}歲了,今天星期{0}".format(age, name))

輸出:

貓的名字叫tom,今年2歲了,今天星期2

 也可以使用 ** 來用字典,巧妙的完成格式化:

cat = {"name": "tom", "age": 2}

print("貓的名字叫{name},今年{age}歲了".format(**cat))

輸出:

貓的名字叫tom,今年2歲了

使用 str.format() 格式化代碼比使用 %-formatting 更易讀,但當處理多個參數和更長的字符串時,str.format()看起來仍然非常冗長。

f-Strings:一種改進Python格式字符串的新方法

f-Strings語法與str.format()使用的語法類似,但較少細節啰嗦,只需要在格式化字符串前加f或F即可。看看這是多么容易可讀:

name = "tom"
age = 2

print(f"貓的名字叫{name},今年{age}歲了")

輸出:

貓的名字叫tom,今年2歲了

格式化時可以使用函數:

name = "tom"
age = 2

print(F"貓的名字叫{name.upper()},今年{age}歲了")

輸出:

貓的名字叫TOM,今年2歲了

格式化時可以使用字典:

cat = {"name": "tom", "age": 2}

print(F"貓的名字叫{cat['name']},今年{cat['age']}歲了")

輸出:

貓的名字叫tom,今年2歲了

 格式時可以對浮點數精度做限制:

name = "tom"
age = 2.1274

print(F"貓的名字叫{name},今年{age: .2f}歲了")

輸出:

貓的名字叫tom,今年 2.13歲了

 當使用格式化時需要輸出{}時,只需要使用{{}}即可輸出{}

var_value = 1 + 1
print(F"字典{{'var_name': 'var_value'}}的var_value應為{var_value}")

輸出

字典{'var_name': 'var_value'}的var_value應為2

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM