python 3.6後,字串多了個處理方法
PEP 498 — Literal String Interpolation
下面直接用例子來比較f-string和我們之前常用的 %-formatting、str.format()語法不同之處
>>> # %-formatting
...
>>> text = "Hello"
>>> number1 = 10
>>> number2 = 20
>>> print("%s, test numbers are %s and %s" % (text, number1, number2))
Hello, test numbers are 10 and 20
>>> # str.format()
...
>>> text = "Hello"
>>> number1 = 10
>>> number2 = 20
>>> print("{}, test numbers are {} and {}".format(text, number1, number2))
Hello, test numbers are 10 and 20
>>> print("{0}, test numbers are {2} and {1}".format(text, number1, number2))
Hello, test numbers are 20 and 10
>>> # f-string
...
>>> text = "Hello"
>>> number1 = 10
>>> number2 = 20
>>> print(f"{text}, test numbers are {number1} and {number2}")
Hello, test numbers are 10 and 20
F-string 看起來更python了,也解決了之前會遇到的問題;例如使用 %時的參數限制等等。
在變數變多的情況下更易讀也易改。
嘗試做更多操作
>>> f"{3 + 8}"
'11'
>>> text = "Literal String Interpolation"
>>> f"{text.upper()}"
'LITERAL STRING INTERPOLATION'
>>> f"{1/3:.2f}"
'0.33'
也可以放入lambda表達式。
有機會多使用看看吧!
發表留言