Python - f-strings



在 3.6 版中,Python 引入了一种新的字符串格式化方法,即 f-strings Literal String Interpolation。使用这种格式化方法,您可以在字符串常量中使用嵌入式 Python 表达式。Python f-strings 是一种更快、更易读、更简洁且不易出错的方法。

使用 f-string 打印变量

要使用 f-strings 打印变量,你可以简单地将它们放在占位符 ({}) 内。字符串以 'f' 前缀开头,并在其中插入一个或多个占位符,其值是动态填充的。

在下面的示例中,我们使用 f-strings 打印变量。


name = 'Qikepu'
age = 43
fstring = f'My name is {name} and I am {age} years old'
print (fstring)

它将产生以下输出 -

My name is Qikepu and I am 43 years old

使用 f-string 计算表达式

f-string 还可用于计算 {} 占位符内的表达式。

以下示例演示如何使用 f-string 计算表达式。


price = 10
quantity = 3
fstring = f'Price: {price} Quantity : {quantity} Total : {price*quantity}'
print (fstring)

它将产生以下输出 -

Price: 10 Quantity : 3 Total : 30

使用 f-string 打印词典键值

占位符可以由字典值填充。Dictionary 是 Python 中的内置数据类型之一,用于存储无序的键值对集合。

在以下示例中,我们将使用 f-string 设置字典的格式。


user = {'name': 'Ramesh', 'age': 43}
fstring = f"My name is {user['name']} and I am {user['age']} years old"
print (fstring)

它将产生以下输出 -

My name is Ramesh and I am 43 years old

f-string 中的自调试表达式

= 字符用于对 f-string 中的表达式进行自我调试,如以下示例所示 -


price = 10
quantity = 3
fstring = f"Total : {price*quantity=}"
print (fstring)

它将产生以下输出 -

Total : price*quantity=30

使用 f-string 调用用户定义的函数

也可以在 f-string 表达式中调用用户定义的函数。为此,只需通过传递所需的参数来使用函数名称即可。

下面的示例展示了如何在 f-string 中调用方法。


def total(price, quantity):
	 	return price*quantity

price = 10
quantity = 3

fstring = f'Price: {price} Quantity : {quantity} Total : {total(price, quantity)}'
print (fstring)

它将产生以下输出 -

Price: 10 Quantity : 3 Total : 30

使用 f-string 进行精确处理

Python f-string 还支持使用精度规范格式化浮点数,如 format() 方法和字符串格式化运算符 %。


name="Qikepu"
age=43
percent=55.50

fstring = f"My name is {name} and I am {age} years old and I have scored {percent:6.3f} percent marks"
print (fstring)

它将产生以下输出 -

My name is Qikepu and I am 43 years old and I have scored 55.500 percent marks

使用 f-string 进行字符串对齐

对于字符串变量,您可以指定对齐方式,就像我们使用 format() 方法和格式化运算符 % 一样。


name='qikepu'
fstring = f'Welcome To {name:>20} The largest qikepu Library'
print (fstring)

fstring = f'Welcome To {name:<20} The largest qikepu Library'
print (fstring)

fstring = f'Welcome To {name:^20} The largest qikepu Library'
print (fstring)

它将产生以下输出 -

Welcome To       qikepu The largest qikepu Library
Welcome To qikepu       The largest qikepu Library
Welcome To       qikepu       The largest qikepu Library

使用 f-string 打印其他格式的数字

当分别与 “x”、“o” 和 “e” 一起使用时, f-strings 可以显示十六进制、八进制和科学记数法的数字。

下面的示例演示如何使用 f-string 设置数字格式。


num= 20
fstring = f'Hexadecimal : {num:x}'
print (fstring)

fstring = f'Octal :{num:o}'
print (fstring)

fstring = f'Scientific notation : {num:e}'
print (fstring)

它将产生以下输出 -

Hexadecimal : 14
Octal :24
Scientific notation : 2.000000e+01