sum of digits in a number python
digit_sum = lambda s: sum(int(digit) for digit in str(s)) #without recursion #sum of digits using recursion dsum = 0 # we define dsum outside of the function so its value isn't reset every time the function gets called recursivley def rdigit_sum(s): global dsum # making dsum 'global' allows us to use it a function if s: # checks if s has digits to add to dsum dsum += s%10 # adds the current units digit to dsum s = s//10 # removes the current units digit else: # if there are no digits left s = dsum # this block reassigns s to dsum, then resets dsum to 0 so dsum doesn't already have a value if this function is called more than once in a program dsum = 0 return s return rdigit_sum(s) # this is the 'recursive' part of the program that calls the function again