0

我正在上一门关于 pyschools 的课程,试图学习 Python。该问题要求输入数字列表并添加输入数字的最后一位。这是我想出的代码。不笑(我是新人)。该代码适用于我的 Python 2.7.5 版本。但是,我在他们的网站上收到错误消息。有没有更好的方法来添加列表中的最后一个数字?我想我将列表转换为整数,他们的网站不喜欢这样,但我不确定。感谢您的帮助,谢谢。

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__'
4

2 回答 2

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
>>> 
于 2013-07-13T03:25:44.663 回答
0

If your numList is a list of string, then you shouldn't get that error based on the code you provided. Otherwise, if it's a list of numbers, then you cannot access the last digit of an integer with num[-1]. What instead you can do is to take the modulo of 10:

def getSumOfLastDigits(numList): 
    total = 0 
    for num in numList: 
        total += num % 10
    return total
于 2013-07-13T03:08:20.397 回答