%vs. +与Python中的字符串有关吗?

问题描述 投票:1回答:4

此:

hilarious = False
joke_evaluation = "Isn't that joke so funny?! %r"

print joke_evaluation % hilarious

和此:

w =“这是...的左侧” e =“一个带右侧的字符串。”

打印w + e

似乎正在做同样的事情。为什么我不能将代码更改为:

print joke_evaluation + hilarious

为什么不起作用?

python syntax
4个回答
6
投票

%r调用repr(),它表示False(布尔)为"False"(字符串)。

[+仅可用于将一个字符串与其他字符串连接在一起(否则将获得一个TypeError: cannot concatenate 'str' and 'bool' objects

您可以在连接False之前将其转换为字符串:

>>> print "Isn't that joke so funny?!" + str(False)

您也可以尝试新的字符串格式:

>>> print "Isn't that joke so funny?! {!r}".format(False)
Isn't that joke so funny?! False

3
投票

这是类型转换问题。当您尝试连接到Python中的字符串时,只能连接其他字符串。您正在尝试将布尔值连接到字符串,这是不受支持的操作。

您可以做

print w + str(e) 

这将起作用。


0
投票

这就是让我感到困惑的地方:

hilarious = False
joke_evaluation = "Isn't that joke so funny?! %r"

print joke_evaluation % hilarious

我希望它看起来像这样:

hilarious = False
joke_evaluation = "Isn't that joke so funny?! %r" % hilarious

print joke_evaluation 

我想我的眼睛看起来很时髦。


0
投票

这也让我感到困惑,但是由于它是一个布尔值,因此您不能使用+。

如果您遇到这样的错误:

TypeError: cannot concatenate 'str' and 'bool' objects
© www.soinside.com 2019 - 2024. All rights reserved.