在Python中对数字的各位求和
将数字的位数相加:
-
使用
str()
类将数字转换为字符串。 - 使用生成器表达式迭代字符串。
-
在每次迭代中,使用
int()
类将数字转换为数字。 -
将生成器对象传递给
sum()
函数。
num = 135
result_1 = sum(int(digit) for digit in str(num))
print(result_1) # 👉️ 9
# --------------------------------------------------
result_2 = sum(map(int, str(num)))
print(result_2) # 👉️ 9
# ---------------------------------------------------
# ✅ 将数字的数字相加而不转换为字符串
result_3 = 0
while num:
result_3 += num % 10
print(result_3)
num = num // 10
print(result_3) # 👉️ 9
第一个示例使用 str()
类和生成器表达式对数字中的数字求和。
num = 135
result_1 = sum(int(digit) for digit in str(num))
print(result_1) # 👉️ 9
字符串是可迭代的,而整数不是,所以我们必须将整数转换为字符串。
生成器表达式用于对每个元素执行一些操作,或者选择满足条件的元素子集。
在每次迭代中,我们将包含在字符串中的数字转换为整数并返回结果。
最后一步是将生成器对象传递给 sum()
函数。
sum
函数接受一个可迭代对象,从左到右对其项求和并返回总数。
第二个示例使用 map()
函数而不是生成器表达式进行转换。
num = 135
result_2 = sum(map(int, str(num)))
print(result_2) # 👉️ 9
map()
函数将一个函数和一个可迭代对象作为参数,并使用可迭代对象的每个项调用该函数。
map
函数使用字符串中的每个数字调用 int() 类,并返回一个我们可以直接传递给 sum() 函数的 map 对象。
或者,我们可以使用 while 循环。
将数字的位数相加:
- 为总和初始化一个变量并将其设置为 0。
-
当 number 变量为真时,使用
while
循环进行迭代。 -
使用
num % 10
获取数字的最右边的数字并将其添加到 sum 变量中。 - 通过除以 10 删除最右边的数字。
num = 135
result = 0
while num:
result += num % 10
num = num // 10
print(result) # 👉️ 9
我们使用 while 循环进行迭代,而 num 变量存储一个真值。
0
是一个假值,因此一旦将 num 变量设置为 0,就不再满足条件。
我们使用模 %
运算符来获取数字的最右边的数字。
模 %
运算符返回第一个值除以第二个值的余数。
print(135 % 10) # 👉️ 5
print(13 % 10) # 👉️ 3
一旦我们将结果变量重新分配为其当前值加上数字的最右边的数字,我们必须删除最右边的数字。
我们可以通过使用 floor 除法 //
和 10 来删除一个数字的最右边的数字。
print(135 // 10) # 👉️ 13
print(13 // 10) # 👉️ 1
整数的除法 /
产生一个浮点数,而整数的下除法 //
产生一个整数。
使用地板除法运算符的结果是数学除法的结果,将 floor()
函数应用于结果。
最终 1 除以 10,返回 0,while 循环停止迭代。
num = 135
result = 0
while num:
result += num % 10
num = num // 10
print(result) # 👉️ 9
print(num) # 👉️ 0
上面的代码片段在每次迭代中重新分配 num
变量的值,并最终将其设置为 0。
如果我们需要保留变量,请确保制作副本。
num = 135
# 👇️ make copy of num
num_copy = num
result = 0
while num_copy:
result += num_copy % 10
num_copy = num_copy // 10
print(result) # 👉️ 9
print(num_copy) # 👉️ 0
print(num) # 👉️ 135
相关文章
Python pandas.pivot_table() 函数
发布时间:2024/04/24 浏览次数:82 分类:Python
-
Python Pandas pivot_table()函数通过对数据进行汇总,避免了数据的重复。
在 Python 中将 Pandas 系列的日期时间转换为字符串
发布时间:2024/04/24 浏览次数:894 分类:Python
-
了解如何在 Python 中将 Pandas 系列日期时间转换为字符串
在 Python Pandas 中使用 str.split 将字符串拆分为两个列表列
发布时间:2024/04/24 浏览次数:1124 分类:Python
-
本教程介绍如何使用 pandas str.split() 函数将字符串拆分为两个列表列。
在 Pandas 中将 Timedelta 转换为 Int
发布时间:2024/04/23 浏览次数:231 分类:Python
-
可以使用 Pandas 中的 dt 属性将 timedelta 转换为整数。
Python 中的 Pandas 插入方法
发布时间:2024/04/23 浏览次数:112 分类:Python
-
本教程介绍了如何在 Pandas DataFrame 中使用 insert 方法在 DataFrame 中插入一列。
使用 Python 将 Pandas DataFrame 保存为 HTML
发布时间:2024/04/21 浏览次数:106 分类:Python
-
本教程演示如何将 Pandas DataFrame 转换为 Python 中的 HTML 表格。
如何将 Python 字典转换为 Pandas DataFrame
发布时间:2024/04/20 浏览次数:73 分类:Python
-
本教程演示如何将 python 字典转换为 Pandas DataFrame,例如使用 Pandas DataFrame 构造函数或 from_dict 方法。
如何在 Pandas 中将 DataFrame 列转换为日期时间
发布时间:2024/04/20 浏览次数:101 分类:Python
-
本文介绍如何将 Pandas DataFrame 列转换为 Python 日期时间。