3 回答
慕的地10843
TA贡献1785条经验 获得超8个赞
在 Python 中,if n
相当于if bool(n)
.
对于整数,bool(i)
等于i != 0
。
如果n
是类的实例,则
如果类定义
__bool__
,则n.__bool__()
调用如果该类没有定义
__bool__
but__len__
,则n.__len__() != 0
对其进行评估如果该类既不定义
__bool__
也不定义__len__
,则它总是评估为 True(像n is not None
)。
浮云间
TA贡献1829条经验 获得超4个赞
Python 中的任何值都可以进行真实性测试。只要它不是None、False、 零或空;它被认为是正确的。请参阅文档中的更多详细信息。
在您的情况下,递归应该在n达到零时停止,因为不考虑零True。您可以使用以下方法进行测试:
if 0:
print('zero is true') # won't be printed
else:
print('zero is false') # will be printed
繁星淼淼
TA贡献1775条经验 获得超11个赞
通常情况如下:
if n==1:
但这评估为:
if True:
如果条件正确,python 在默认情况下一切都为 True,因此该语句被传递,并且因为:
bool(n)
可能是True
或False
也n
可能已经做到了,如果n
为真,代码将通过,如果n
为假则不通过,这就是它起作用的原因。
添加回答
举报
0/150
提交
取消