在 Python 中計算數字的總和
-
在 Python 中使用
sum()
和str()
函式計算數字的總和 -
在 Python 中使用
sum()
和map()
函式計算數字的總和 - 在 Python 中建立一個使用者定義的函式來計算數字的總和
![在 Python 中計算數字的總和](/img/Python/feature-image---sum-of-digits-in-python.webp)
本教程將演示在 Python 中計算數字的總和。我們將取一個整數,找到它的位數並計算它的總和。
在 Python 中使用 sum()
和 str()
函式計算數字的總和
sum()
函式計算迭代中元素的總和。此方法將整數轉換為其數字列表並計算總和。
我們可以利用 str()
函式將整數轉換為字串。在此之後,我們將使用列表推導式建立一個列表,其中我們遍歷字串並將字元新增到列表中。
同樣,使用 int()
函式將每個字元轉換為整數。這個列表的總和是計算出來的,是數字的總和。
例子:
x = 568
s = sum([int(i) for i in str(x)])
print(s)
輸出:
19
在 Python 中使用 sum()
和 map()
函式計算數字的總和
這種方法比以前的方法稍微快一些,因為我們消除了 for
迴圈的使用。我們使用 map()
函式,該函式可以將給定函式應用於可迭代的每個元素。
我們將整數轉換為字串,然後使用 map()
方法將 int()
函式應用於每個字串元素。這個數字集合再次使用 sum()
函式計算。
x = 568
s = sum(map(int, str(x)))
print(s)
輸出:
19
在 Python 中建立一個使用者定義的函式來計算數字的總和
我們還可以建立函式來計算 Python 中的數字總和。為此,我們將使用重複劃分的概念。
將建立一個 while
迴圈,直到給定的數字大於 0。在每次迭代中,我們將通過將數字除以 10 並儲存其餘數來從右邊找到數字。
%
運算子執行此操作。然後我們通過將其除以 10 來更新原始數字,然後迴圈再次執行。
我們在每次迭代中更新數字總和。我們使用//
運算子更新數字,執行樓層劃分;它丟棄任何十進位制值。
我們在下面的程式碼中實現了上面的邏輯。
def sd(x):
s = 0
while x:
s += x % 10
x //= 10
return s
s = sd(568)
print(s)
輸出:
19
要一步計算餘數併除數,我們可以使用 divmod()
函式。在這個函式中,我們可以指定被除數和除數,它會在一個元組中返回結果和餘數。
例子:
def sd(x):
s = 0
while x:
x, r = divmod(x, 10)
s += r
return s
s = sd(568)
print(s)
輸出:
19
另一種提高程式碼和執行速度的方法是不使用增強的賦值語句。
請參閱下面的程式碼。
def sd(x):
s = 0
while x:
s, x = s + x % 10, x // 10
return s
s = sd(568)
print(s)
輸出:
19
Manav is a IT Professional who has a lot of experience as a core developer in many live projects. He is an avid learner who enjoys learning new things and sharing his findings whenever possible.
LinkedIn