在 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)
它将产生以下输出 -
使用 f-string 计算表达式
f-string 还可用于计算 {} 占位符内的表达式。
例以下示例演示如何使用 f-string 计算表达式。
price = 10
quantity = 3
fstring = f'Price: {price} Quantity : {quantity} Total : {price*quantity}'
print (fstring)
它将产生以下输出 -
使用 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)
它将产生以下输出 -
f-string 中的自调试表达式
= 字符用于对 f-string 中的表达式进行自我调试,如以下示例所示 -
price = 10
quantity = 3
fstring = f"Total : {price*quantity=}"
print (fstring)
它将产生以下输出 -
使用 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)
它将产生以下输出 -
使用 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)
它将产生以下输出 -
使用 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
使用 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)
它将产生以下输出 -
Octal :24
Scientific notation : 2.000000e+01