Я попытался это -Если оператор с оператором по модулю
x=[2,3,4,7,9]
count=0
for i in x:
if i%2:
count=count+1
print count
почему отсчет 3
вместо 2
, поскольку i%2
является satusfiying только для «2 и 4»?
Я попытался это -Если оператор с оператором по модулю
x=[2,3,4,7,9]
count=0
for i in x:
if i%2:
count=count+1
print count
почему отсчет 3
вместо 2
, поскольку i%2
является satusfiying только для «2 и 4»?
Модуль-более 2 является нулевым :
>>> 2 % 2
0
Так 2 % 2
производит 0
, который является ложным значением, и, таким образом if
заявления не матча.
С другой стороны, модуль 3 к одно:
>>> 3 % 2
1
1
является ненулевым целым числом, так что считается истинным.
Иными словами, if i%2:
соответствует совпадению нечетных номеров, даже не обозначенных. В вашем списке есть 3 нечетных числа.
Помните, что модуль дает вам остаток подразделения. 2 и 4 можно разделить на 2, так что остатка нет. Тест if
проверяет остаток.
Если логическое выражение оценивается как true
(это может быть любое ненулевое значение), тогда будет выполняться блок if.
Вы можете достичь, чтобы получить все четное число рассчитывает путем обновления кода следующим образом:
x=[2,3,4,7,9]
count=0
for i in x:
if i%2 > 0 :
count=count+1
print count
Откройте консоль Python и сделать '4% 2', что в результате? Затем сделайте '3% 2', каков результат? Теперь какой из результатов будет считаться «истинным»? Оператор modulo возвращает * остаток * после деления. Если деление четное (например, в '4% 2'), то нет остатка, результатом будет' 0'. –