说“如果 n”是什么意思?

什么意思if n?我不明白为什么if n在 if 语句中起作用。不应该有诸如之类的争论if n == 0,而不仅仅是if n?


def AddMusicAtPosition(self, newMusic, n):

    if n:

        self.nextMusic.AddMusicAtPosition(newMusic, n - 1)

    else:

        newMusic.nextMusic = self.nextMusic

        self.nextMusic = newMusic


四季花海
浏览 219回答 3
3回答

慕的地10843

在 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)。

浮云间

Python 中的任何值都可以进行真实性测试。只要它不是None、False、 零或空;它被认为是正确的。请参阅文档中的更多详细信息。在您的情况下,递归应该在n达到零时停止,因为不考虑零True。您可以使用以下方法进行测试:if 0:  print('zero is true') # won't be printedelse:  print('zero is false') # will be printed

繁星淼淼

通常情况如下:if n==1:但这评估为:if True:如果条件正确,python 在默认情况下一切都为 True,因此该语句被传递,并且因为:bool(n)可能是True或False也n可能已经做到了,如果n为真,代码将通过,如果n为假则不通过,这就是它起作用的原因。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python