sum of digits until single digit in python code example

Example 1: python sum of digits

def sum_digits(n):
    s = 0
    while n:
        s += n % 10
        n //= 10
    return s

Example 2: To add all the digits of a number till you get a single digit.

#include<bits/stdc++.h> 
using namespace std; 
int digSum(int n) 
{ 
	if (n == 0) 
	return 0; 
	return (n % 9 == 0) ? 9 : (n % 9); 
} 
int main() 
{ 
	int n = 9999; 
	cout<<digSum(n); 
	return 0; 
}

Example 3: 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