我刚刚才知道有Truthy和Falsy在Python这是与正常不同的价值观True和False?
是否有人可以深入解释什么truthy和falsy值?
我应该在哪里使用它们?
truthy和True值以及falsy和False值之间有什么区别?
我问这个是因为我知道检查列表是否为空的pythonic方法如下:
my_list = []
if not my_list:
print "computer says no"
else:
# my_list isn't empty
print "computer says yes"
Run Code Online (Sandbox Code Playgroud)
将打印computer says no,等等,这使我认识[]到False真值; 但是,如果我尝试直接比较[]和False,我会得到以下结果:
>>> my_list == False
False
>>> my_list is False
False
>>> [] == False
False
Run Code Online (Sandbox Code Playgroud)
等等...
这里发生了什么?我觉得我错过了一些非常明显的东西.
if <boolean> :
# do this
Run Code Online (Sandbox Code Playgroud)
boolean必须是True或False.
那么为什么
if "poi":
print "yes"
Run Code Online (Sandbox Code Playgroud)
输出:是的
我不明白为什么是打印,因为"poi"是虚假的真或假.
我也在这一点上画空白.而不是提供答案,我将不胜感激,如果有人可以帮助我理解为什么我的代码不打印预期的输出:
def bool_to_str(bval):
if bval is True:
mytest = 'Yes'
else:
mytest = 'No'
return mytest
Run Code Online (Sandbox Code Playgroud)
预期产量:
>>>bool_to_str([1, 2, 3])
'Yes'
>>>bool_to_str(abcdef)
'Yes'
Run Code Online (Sandbox Code Playgroud)
实际输出的是什么:
>>>bool_to_str([1, 2, 3])
'No'
>>>bool_to_str(abcdef)
'No'
Run Code Online (Sandbox Code Playgroud)
请帮我理解我做错了什么.我认为函数需要测试参数的实际真值,但我不明白我错过了什么.