Предмет: Информатика, автор: efonghujWEFOqer

(Pyton)Составьте программу вычисления суммы нечетных чисел в диапазоне от 1 до 10.

Ответы

Автор ответа: MaxLevs
0

Ответ:

def reduce(function, iterable, initializer=None):

   it = iter(iterable)

   if initializer is None:

       value = next(it)

   else:

       value = initializer

   for element in it:

       value = function(value, element)

   return value

a, b = 1, 10

print(reduce(lambda s, n: s + n, range(a, b+1, 2), 0))


MaxLevs: Грамотно заданный вопрос - половина ответа
efonghujWEFOqer: Ну ты напишешь?
MaxLevs: Я уже дал ответ, максимум - могу убрать библиотеку
KnowsUser1: Ваше решение мне чем то напомнило тех ребят, которые создали проект FizzBuzzEnterpriseEdition) Я, конечно, понимаю, что ваша функция reduce это ваша реализация одноимённой функции из модуля functools, но эта задача, если хардкодить значения границ диапазона, в котором надо числа складывать, решается в одну строку и без импортов дополнительных модулей)
MaxLevs: Я бы посмотрел
MaxLevs: Скинь в комменты свой варинат
MaxLevs: Ты про print(sum(range(a, b+1, 2)))?
KnowsUser1: с полным хардкодом границ:
print(sum( range(1, 10+1, 2 )))
MaxLevs: Ну, это было бы вообще пик, как по мне. Но мне нравится такой ход мыслей )
KnowsUser1: просто в данном случае использование reduce немного даже уменьшает читаемость, особенно для неопытных маслят, ибо если прошаренный человек знает, что это за функция и с чем её едят, то те самые неопытные маслята от таких решений спокойно могут заработать пост-травматический синдром))
Автор ответа: mithridat
1

Ответ:

sum = 0

i = 1

while i <= 10:

   sum += i

   i += 2

print(sum)

Похожие вопросы