繁体   English   中英

Python函数求和

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM