Найдите сумму всех четырехзначных чисел, сумма цифр каждого из которых равна 20

не могу решить, вот мой код в чем ошибка?

s = 0
for i in(1000,10000):
  while i > 0:
    a = i%10
    s += a 
    i //= 10
    if s == 20:
      print(i)
    s = 0

Ответы (2 шт):

Автор решения: oleksandrigo

Вроде вот так

result = 0

for number in range(1000, 10000):
    if sum(map(int, str(number))) == 20:
        result += number

print(result)
→ Ссылка
Автор решения: Vadim.Sharoikin

в одну строчку

print(sum(i for i in range(1000, 10000) if sum(map(int, str(i))) == 20))

ну или можете сделать так

def sum_of_digits(num):
    sum = 0
    while num > 0:
        sum += num % 10
        num //= 10
    return sum

sum_number = 0
    
for number in range(1000, 10000):
    if(sum_of_digits(number)==20):
        sum_number += number

print(sum_number)

еще 1 вариант в 1 строку с использованием filter

print(sum(filter(lambda number: sum(map(int,str(number)))==20, range(1000, 10000))))
→ Ссылка