Найти суму четных чисел в диапазоне от а до b (Python)
Пользователь вводит 2 числа a и b. Нужно найти сумму только четных чисел между ними (и включая их). Не знаю как закончить код и правильный ли он вообще.
Во втором аргументе range нужно указать число на 1 больше, т.к. итоговый диапазон не включает последнее число, т.е. при range(2,8) мы получим набор чисел от 2 до 7.
После того, как проверилось наше условие на четность, нужно сложить все подходящие числа. Для этого еще перед началом цикла нужно создать нулевую переменную (например, sum_numbers) и потом к ней каждый раз прибавлять каждое подходящее число. Это можно сделать через sum_numbers = sum_numbers + i или наиболее распространенный вариант sum_numbers += i .
Напишите программу которая вычисляет сумму всех четных чисел в диапазоне от 1 до n python
В школе на информатике в 9 классе детям преподают Python! Вообще, это классно и лучше всяких бейсиков, фортранов и паскалей. Главное, чтобы преподаватель мог хорошо объяснить и заинтересовать детей в программировании.

Соответственно, родителям приходится разбираться с домашними и самостоятельными работами по программированию:)
Вот очередная такая домашка:
В массиве случайных чисел из отрезка от 1 до 100 найти сумму всех четных элементов массива.
Решение:
import random
mas = []
sum = 0
# Генерируем массив из 18 чисел от 1 до 100:
mas = [ random.randint ( 1 , 100 ) for i in range ( 1 , 18 )]
print (mas)
# Проходим в цикле по массиву и все четные числа суммируем:
for i in mas:
if ( i % 2 ) == 0 :
sum += i
print (sum)
Ответ:
Вариант с выводом ответа с интерполяцией строк:
import random
mas = []
sum = 0
# Генерируем массив из 18 чисел от 1 до 100:
mas = [ random.randint ( 1 , 100 ) for i in range ( 1 , 18 )]
print ( ‘Массив: %s’ % mas)
# Проходим в цикле по массиву и все четные числа суммируем:
for i in mas:
if ( i % 2 ) == 0 :
sum += i
print ( ‘Сумма четных элементов: %s’ % sum)
Ответ:
Комментарии ( 0 )
Оставьте свой комментарий
- Опубликовать комментарий как Гость.
Интересные статьи:
![]()
Jeppesen FD PRO and JDM PRO
Фирма Jeppesen в лице Kellie Isaac — руководителя отдела обновления баз данных анонсировала новое аэронавигационное приложение для iPad — Jeppesen FliteDeck PRO, работающую совместно с Jeppesen Distribution Manager Pro (JDM Pro). Jeppesen FliteDeck Pro ориентирован на коммерческих и военных эксплуатантов ВС. Частная и бизнес авиация радостно использует обычную версию Jeppesen Mobile FliteDeck.
![]()
Оптимизация и Настройка операционной системы Windows 7
Не смотря на то, что маркетологи Microsoft рвут на своих попах волосы, уверяя пользователей, что их очередная новая операционная система просто суперская и не имеет ни одного изъяна и косяка и совершенно не требует абсолютно никакой дополнительной настройки, им мало кто верит. Тем более, что практика показывает, что операционные системы Windows — как российские автомобили: чтоб нормально поехать на нем.
![]()
Код зоны покрытия для Jepp View, eLink и Flite Deck
При обновлении программы Jepp View иногда может понадобиться код зоны покрытия навигационной БД (coverage code). В течение последних нескольких лет Jeppesen программирует и выдает своим клиентам такие серийные номера для программ при последующих обновлениях которых не нужно вводить coverage code — он уже не нужен, т.к. программа установки обновления автоматически его считывает в системе на.
![]()
Сбербанк онлайн — дырка в приложении для iPad
Многие клиенты сбербанка пользуются сервисом «Сбербанк онлайн» для управления своими финансами и платежами. У данного сервиса есть детище — приложение для iPad, имеющее похожее название — «Сбербанк ОнЛ@йн«. В принципе, приложение «Сбербанк ОнЛ@йн» не плохое и довольно удобное. По сравнению с доступом через сайт к сервису «Сбербанк онлайн» гораздо проще реализована авторизация — нужно ввести только собственный пароль. Из.
![]()
Шезлонг Ларри или Мечты сбываются
В 1982 году Ларри Уолтерс, пенсионер из Лос-Анджелеса решил осуществить давнюю мечту — полететь, но не на самолете. Он изобрел собственный способ путешествовать по воздуху. Уолтерс привязал к удобному креслу сорок пять метеорологических шаров, наполненных гелием, каждый из которых имел метр в диаметре. Он уселся в кресло, взяв запас бутербродов, пиво и дробовик. По сигналу, его друзья отвязали веревку.
![]()
Швеция изобрела слово, чтобы стыдить людей за полеты
Greta Thunberg — девочка, которая ненавидит авиацию Странно, что это произошло в одной из стран, расположенной за Полярным кругом, так как именно шведы много и часто летают, чтобы погреть свои замороженные пальцы ног в более тёплых южных странах. Массовая «миграция» из северной Европы в сторону юга обычно начинается к концу лета и достигает пика, когда наступает зимняя полярная ночь. Но сегодня все больше и больше шведов отправляются в долгий путь.
![]()
Методики определения эксплуатационных минимумов
Каждый эксплуатант (авиакомпания) при выполнении полетов должен тем или иным способом определять эксплуатационные минимумы для взлета и захода на посадку для каждого аэродрома с учетом: наличия/отсутствия/работосопособности системы огней ВПП, функционирования наземных и бортовых навигационных средств, препятствий в районе аэродрома и минимума командира воздушного судна. Эксплуатационные минимумы.
Сумма четных целых чисел от a до b в Python
В качестве примера я привел print (sum_even (3,7)), а результат равен 0. Я не могу понять, что не так.
10 ответов
Ваш отступ выключен, он должен быть:
чтобы return count не попадал в ваш цикл for (в этом случае он возвращался на 1-ю итерацию, заставляя его возвращать 0)
(И измените [i] на i )
ПРИМЕЧАНИЕ: другая проблема — вы должны быть осторожны при использовании range :
поэтому, если вам нужно позвонить:
- sum_even(3,7)
- sum_even(3,8)
прямо сейчас они оба выводят 10 , что неверно для суммы четных целых чисел от 3 до 8 включительно.
Что вы действительно хотите, вероятно, это вместо этого:
Переместите оператор return из области цикла for (иначе вы вернетесь на первую итерацию цикла).
Измените count += [i] на count += i .
Также (не уверен, что вы знали это), range(a, b, 1) будет содержать все числа от a до b — 1 (не b ). Кроме того, вам не нужен аргумент 1 : range(a,b) будет иметь тот же эффект. Поэтому, чтобы содержать все числа от a до b , вы должны использовать range(a, b+1) .
Вероятно, самый быстрый способ добавить все четные числа от a до b —
Вы можете сделать это намного проще, правильно используя аргумент шага для функции диапазона.
Вам не нужен цикл; вы можете использовать простую алгебру:
Edit:
Как указывал NPE, мое исходное решение выше использует математику с плавающей запятой. Я не был слишком обеспокоен, так как накладные расходы математики с плавающей запятой ничтожны по сравнению с удалением цикла (например, при вызове sum_even(10, 10000) ). Кроме того, в расчетах используются (отрицательные) степени, равные двум, поэтому не должны подвергаться ошибкам округления.
Во всяком случае, с простым трюком умножения всего на 4, а затем снова делением в конце, мы можем использовать целые числа по всему, что предпочтительнее.
Я бы хотел, чтобы вы видели, как работают ваши петли, если b близок к 2 ^ 32;-) Поскольку Мэтью сказал, что нет необходимости в петле, но он не объясняет, почему.
Проблема заключается в простой арифметической последовательности wiki. Сумма всех элементов в такой последовательности:
где «a» — это первый элемент, последний — «b» , а «n» — число, если элементы. Если мы сделаем четные числа «a» и «b» , мы сможем легко решить данную проблему. Поэтому создание «a» и «b» равно просто:
Теперь подумайте, сколько у нас элементов между двумя четными числами — это:
Поместите его в уравнение, и вы получите:
чтобы ваш код выглядел следующим образом:
Конечно, вы можете добавить код для предотвращения того, чтобы быть равным или больше, чем b и т.д.
Сумма четных целых чисел от a до b в Python
В качестве примера я привел print (sum_even (3,7)), а результат равен 0. Я не могу понять, что не так.
Ваш отступ выключен, он должен быть:
чтобы return count не попадал в ваш цикл for (в этом случае он возвращался на 1-ю итерацию, заставляя его возвращать 0)
(И измените [i] на i )
ПРИМЕЧАНИЕ: другая проблема — вы должны быть осторожны при использовании range :
поэтому, если вам нужно позвонить:
-
sum_even(3,7)
sum_even(3,8)
прямо сейчас они оба выводят 10 , что неверно для суммы четных целых чисел от 3 до 8 включительно.
Что вы действительно хотите, вероятно, это вместо этого:
Переместите оператор return из области цикла for (иначе вы вернетесь на первую итерацию цикла).
Измените count += [i] на count += i .
Также (не уверен, что вы знали это), range(a, b, 1) будет содержать все числа от a до b — 1 (не b ). Кроме того, вам не нужен аргумент 1 : range(a,b) будет иметь тот же эффект. Поэтому, чтобы содержать все числа от a до b , вы должны использовать range(a, b+1) .
Вероятно, самый быстрый способ добавить все четные числа от a до b —
Вы можете сделать это намного проще, правильно используя аргумент шага для функции диапазона.
Вам не нужен цикл; вы можете использовать простую алгебру:
Edit:
Как указывал NPE, мое исходное решение выше использует математику с плавающей запятой. Я не был слишком обеспокоен, так как накладные расходы математики с плавающей запятой ничтожны по сравнению с удалением цикла (например, при вызове sum_even(10, 10000) ). Кроме того, в расчетах используются (отрицательные) степени, равные двум, поэтому не должны подвергаться ошибкам округления.
Во всяком случае, с простым трюком умножения всего на 4, а затем снова делением в конце, мы можем использовать целые числа по всему, что предпочтительнее.
Отступы имеют значение в Python. Код, который вы пишете, возвращается после обработки первого элемента.
Я бы хотел, чтобы вы видели, как работают ваши петли, если b близок к 2 ^ 32;-)
Поскольку Мэтью сказал, что нет необходимости в петле, но он не объясняет, почему.
Проблема заключается в простой арифметической последовательности wiki. Сумма всех элементов в такой последовательности:
где «a» — это первый элемент, последний — «b» , а «n» — число, если элементы.
Если мы сделаем четные числа «a» и «b» , мы сможем легко решить данную проблему.
Поэтому создание «a» и «b» равно просто:
Теперь подумайте, сколько у нас элементов между двумя четными числами — это:
Поместите его в уравнение, и вы получите:
чтобы ваш код выглядел следующим образом:
Конечно, вы можете добавить код для предотвращения того, чтобы быть равным или больше, чем b и т.д.