如何在Python中将布尔值与字符串拼接?

91

我想要完成以下内容

answer = True
myvar = "the answer is " + answer

我希望能够让myvar的值为"the answer is True",我相信你可以在Java中完成这个任务。


1
FYI:在Python中,布尔值的首字母是大写的(True,False)。 - Jordonias
6个回答

141
answer = True
myvar = "the answer is " + str(answer)

Python不进行隐式类型转换,因为隐式类型转换可能会掩盖关键逻辑错误。要获取对象的字符串表示形式("True"),只需将其自身转换为字符串,或者像下面这样使用字符串格式化功能:

myvar = "the answer is %s" % answer

请注意,答案必须设置为 True(大小写有区别)。


30

推荐的方法是让str.format处理转换(文档)。带有%s替代的方法可能最终会被弃用(请参见PEP3101)。

>>> answer = True
>>> myvar = "the answer is {}".format(answer)
>>> print(myvar)
the answer is True

在Python 3.6+中,您可以使用字面字符串插值

 >>> print(f"the answer is {answer}")
the answer is True

9
answer = True
myvar = "the answer is " + str(answer)

或者
myvar = "the answer is %s" % answer

%s在引号外面不应该出现,但这确实是正确的。 - Makoto

3

使用所谓的f字符串:

answer = True
myvar = f"the answer is {answer}"

那么如果我这样做

print(myvar)

我将获取:

the answer is True

我喜欢使用f字符串,因为我们不必担心变量在打印文本中出现的顺序,这对于需要打印多个变量作为字符串的情况非常有用。


0

answer = True

myvar = '答案是 ' + str(answer) #由于answer变量是布尔格式,因此我们必须将布尔转换为字符串格式,可以使用此方法轻松完成

print(myvar)


1
欢迎来到SO,Lijin G. Varghese!这里不鼓励仅提供代码的回答,因为它们无法解释问题是如何被解决的。请更新您的回答,解释您的代码是如何解决问题的 :) - Joel

-2
answer = “True”

myvars = “the answer is” + answer

print(myvars)

这应该很容易地给出你的答案是True,因为你使用引号将答案存储为字符串。

但是他没有将答案存储为字符串。它是一个布尔值。问题是如何将动态布尔值转换为其字符串表示形式。 - cstrutton

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接