2013-07-13 97 views
0

我正在學習嘗試學習Python的學校課程。該問題要求輸入數字列表並添加輸入數字的最後一位數字。這是我想出的代碼。不笑(我是新的)。代碼在我的Python 2.7.5版本中運行。但是,我在他們的網站上遇到錯誤。有沒有更好的方法來添加列表中的最後一個數字?我想我是把一個列表作爲一個整數,他們的網站不喜歡這個,但我不知道。感謝您的幫助,謝謝。在Python中添加數字列表中的最後幾位數

def getSumOfLastDigits(numList): 
    total = 0 
    for num in numList: 
     total += int(num[-1]) 
    return total 

input_Nums = raw_input('Enter the list of numbers: ').split(',') 

print getSumOfLastDigits(input_Nums) 

錯誤:

Traceback (most recent call last): 
File "Code", line 4, in getSumOfLastDigits 
TypeError: 'int' object has no attribute '__getitem__' 
+0

由於@Jared。在發佈之前,我應該學會格式化。 – user2578349

回答

0

如果您numList是字符串列表,那麼你不應該得到根據您所提供的代碼錯誤。否則,如果它是一個數字列表,則不能訪問num[-1]的整數的最後一位數字。相反,你可以做的是採取模10:

def getSumOfLastDigits(numList): 
    total = 0 
    for num in numList: 
     total += num % 10 
    return total 
+0

'raw_input'提供一個字符串,OP不會在索引後轉換 – Jared

+0

這很讓人困惑。 @Jared – zhangyangyu

+0

我認爲OP可能會讓自己感到困惑,無論他使用的是字符串還是int,他提供的代碼都不會產生任何錯誤。 – cheeyos

1

我不知道爲什麼發生錯誤,它不應該發生。爲了實現你的目標,有更多的pythonic方式。

對於整數的列表:

>>> ints = [10, 11, 12, 11110, 112] 
>>> sum(x % 10 for x in ints) 
5 
>>> 

對於含有由分隔數字的字符串,:

>>> ints = '10, 11, 12, 11110, 112' 
>>> sum(int(x[-1]) for x in ints.split(',')) 
5 
>>> 
+0

我一點也不感謝你。 pythonic的方式很酷。我之前並不明白,我是以字符串形式接受這些數字的。我認爲他們是一個數字清單。我認爲學習網站希望我以數字方式進行,而不是我用過的字符串方式。這是很棒的信息。感謝你對我的容易。 – user2578349

相關問題