说“ if n”是什么意思?

时间:2018-12-25 07:56:20

标签: python if-statement

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

4 个答案:

答案 0 :(得分:10)

在Python中,import { platformBrowserDynamic } from '@angular/platform-browser-dynamic' import { enableProdMode } from '@angular/core'; import { AppModule } from './app-module' export const environment = { production: false }; if (environment.production) { enableProdMode(); } console.log('Bootstrap AppModule >>>>'); platformBrowserDynamic().bootstrapModule(AppModule); 等效于if n

对于整数,if bool(n)等于bool(i)


如果i != 0是类的实例,则

  • 如果该类定义了n,则称为__bool__
  • 如果该类未定义n.__bool__()而是__bool__,则评估__len__
  • 如果该类既未定义n.__len__() != 0也未定义__bool__,则其总值为True(例如__len__)。

答案 1 :(得分:0)

通常情况如下:

if n==1:

但这等于:

if True:

如果条件合适,默认情况下python的所有内容均为True,因此该语句将通过,并且由于:

bool(n)

也可以是TrueFalsen可以做到,并且如果n为True,则代码将通过,如果{{1 }}是False,这就是它起作用的原因。

答案 2 :(得分:0)

可以测试Python中的任何值是否为真。只要它不是NoneFalse,零或为空;这被认为是正确的。在the documentation中查看更多详细信息。

在您的情况下,当n变为零时,递归应该停止,因为不认为零为True。您可以使用以下方法进行测试:

if 0:
  print('zero is true') # won't be printed
else:
  print('zero is false') # will be printed

答案 3 :(得分:0)

在Python中,除False,None,0和Empty实体(字符串,列表,集合,字典)外,几乎所有内容都是True!(可能会错过其他人)

因此,如果您声明:

if n:
    print(True)

如果n不为0,False,None或Empty实体,则它将打印True。

要测试值和行为,您可以执行以下操作:

ns = [None, 0, False, '', {},(), [],1, True,]

for n in ns:
    if n:
        print(n, 'It is True')
    else:
        print(n, 'it is False')

那么发生的是,如果n,则检查值n的真实性:)