python中line n = n和int(n)的含义是什么?

时间:2017-02-09 00:29:26

标签: python html css

def get(self){
   n=self.get.request(n,0)
   n=n and int(n)
   self.render(fizzbuzz.html,n=n)
}

这就是n=n and int(n)行的含义 这是代码行是从udacity cs253课程中获取的。是的,你也可以建议我任何类似的课程,但更新,因为cs 253是旧的...

2 个答案:

答案 0 :(得分:4)

and运算符返回第一个" falsey"的值。它看到的价值,或两者都是真的第二个价值。所以你有:

>>> 0 and False
0
>>> False and 0
False
>>> 0 and 1
0
>>> -2 and 0
0
>>> 5 and 3
3

在您的情况下,您有n and int(n)。如果nint(n)为零,则返回0.如果两者都非零,则返回int(n)

值得注意的是:(a)此代码不必要地混淆,(b)只需使用int(n)即可简化;如果n为零,则int(n)为零,因此首先检查n是没有意义的。

答案 1 :(得分:1)

声明

n = n and int(n)

将首先评估n。如果其值为0,或""False(或other "falsy" values的数量),则n将保持不变。如果n是其他内容,则会调用int(n)将其转换为整数,结果将分配给n

这是一个相当不寻常的事情,从你发布的代码中不清楚为什么作者不能简单地写n = int(n)