在 Python 中計算數字的總和

Manav Narula 2023年1月30日
  1. 在 Python 中使用 sum()str() 函式計算數字的總和
  2. 在 Python 中使用 sum()map() 函式計算數字的總和
  3. 在 Python 中建立一個使用者定義的函式來計算數字的總和
在 Python 中計算數字的總和

本教程將演示在 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 Narula
Manav Narula avatar Manav Narula avatar

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

相關文章 - Python Math