2015-12-11 15 views
0

Я пытаюсь добавить целые числа, которые изначально находятся в строке (например, num = "657647").Добавление целых чисел в список

Я преобразовал целые числа в int с помощью цикла for и преобразования всех из них.

В результате появился список? Думайте, что это 6 5 7 6 4 7, с каждым номером на новой строке.

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

Это пример кода, что я пытаюсь сделать:

def addingNumbers(string): 
    double_numbers ="" 
    theSum = 0 

    for i in range(0,7) : 
    convertingInt = int(string[i]) 
    theSum += convertingInt 
    print theSum 

Если я введите строку 8101818, я хочу, чтобы сумма будет только 27, но вместо этого она печатает следующее:

>>> addingNumbers("8101818") 
8 
9 
9 
10 
18 
19 
27 

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

Как мне это сделать?

+1

Также попробуйте 'print sum (int (i) для i в строке)' –

+0

Реализация Павла не только проще, она не предполагает, что строка имеет 7 цифр. – Jerry101

ответ

2

Если я введите строку 8101818, я хочу, чтобы сумма будет только 27

В питона, имеет значение отступа.

def addingNumbers(string): 
    double_numbers ="" 
    theSum = 0 

    for i in range(0,7) : 
    convertingInt = int(string[i]) 
    theSum += convertingInt 
    print theSum 

удалить уровень отпечатка с вашей линии печати, как и в приведенном выше коде, и он должен работать так, как вы ожидаете.

+1

Спасибо за помощь. Я полностью отказался от отступов. – AlexandrineH

1

одна линия для достижения цели можно сделать так:

a = "8101818" 
print sum(map(int,a)) 
+0

есть ли способ сделать это, но сохранить значение вместо его печати? Благодарю. неважно, вычислил это – AlexandrineH

+0

просто присвойте значение переменной, например 'total = sum (map (int, a))' – Hooting

0

Вы можете попробовать ниже, если вы хотите изменить свой код, но то, что уханье дал очень вещий,

str = "8101818" 

for i in str: 
    sum = sum + int(i) 

print sum 
27 
0

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

Смежные вопросы