[英]Python function to sum digits
我想让函数取列表中每个数字的最后一位并将它们加起来。 因此,例如,下面的函数将返回“ 10”。
def getSumOfLastDigits(numList):
x = sum(int(num[-1:]) for num in numList)
print x
getSumOfLastDigits([1, 23, 456])
>>>10
这是我收到的,而不是预期的“ 10”
def getSumOfLastDigits(numList):
x = sum(int(num[-1:]) for num in numList)
print x
getSumOfLastDigits([1, 23, 456])
太多的工作。
def getSumOfLastDigits(numList):
return sum(x % 10 for x in numList)
x = sum(num%10 for num in numList)
你不能索引一个数字; 数字不是数字序列(在内部,它不以10为基数表示)。 您可以使用数学运算来获取数字的最后一位:用10除以余数。我们使用%
运算符执行此操作。
也:
不要在函数中打印该值,请返回它。 让调用代码决定如何处理该值。 计算和输出是单独的任务,应分开存放。
避免在变量名中指示数据类型-是的,即使在Python中也是如此。 建立实际上没有必要的假设不是一个好主意。 例如,您可以在此处使用任何类型的序列。 表示您有多个数字的最简单方法是使用复数numbers
。 这也意味着您要使用完整的单词,而人们不必考虑“ num”的缩写。
如果您只是立即使用一次,则无需将表达式的结果分配给临时变量。 名称x
不会告诉我们任何信息,因此请切掉。
get
被大多数Pythonista认为是函数名称的丑陋前缀。 该函数计算并返回一个值已经很明显了。 对于这些功能,请使用名词类型的名称,对于主要旨在处理某些现有数据的功能,请使用动词类型的名称。
从而:
def sum_of_last_digits(numbers):
return sum(number % 10 for number in numbers)
def getSumOfLastDigits(numList):
total=0
for item in numList:
newItem=str(item)
length=newItem[len(newItem)-1]
total+=int(length)
return total
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.