📜  Python中的f字符串

📅  最后修改于: 2022-05-13 01:54:23.852000             🧑  作者: Mango

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,字面量字符串插值