Как посчитать сумму цифр числа пока оно не станет однозначным?
def countDigitsSum(num):
  return num if num < 10 else countDigitsSum(sum(map(int, str(num))))
или

def countDigitsSum(num):
  while num > 9:
    num = sum(int(n) for n in str(num))

  return num
Не нужны тут ни цикл, ни рекурсия:
def digital_root(n):
    return n % 9 or n and 9

s = input()
r = digital_root(int(s))
https://en.wikipedia.org/wiki/Digital_root