在 Python 中计算数字的总和

Manav Narula 2023年1月30日 2022年5月18日
  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
Author: 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