2017-02-09 5 views
2
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 является способ старый ...чем смысл линии п = п и Int (п) в питоне

ответ

1

Заявление

n = n and int(n) 

сначала оценить n. Если его значение равно 0 или "", или False (или номер other "falsy" values), то n не изменится. Если n - это что-то еще, тогда будет вызываться int(n), чтобы преобразовать его в целое число, и результат будет присвоен n.

Это довольно необычная вещь для написания, и из кода, который вы опубликовали, не ясно, почему автор не просто написал n = int(n).

3

Оператор and возвращает значение первого значения «falsey», которое он видит, или второе значение, если оба значения true. Так у вас есть:

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

В вашем случае, у вас есть n and int(n). Если n или int(n) равно нулю, это вернет 0. Если оба значения не равны нулю, оно вернет int(n).

Следует отметить, что (a) этот код излишне запутанный, и (b) его можно упростить, используя int(n); если n равен нулю, то int(n) равен нулю, поэтому нет необходимости в проверке n.