【发布时间】:2018-05-14 09:17:02
【问题描述】:
有人可以向我解释一下 .format() 方法是怎么回事,它只适用于字符串声明,而不适用于包含字符串的变量?
以下是工作代码和失败代码的示例以及每个代码的输出
# This works fine
s = "{0} \n" \
"{1} \n" \
"{2}\n" \
.format("Hello", "world", "from a multiline string")
print(s)
# This does not
f = "{0} \n" \
"{1} \n" \
"{2}\n"
f.format("Hello", "world", "from a multiline string")
print(f)
各自的输出
Hello
world
from a multiline string
{0}
{1}
{2}
我已经尝试过没有大括号中的数字({})以及分配名称({aname})和传递关键字参数。我想了解第一个和第二个示例在 format 方法如何处理它们方面的区别,以及是否有办法格式化包含与实际声明分开的字符串的变量。
【问题讨论】:
-
因为
.format()是str对象的方法。 -
@mika72 f 包含一个 str 对象
print(type(f))输出<class 'str'> -
你错过了一个细节,基本上是一个错字:
print(f.format("Hello", "world", "from a multiline string"))是你需要的。
标签: python string python-3.x format