Может кто-нибудь объяснить мне, что означает "если не х% 2:"? - PullRequest
0 голосов
/ 13 мая 2019

Я пытаюсь понять этот код, но «если не х% 2:» довольно запутанно.Результат тот же, что и "if x == 2".

count_even = 0
for x in range(1,9):
    if not x % 2:
         count_even+=1

Ответы [ 3 ]

0 голосов
/ 13 мая 2019

x%2 вернет 0, если x четный, и 1, если x нечетный.

Так что это утверждение if оценивается как true, если x четное, и false, если x нечетное.

0 голосов
/ 13 мая 2019
if not x%2

Оператор по модулю вычисляет остаток от числа x w.r.t число y . И в вашем примере x находится в диапазоне 1-9, а y задано как 2.

Итак, во-первых, x%2 оценит либо 1, либо 0, основываясь на том, является ли x нечетным или четным числом соответственно.

например:

для x = 1, x% 2 = 1% 2 (вычисление остатка) = 1

для х = 2, х% 2 = 2% 2 = 0

* * Аналогична тысяча двадцать восемь, х = 3, 3% 2 = 1 (остаток)

И так далее ...

Теперь, если это четное число, означающее оценку 0 , что эквивалентно False , а затем оператор not отрицает результат, то есть not(False) == True, следовательно, состояние становится True

Итак, если условие выходит за True, тогда ваш код увеличивает число четных чисел.

Надеюсь, это поможет!

0 голосов
/ 13 мая 2019

Нет, это не то же самое, первое утверждение является оценкой, если x нечетно. Зачем? В python 0 оценивается как False, а оператор % является модулем, который возвращает частное от двух элементов.

Во втором подходе вы просто говорите, что x равно 2

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...