Python 我不能循环函数中的字符串
我想创建一个函数,它可以将一个正整数n作为输入,并返回该数字所有位数的总和 下面是我的代码:Python 我不能循环函数中的字符串,python,Python,我想创建一个函数,它可以将一个正整数n作为输入,并返回该数字所有位数的总和 下面是我的代码: def digit_sum(n): string = str(n) for number in string: num = int(number) total = 0 total += num return total 但错误信息是: 您的函数在数字和(434)上失败。当它应该返回11时,它返回4 据我所知,for
def digit_sum(n):
string = str(n)
for number in string:
num = int(number)
total = 0
total += num
return total
但错误信息是:
您的函数在数字和(434)上失败。当它应该返回11时,它返回4
据我所知,for循环无法成功循环。它只循环一次,然后返回值
我的问题是:
谢谢 问题在于,每次循环迭代时,您都会将
total
的值重置回0
。将初始化移动到循环上方,如下所示
def digit_sum(n):
string = str(n)
total = 0
for number in string:
num = int(number)
total += num
return total
问题在于,每次循环迭代时,您都会将
total
的值重置回0
。将初始化移动到循环上方,如下所示
def digit_sum(n):
string = str(n)
total = 0
for number in string:
num = int(number)
total += num
return total
在每次迭代中,您都要重置
total
。将total=0
移到for循环之外。每次迭代时都要重置total
。将total=0
移动到for循环外部。问题在于,您正在将循环内的total设置为0。这意味着每次通过时,它都采用最新的值o+num,该字符串的最后一位是4。相反,请尝试以下方法:
def digit_sum(n):
string = str(n)
total = 0
for number in string:
num = int(number)
total += num
return total
问题是,您正在循环中将total设置为零。这意味着每次通过时,它都采用最新的值o+num,该字符串的最后一位是4。相反,请尝试以下方法:
def digit_sum(n):
string = str(n)
total = 0
for number in string:
num = int(number)
total += num
return total
只需将
total=0
移出你的循环。只需将total=0
移出你的循环。Jinx,你欠我一杯啤酒!金克斯,你欠我一杯啤酒!