Digit_sum


#1



why is it not working showing the error 
 #Your function fails on digit_sum(434). It returns 4 when it should return 11.
def digit_sum(x):
    sum = 0
    while(x > 0):
        x = x % 10
        sum += x
        x = x/10
    return sum


#2
def digit_sum(n):
    sum = 0
    for x in str(n):
        result += int(x)
    return result
print digit_sum(20)

You dont need a while loop using a for loop for small bits of code is much easier and practical. I modified your code to work with a for loop


#3

Hi there
I see that you are trying to do this harder way.
I have modified your code a bit and it worked for me

def digit_sum(n):
    sum = 0
    while (n>0):
        x = n % 10
        sum += x
        n = n//10
    return sum

Also floor division requires two slashes.


#4

hey, i too got the answer but why n/10 do not work as in other languages dividing a INTEGER number BY 10 should give like as 156/10 = 15 and what it differs in python with floor division 156//10 = 15, do we seriously need such crazy operators i wonder. I would love the your answer. Thnq by the way.


#5

The easiest answer I have found is here
https://www.codecademy.com/forum_questions/5384587e52f863dcb8001c82

By using n/10 in your example you will get 15.6 not 15. And as you will see in the answer from the link, floor division (//) cuts the part after the period so it leaves 15.


#6

here is my solutions for this practice

def digit_sum(n):
    result = 0
    num = str(n)
    for i in range(0,len(num)):
	    result += int(num[i])
    return result

def digit_sum(n):
    result = 0
    for digit in str(n):
        result += int(digit)
    return result