Python中的f字符串
PEP 498 引入了一种新的字符串格式化机制,称为字面量字符串插值或更常见的F 字符串(因为字符串字面量量之前的前导f字符)。 f-strings 背后的想法是使字符串插值更简单。
要创建 f 字符串,请在字符串加上字母“ f ”。字符串本身的格式化方式与使用 str.format() 的方式大致相同。 F-strings 提供了一种简洁方便的方式来将Python表达式嵌入到字符串字面量中以进行格式化。代码#1:
Python3
# Python3 program introducing f-string
val = 'Geeks'
print(f"{val}for{val} is a portal for {val}.")
name = 'Tushar'
age = 23
print(f"Hello, My name is {name} and I'm {age} years old.")
Python3
# Prints today's date with help
# of datetime library
import datetime
today = datetime.datetime.today()
print(f"{today:%B %d, %Y}")
Python3
answer = 456
f"Your answer is "{answer}""
Python3
f"newline: {ord('\n')}"
Python3
newline = ord('\n')
f"newline: {newline}"
输出 :
GeeksforGeeks is a portal for Geeks.
Hello, My name is Tushar and I'm 23 years old.
代码#2:
Python3
# Prints today's date with help
# of datetime library
import datetime
today = datetime.datetime.today()
print(f"{today:%B %d, %Y}")
输出 :
April 04, 2018
注意: F 字符串比两种最常用的字符串格式化机制更快,即 % 格式化和 str.format()。让我们看几个错误示例,这些示例可能在使用 f-string 时发生:
代码#3:演示语法错误。
Python3
answer = 456
f"Your answer is "{answer}""
代码#4:反斜杠不能直接用于格式字符串。
Python3
f"newline: {ord('\n')}"
输出 :
Traceback (most recent call last):
Python Shell, prompt 29, line 1
Syntax Error: f-string expression part cannot include a backslash: , line 1, pos 0
但是文档指出,我们可以将反斜杠放入变量中作为一种解决方法:
Python3
newline = ord('\n')
f"newline: {newline}"
输出 :
newline: 10
参考: PEP 498,字面量字符串插值