我在这件事上也是空白。与其提供答案,我希望有人能帮助我理解为什么我的代码没有输出预期的输出:
def bool_to_str(bval):
if bval is True:
mytest = 'Yes'
else:
mytest = 'No'
return mytest预期产出:
>>>bool_to_str([1, 2, 3])
'Yes'
>>>bool_to_str(abcdef)
'Yes'实际输出是什么:
>>>bool_to_str([1, 2, 3])
'No'
>>>bool_to_str(abcdef)
'No'请帮助我理解我做错了什么。我认为函数需要测试参数的实际真值,但我不明白我遗漏了什么。
发布于 2017-03-20 02:53:11
bval is True检查[1, 2, 3]是否实际上是True对象。您需要像bool()这样的东西来评估一个对象是否是一个真值,但与true对象不完全相同。
发布于 2017-03-20 02:54:34
[1,2,3]并不等于True,但是,如果您输入类似于1的内容,那么1 == True将通过,但是当您使用is时,除非是True,否则它总是假的。
https://stackoverflow.com/questions/42895080
复制相似问题