hilarious = False
joke_evaluation = "Isn't that joke so funny?! {}"
print(joke_evaluation.format(hilarious))
对于以下几行Python代码,我无法理解一个关键概念。
为变量joke_evaluation
分配了一个字符串,并包含{}
以在其中嵌入另一个变量。
第三行代码使我陷入困境,我们是说先打印变量joke_evaluation
,然后使用.format()
函数并将另一个变量传递给它-hilarious
设置为布尔数据类型。
{}
是否有效地充当占位符? .format()
函数如何知道用变量{}
填充hilarious
?
请尽可能用基本的术语进行解释,以加深我的理解,如上所述,我无法理解Python如何填充花括号{}
。
答案 0 :(得分:1)
是的,{}
充当占位符,通过.format
方法以特殊方式处理。
.format()函数如何知道用变量搞笑填充{}?
如果仅提供{}
,则按位置替换,即
>>> 'first: {}, second: {}'.format(1, 2)
'first: 1, second: 2'
要进行更详细或可重复使用的替换,可以使用命名参数:
>>> "{actor1} tells {actor2} that he's {actor1}".format(actor1='Bob', actor2='Joel')
"Bob tells Joel that he's Bob"
有关超棒字符串格式的更多信息:pyformat.info
有关格式的更多信息,当.format
用某些对象替换占位符时,它会在其上调用__format__
方法,
'{:.2f}'.format(3.1415)
str
,它将实际上代替占位符答案 1 :(得分:1)
这是我对format
方法的理解:
任何带有大括号{}
的字符串都将替换为您提供的变量。所以,如果我有一个字符串说:
myStr = "hello {}"
然后做:
res = myStr.format("user")
print(res) #prints "hello user" without quotes.
现在,这样做:
res = myStr.format(123123)
print(res) #prints "hello 123123" without quotes.
您可能已经猜到,整数123123
在包含在字符串中之前已隐式转换为字符串。
现在,进入卷曲的{}
部分:
format
方法。例如:
myStr = "hello {},{},{}, nice meeting you"
res = myStr.format("abcd",123,"lol")
print(res) #prints "hello abcd,123,lol, nice meeting you"
{}
中放置索引,以指示诸如{0}
和{1}
之类的位置。答案 2 :(得分:0)
阅读有关字符串的Python文档:https://docs.python.org/3.6/library/string.html?highlight=formatting
:)您需要了解的所有内容。您还可以更改Python版本并查看格式化的行为。
向下滚动以查看示例和说明。