2015-12-11 37 views
0

我試圖添加最初在字符串中的整數(例如num = "657647")。在列表中添加整數

我將整數轉換爲整數,方法是使用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)for i in string)' –

+0

Paul的實現不僅更簡單,也不假定字符串有7位數字。 – Jerry101

回答

2

如果我輸入的字符串8101818,我想總和只是27

在Python中,縮進事項。

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

您可以在下面嘗試,如果你想修改你的代碼,但什麼叫囂了非常Python化,

str = "8101818" 

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

print sum 
27 
0

你打印在循環內部,因此每次都會打印。嘗試從循環中刪除它,它會工作。