Python 以不同的方式在字符串中包含变量

Python 以不同的方式在字符串中包含变量,python,python-3.x,Python,Python 3.x,以下语法的各自优点是什么 我真的不明白为什么要用其中一个 # 1 print("The total is "+ str(totalBill)) # 2 print(f"The total is {totalBill}") # 3 print("The total is {}.".format(totalBill)) 虽然所有这些都可以在python中实现相同的打印功能,但第二个过程中的f字符串格式是python 3.6中引入的最新格式。第一种方法是简单地将一个字符串添加到另一个字符串,然后

以下语法的各自优点是什么

我真的不明白为什么要用其中一个

# 1
print("The total is "+ str(totalBill))

# 2
print(f"The total is {totalBill}")

# 3
print("The total is {}.".format(totalBill))

虽然所有这些都可以在python中实现相同的打印功能,但第二个过程中的f字符串格式是python 3.6中引入的最新格式。第一种方法是简单地将一个字符串添加到另一个字符串,然后打印连接的字符串str.format()
str.format()
是对以前的
%-格式设置的改进。新的f字符串格式再次优于
str.format()
方法。对于大量参数的打印,
str.format()
变得非常冗长。此外,与
str.format()
方法以及旧的
%-格式化方法相比,f字符串的使用速度更快。F字符串是在运行时计算的,而不是常量值。在运行时,f-string的大括号内的表达式在其各自的范围内求值,然后在返回的字符串中组合在一起。使用F字符串文字的过程#2建议通过
str.format()
方法以及连接字符串过程

以下是一个比较:

from timeit import timeit as t
t("""totalBill = 100
print("The total is "+str(totalBill))""", number=10000)
# 7.241250243259877 seconds

t("""totalBill = 100
print(f"Total bill is {totalBill})""", number=10000)
# 3.1151810346903517 seconds

优势是明显的和主观的:哪一个是最明显的?虽然f-strings是最新的改进,但如果有必要的话,较旧的
.format
方法可以与更多的Python版本兼容。@William:另请参阅不同方法的性能。可能很重要,具体取决于格式化的字符串数量。