为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

四季花海 2021-09-25 10:05:05
什么意思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
查看完整描述

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


查看完整回答
反对 回复 2021-09-25
?
浮云间

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


查看完整回答
反对 回复 2021-09-25
?
繁星淼淼

TA贡献1775条经验 获得超11个赞

通常情况如下:

if n==1:

但这评估为:

if True:

如果条件正确,python 在默认情况下一切都为 True,因此该语句被传递,并且因为:

bool(n)

可能是TrueFalsen可能已经做到了,如果n为真,代码将通过,如果n为假则不通过,这就是它起作用的原因。


查看完整回答
反对 回复 2021-09-25
  • 3 回答
  • 0 关注
  • 200 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信