我正在尝试执行一个 def 函数,让它添加输入的任何数字的数字,并在我输入数字“0”时停止,例如:
输入数字:25 位数总和:7
输入数字:38 位数总和:11
输入数字:0 循环结束
我已经为输入的数字的数字总和创建了代码,但是当程序完成添加时,循环就结束了,但我正在寻找的是再次询问另一个数字,直到最后我输入数字“0”循环结束:(
这是我的代码:
def sum_dig():
s=0
num = int(input("Enter a number: "))
while num != 0 and num>0:
r=num%10
s=s+r
num=num//10
print("The sum of the digits is:",s)
if num>0:
return num
sum_dig()
最佳答案
使用list()
将输入数字(作为字符串)分解为数字列表,并使用 list comprehension 对它们求和.使用 while True
进行无限循环,然后使用 return
退出。使用 f-strings or formatted string literals 打印数字总和:
def sum_dig():
while True:
num = input("Enter a number: ")
if int(num) <= 0:
return
s = sum([int(d) for d in list(num)])
print(f'The sum of the digits is: {s}')
sum_dig()
https://stackoverflow.com/questions/68247964/