在Python中格式化字符串的最佳方法是什么?

在Python中格式化字符串的最佳方法是什么?,python,string,Python,String,我目前正在阅读关于Python的书籍和在线课程。我们可以用python格式化字符串,但我想知道最好的方法是什么 例如,如果我们有两种格式化字符串的方法,那么使用哪一种更好?这有什么区别吗 print("I am %d years old." % (age)) 或 甚至可能 print("I am " + str(age) + " years old") 不管怎样,这更像是一个理论问题。我不熟悉编码,但我知道有些函数或方法比其他函数或方法更消耗内存,因此我试图找出其中一种是否是

我目前正在阅读关于Python的书籍和在线课程。我们可以用python格式化字符串,但我想知道最好的方法是什么

例如,如果我们有两种格式化字符串的方法,那么使用哪一种更好?这有什么区别吗

    print("I am %d years old." % (age))

甚至可能

    print("I am " + str(age) + " years old")

不管怎样,这更像是一个理论问题。我不熟悉编码,但我知道有些函数或方法比其他函数或方法更消耗内存,因此我试图找出其中一种是否是更好的做法。

Python 3.6+提供了一种新的字符串格式

name = "jack"
my_string = f"hello my name is {name}"
函数现在被称为使用格式化字符串的最正确和推荐的方法,因为它比旧字符串多得多

%声明为过时格式

您可以看到新旧格式字符串的示例


Python3.6中的p.S.是新发布的。

如果它适合您的风格,并且在您的工作场所中没有任何规则,那么所有方法都是好的。 然而,在我看来,最平滑的方法是f字符串

这样做:

print(f"Some text and a {value}")

所有方法都取决于您希望实现的操作和执行效率。目前,python 3.6中引入了最新、最有效的python字符串格式化方法,如下所示:

f'{}'


如果您希望格式化字符串,这是目前最好的方法。

我不认为有任何最好的方法来处理字符串格式化,我认为这取决于开发人员希望代码可读性的程度

用%格式化是一种旧方法,但向后兼容

建议继续使用.format_u函数

串接在一起通常很难阅读或理解最终的字符串应该是什么

我个人总是使用.format选项,也是因为它允许在花括号内命名变量。比如说

from datetime import datetime
now = datetime.now()
time_now = "Time: '{time}'".format(time=now)

通过这种方式,它在字符串中提供了一个更通用的变量名,这样每个人都知道输入变量是关于什么的。

只是一个小注释-在3.6中引入了f字符串。我更喜欢您的第一个示例。我发现,如果调用太频繁,格式会很昂贵,因此尽量避免使用这种格式-c样式%d等对我来说更有效。可读性通常是最重要的-命名参数appoach最适合于将有多个查看器和更新的代码…您已经演示了旧样式、新样式和丑陋样式。你错过了新的f字符串。最后一个是最糟糕的选项,因为每次使用+都会创建一个单独的临时str对象;其他两个只创建一个,不管有多少占位符可能被替换为额外的字符串。如果使用Python3.6和更高版本,我更喜欢f字符串,但由用户决定其样式是否在Python3.6+中可用谢谢!我不知道命名选项。我读了答案,新的F弦听起来很有趣。我们将对此进行一些研究:
from datetime import datetime
now = datetime.now()
time_now = "Time: '{time}'".format(time=now)