Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Скриптовые языки программирования > Python
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 04.01.2024, 14:02   #1
progaeka
Новичок
Джуниор
 
Регистрация: 04.01.2024
Сообщений: 1
По умолчанию Последовательности натуральных чисел определить сумму всех чисел, кратных 4 и оканчивающихся на 6

Была дана задача:
Напишите программу, которая в последовательности натуральных чисел определяет сумму всех чисел, кратных 4 и оканчивающихся на 6. Программа получает на вход натуральные числа, количество введенных чисел неизвестно, последовательность чисел заканчивается числом 0 (0  — признак окончания ввода, не входит в последовательность). Количество чисел не превышает 100. Введенные числа не превышают 300. Программа должна вывести одно число: сумму всех чисел, кратных 4 и оканчивающихся на 6.
Пример работы программы:
Входные данные:

16
24
56
26
12
0
Выходные данные: 72
Мною написана такая программа:
Код:
lis = []
while True:
    ch = int(input())
    if ch == 0:
        break
    else:
        lis.append(ch)
for el in lis:
    if el%10 == 6 and el%4 == 0:
        pass
    else:
        lis.remove(el)
print (sum(lis))
И результат:
>>
16
24
56
26
12
0
84

Программа почему-то пропускает 12 в этой части кода:
Код:
for el in lis:
    if el%10 == 6 and el%4 == 0:
        pass
Хотя очевидно, что 12 оканчивается не на 6.
Подскажите в чём дело?
progaeka вне форума Ответить с цитированием
Старый 04.01.2024, 15:10   #2
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,709
По умолчанию

Вы изменяете коллекцию, по которой итерируетесь.
p51x вне форума Ответить с цитированием
Старый 04.01.2024, 17:36   #3
BDA
МегаМодератор
СуперМодератор
 
Аватар для BDA
 
Регистрация: 09.11.2010
Сообщений: 7,291
По умолчанию

Если уж фильтровать список, то:
Код:
lis = [el for el in lis if el % 10 == 6 and el % 4 == 0]
Но лучше сразу накапливать сумму уже при вводе чисел.
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )
BDA вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Определить каких чисел в целочисленной последовательности больше:четных или кратных 3 naty7773 Помощь студентам 4 18.12.2012 12:01
Запросите у пользователя положительное число А и найдите сумму всех натуральных чисел из промежутка [1,A] white_angel73 Паскаль, Turbo Pascal, PascalABC.NET 13 22.04.2010 23:35
Определить k-ую цифру последовательности Фибоначчи и последовательности натуральных чисел. Med Помощь студентам 1 20.03.2009 11:40
Найти сумму всех чисел из промежутка от А до В, кратных 8 и 16 nickky2 Паскаль, Turbo Pascal, PascalABC.NET 8 05.12.2008 13:27
вычисление суммы чисел, кратных 3 из последовательности, состоящей из 10 чисел, заранее заданных Белка Помощь студентам 3 27.10.2007 11:53