Как найти сумму всех четных чисел питон

Пользователь вводит 2 числа a и b. Нужно найти сумму только четных чисел между ними (и включая их).
Не знаю как закончить код и правильный ли он вообще.

a=int(input("a = "))
b=int(input("b = "))
for i in range(a, b):
    if i%2==0:
        ??
print(sum)

задан 14 окт 2022 в 20:27

yana's user avatar

3

for i in range(a, b):

Во втором аргументе range нужно указать число на 1 больше, т.к. итоговый диапазон не включает последнее число, т.е. при range(2,8) мы получим набор чисел от 2 до 7.

??

После того, как проверилось наше условие на четность, нужно сложить все подходящие числа. Для этого еще перед началом цикла нужно создать нулевую переменную (например, sum_numbers) и потом к ней каждый раз прибавлять каждое подходящее число. Это можно сделать через sum_numbers = sum_numbers + i или наиболее распространенный вариант sum_numbers += i.

Ниже представлен один из правильных вариантов:

a=int(input("a = "))
b=int(input("b = "))
sum_numbers = 0
for i in range(a, b + 1):
    if i % 2 == 0:
        sum_numbers += i
print(sum_numbers)

ответ дан 15 окт 2022 в 2:24

ex5ense's user avatar

1

a=int(input("a = "))
b=int(input("b = "))
ans = []
for i in range(a, b+1):
    if i%2==0:
        ans.append(i)
print(sum(ans))

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

ответ дан 14 окт 2022 в 20:35

VanoKi's user avatar

VanoKiVanoKi

18210 бронзовых знаков

5

способ 1:

res = sum(i for i in range(a, b + 1) if i % 2 == 0)

способ 1.1:

res = sum(i for i in range(2 * (a + 1) // 2, 2 * b // 2 + 1, 2))

способ 2:

res = ((a + 1) // 2 + b // 2) * (b // 2 - (a + 1) // 2 + 1)

тут просто решаем как сумму арифметической прогрессии

ответ дан 14 окт 2022 в 21:29

Zhihar's user avatar

ZhiharZhihar

36.8k4 золотых знака25 серебряных знаков66 бронзовых знаков

Можно считать сумму только четных чисел с шагом 2:

a=int(input("a = "))
b=int(input("b = "))
s = 0
for i in range(a + a % 2, b + 1, 2):
    s += i
print(s)

или однострочник:

print(sum(i for i in range(a + a % 2, b + 1, 2)))

ответ дан 14 окт 2022 в 21:41

Nowhere Man's user avatar

Nowhere ManNowhere Man

11.5k17 золотых знаков15 серебряных знаков27 бронзовых знаков

How to find the sum of even numbers from entered N numbers?
i tried the below code but cant find the required output.

n=int(input('Enter the number:'))
if(n<=0):
    print('Enter a valid number')
else:
    sum=0
    count = 0
    while(n>0):
        for count in range (i % 2 ==0)
            sum+=n
             n-=1            
    print(sum)

Vadim Kotov's user avatar

Vadim Kotov

8,0348 gold badges48 silver badges62 bronze badges

asked Sep 3, 2017 at 15:33

Rajath c S's user avatar

9

this was more or less solved in comments by passing a range with step to sum. Most pythonic way:

sum(range(2,n+1,2))

In that particular case, this can be improved to use a simple math expression to reduce complexity

since the sum of integers from 1 to n is n*(n+1)//2, the sum of even numbers is
the double, with n divided by 2 (n is even here but it also works with odd numbers thanks to integer division) so:

n//2 * (n//2+1)

answered Sep 3, 2017 at 15:56

Jean-François Fabre's user avatar

В школе на информатике в 9 классе детям преподают Python! Вообще, это классно и лучше всяких бейсиков, фортранов и паскалей. Главное, чтобы преподаватель мог хорошо объяснить и заинтересовать детей в программировании.

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)

  Ответ:

[12, 36, 55, 36, 65, 81, 14, 56, 58, 59, 48, 2, 40, 76, 13, 39, 43]                                                                            

378

Вариант с выводом ответа с интерполяцией строк:

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)

 Ответ:

Массив: [45, 18, 9, 89, 66, 47, 100, 46, 37, 39, 13, 93, 49, 55, 78, 37, 33]                                                                   

Сумма четных элементов: 308

 

Комментарии ()

Оставьте свой комментарий

Лучший ответ

Юрий Моисеев

Оракул

(83754)


2 года назад

Нечетные отсеивать, а четные суммировать. Массив перебирать циклом range()

Остальные ответы

Сеня Сенечкин

Мудрец

(12840)


2 года назад

array = [] # тут массив
sum_numbers = 0
for number in array:
    if not number % 2:
        sum_numbers += number

print(sum_numbers)

Андрей

Высший разум

(267638)


2 года назад

array = […]
result = sum([v for v in array if v % 2 == 0])

Black Afgano

Просветленный

(21975)


2 года назад

# arr — исходный массив
# 1) для четных значений элементов
print(sum(filter(lambda x: x % 2 == 0, arr)))
# 2) для четных позиций элементов
print(sum(x for i, x in enumerate(arr) if i % 2 == 0))

Айран

Просветленный

(24575)


2 года назад

sum([i * ((i + 1) & 1) for i in lst])

a = [1, 2, 3, 4, -1, -3, 6, -6]
res = 0
for x in a:
    if x > 0 and x % 2 == 0:
        res+=x
print(res)

Похожие записи/страницы:

  • Написать программу нахождения произведение всех введенных пользователем чисел, исключая нули-Python(Питон)
  • Определить функцию, принимающую на вход целое число n и возвращающую список, содержащий n элементов, упорядоченных по…
  • Дана целочисленная квадратная матрица. определить используя программму сумму элементов в тех строках. которые не…
  • Дано целое число N (> 1) и набор из N чисел. Найти максимальную сумму двух соседних чисел из данного…
  • Назовём характеристикой числа количество сомножителей в разложении этого числа на простые…
  • Запросить у пользователя 2 комплексных числа в виде Re, Im. Вычислить их сумму, разность (из первого вычесть второе),…

Добавить комментарий