Например, если у меня введенная строка 345. Я хочу, чтобы они были добавлены 3 + 4 + 5. Я видел это здесь, прежде чем просто не могу найти его снова. Спасибо!
s = raw_input()
print sum(int(c) for c in s.strip())
Может быть, моя схема пришла ко мне, но я бы использовал map
здесь. map(int, s)
говорит: "Возьмите эту последовательность, но со всеми ее элементами как целые числа". То есть, это то же самое, что и [int(x) for x in s]
, но быстрее читать/печатать.
>>> x = "345"
>>> sum(map(int, x))
12
map
в этом случае более питонна, чем выражение генератора.
data = "345"
print sum([int(x) for x in data])
sum(int(x) for x in data)
In [4]: text='345'
In [5]: sum(int(char) for char in text)
Out[5]: 12
или если вы хотите строку 3+4+5
:
In [8]: '+'.join(char for char in text)
Out[8]: '3+4+5'
Что сказал unutbu плюс, если число - это int, а не строка:
num = 345
sum([int(x) for x in str(num)])