Как сложить все данные str? в python

Требуется, чтобы из строки (например, "123") получалось число суммы всех значений (в данном случае 6). Если полученное число больше двух символов, то они должны быть сложены друг с другом. Однако, код выдаёт просто 3. Где может быть ошибка в коде?

def plus(a):
    a = list(a) 
    for i in a:
        intnums = int(i) 
        intlist = []
        intlist.append(intnums)
        continue
    summary = sum(intlist)
    if summary >= 10:
        summary = list(summary)
        summary = sum(summary)
    return summary

print(plus("123"))

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

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

Сумму можно найти методом sum, который есть в списках, но для этого нужно чтобы список состоял из целых чисел

def plus(a):
    a = list(a) 
    a_int = [int(i) for i in a]
    summary = sum(a_int)
    if summary >= 10:
         summary = sum([int(i) for i in list(str(summary))])
    return summary 

Или в одну строку для нахождения суммы

summary = sum([int(i) for i in a])

Вывод:

>>> plus("123") 
6
>>> plus("1234") 
1
>>> plus("12345") 
6

Да, и если задание ограничивает только 2мя символами, тогда надо написать так условие

    if 10 <= summary < 100:
→ Ссылка
Автор решения: Harvar
def plus(a):
    a = list(a)  # "1", "2", "3" ...
    intlist = [] # число до проверки на >=10
    intlist2 = [] # число, если оно >=10

    for i in a:
        intnums = int(i)  # "1", "2", "3"... в 1, 2, 3...
        intlist.append(intnums)  # [1,2,3...]
        continue

    summary = sum(intlist)   # складывает значения intlist

    if summary >= 10:
        intlist_to_strlist = list(str(summary)) # если число больше 10, то конвертирует в список, чтобы потом разбить на знаки.

        for i in intlist_to_strlist:   # Конвертирует знаки в числа.
            intnums2 = int(i)
            intlist2.append(intnums2)
            continue
        summary = sum(intlist2)   # складывает эти числа

    return summary

print(plus("12345"))
→ Ссылка
Автор решения: CrazyElf

Всё это можно сделать гораздо короче:

def plus(x):
    while len(x) > 1:
        x = str(sum(map(int, x)))
    return x

print(plus("123"))
# 6
→ Ссылка