как посчитать 0 модуль в списке - PullRequest
1 голос
/ 27 мая 2019

Я создал список и цикл итерации для этого списка.Я пытаюсь подсчитать все четные числа с помощью оператора модуля.Я инициализировал переменную count и использовал приращение количества и оператор if, чтобы перехватить все четные числа во вложенном цикле.Однако все, что я получаю, это номер один.count равно 1, это из-за неправильного использования модуля, и item = 10, из-за того, что цикл итерации достигает своего конца списка?

Я не знаю, что изменить, структура кода всевыглядит нормально для меня.Я попытался сделать отступ для функции печати.Это показало мне, что модуль улавливает четные числа, но их количество не суммируется.

list = [1,2,3,4,5,6,7,8,9,10]
for item in list:
    count = 0
    if (item % 2 == 0):
        count = count + 1
print(count)
print(item)
print(list)

Я ожидаю, что число 5 является результатом программы, поскольку в списке 5 четных чисел

Ответы [ 2 ]

5 голосов
/ 27 мая 2019

Поместите count=0 вне цикла for.Прямо сейчас вы повторно инициализируете счетчик до 0 во время каждой итерации цикла for.

Кроме того, не называйте вашу переменную как built-in имен функций: в вашем случае не используйте list в качестве имени переменной.Ниже, например, я использую lst.

Незначительные другие модификации: Вы можете просто использовать count += 1 вместо count = count + 1.Первый является кратким способом написания.Кроме того, вам не нужно заключать одно условие в скобки () в вашем случае.

lst = [1,2,3,4,5,6,7,8,9,10]
count = 0

for item in lst:
    if item % 2 == 0:
        count += 1 # equivalent to count = count + 1
print(count)
print(item)
print(lst)


# 5
# 10
# [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
0 голосов
/ 27 мая 2019

Вы можете использовать Python генераторы и сумма встроенную функцию вместо ручной итерации по списку:

lst = [1,2,3,4,5,6,7,8,9,10]
count = sum(n % 2 == 0 for n in lst)
print(lst)
print(count)

напечатает вас:

[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]

5

...