簡體   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