在 Python 中计算数字的总和
-
在 Python 中使用
sum()
和str()
函数计算数字的总和 -
在 Python 中使用
sum()
和map()
函数计算数字的总和 - 在 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 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