Chudo_Chudnoe
Мастер
(1582)
1 неделю назад
На самом деле, твой подход с использованием встроенной функции sum() для вычисления суммы элементов списка является не только правильным, но и более эффективным и чистым способом решения задачи по сравнению с циклом. Встроенная функция sum() предназначена для того, чтобы вычислять сумму чисел в итерируемых объектах, таких как списки, и она делает это оптимально.
Вариант, предложенный в твоём примере от Яндекса, использует явный цикл for для прохождения по всем элементам списка и добавления каждого из них к переменной sum_area. Этот способ полностью корректен и хорошо иллюстрирует, как работает накопление суммы в цикле, что может быть полезно для обучения или в случаях, когда нужна дополнительная обработка данных во время итерации.
В твоём же случае, когда задача состоит просто в вычислении суммы без дополнительных условий или операций, использование sum() предпочтительнее. Это сокращает количество кода, уменьшает возможность ошибок и повышает читаемость.
Оба способа корректно решают задачу и дают одинаковый результат, но твой метод является более pythonic, как говорится - следует философии и стилю Python как языка программирования ?
Mark TimofeevУченик (151)
1 неделю назад
мне кажется им стоило сразу начать с тут более хорошо показан смысл
Depeche Mode XXI
Хватит планировок, даёшь музыку: посчитаем на Python, сколько альбомов выпустила музыкальная группа Depeche Mode в 21 веке.
# Список годов, в которые Depeche Mode выпускала альбомы
years = [
1981, 1982, 1983, 1984, 1986, 1987, 1990,
1993, 1997, 2001, 2005, 2009, 2013, 2017
]
# В этой переменной будем подсчитывать количество альбомов.
# Пока что в ней ничего нет, она равна нулю.
count = 0
for year in years:
if year > 2000:
# Каждый раз загибаем по одному пальцу,
# обнаружив альбом, выпущенный в 21 веке.
count += 1 # Это то же самое, что count = count + 1
print('Выпущено альбомов в XXI веке:', count)
Chudo_ChudnoeМастер (1582)
1 неделю назад
Бро, не поверишь, я тут уже целую неделю переслушиваю все альбомы DM ?
Пример с Depeche Mode и их альбомами хорошо иллюстрирует использование циклов для решения практической задачи подсчета определенных условий, и ничего тут странного нет) По сути, этот способ не только более интересен в контексте обучения, но и помогает понять и оценить важность итерационных процессов в python.
Не сочти за грубость, но я чутка поправил твой код)
В комменте дальше, тут места не хватает)
Chudo_ChudnoeМастер (1582)
1 неделю назад
Такой подход подойдёт для случаев, когда необходимо выполнить дополнительные проверки или операции во время итерации по данным. Так чаще бывает)
# Список годов, в которые Depeche Mode выпускала альбомы
years = [
1981, 1982, 1983, 1984, 1986, 1987, 1990,
1993, 1997, 2001, 2005, 2009, 2013, 2017
]
# Переменная для подсчета количества альбомов, выпущенных в 21 веке
count = 0
# Проходим по списку годов
for year in years:
if year > 2000:
# Подсчитываем альбомы, выпущенные в 21 веке
count += 1
print('Выпущено альбомов в XXI веке:', count)
Для решения этой задачи никаких сравнений не понадобится; суммировать нужно все значения списка, без исключений.
Создаём переменную sum_area, к значению которой будем по очереди прибавлять значения каждого из элементов списка. Пока что значение этой переменной — ноль.
В цикле перебираем все элементы списка flat, как и в прошлой задаче.
Значение каждого элемента списка прибавляем к sum_area.
Напечатаем сообщение, в котором укажем общую площадь квартиры.
а вот мой способ, у меня возник вопрос, это одно и тоже или яндекс не компетентно объясняет