Python 我不能循环函数中的字符串

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

我想创建一个函数,它可以将一个正整数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循环无法成功循环。它只循环一次,然后返回值

我的问题是:

  • 我的代码怎么了

  • 我需要首先将数字转换为字符串的原因是整数不能是iterable

  • 希望有人能帮我。
    谢谢

    问题在于,每次循环迭代时,您都会将
    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,你欠我一杯啤酒!金克斯,你欠我一杯啤酒!