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