1

Нужно написать скрипт, который считывает с клавиатуры числа, складывает только четные и выводит результат на экран. Подскажите, пожалуйста, почему не считает?

a = int(input())
sum = 0
if a % 2 == 0:
    sum += a
    print(sum)

Выдает ошибку:

ValueError: invalid literal for int() with base 10: '2 3 4 6'

Qwertiy
  • 123,725
  • 1
    sum(filter(lambda e: e % 2 == 0, map(int, input().split()))). У Вас не считает потому что Вы читаете строку 2 4 6 8, и превращаете ее в int..., надо разделить сначала строку на числа. Либо sum(map(lambda x: int(x) if int(x) % 2 == 0 else 0, input().split())) – entithat Jul 07 '20 at 22:04
  • @entithat Спасибо. Понял – krumlyakov Jul 08 '20 at 08:28

2 Answers2

3

Попробуйте так:

a = map(int, input().split())
sum = 0

for v in a: if not v % 2: sum = sum + v

print(sum)

S. Nick
  • 74,889
  • пожалуйста, постарайтесь оставлять чуть более развёрнутые ответы. дополнить ответ можно, нажав [edit] – aleksandr barakin Jul 08 '20 at 00:28
3

https://ideone.com/7utSwB

print(sum(x for x in map(int, input().split()) if not x % 2))
Qwertiy
  • 123,725
  • пожалуйста, постарайтесь оставлять чуть более развёрнутые ответы. дополнить ответ можно, нажав [edit] – aleksandr barakin Jul 08 '20 at 00:28