Print Digits in Words

Print digits of a number in words recursively.

IntermediatePhase 3 - Level 2: Advanced RecursionExample 7 of 10
print-digits-in-words.py
1def print_digit_word(digit):
2 words = ["Zero", "One", "Two", "Three", "Four", "Five", "Six", "Seven", "Eight", "Nine"]
3 return words[digit]
4
5def digits_in_words(n):
6 # Base case
7 if n == 0:
8 return
9
10 # Recursive case
11 digits_in_words(n // 10)
12 digit = n % 10
13 print(print_digit_word(digit), end=" ")
14
15# Test
16num = int(input("Enter a number: "))
17digits_in_words(abs(num))
18print()

Output

Enter a number: 123
One Two Three

What's going on

Recurse first, then print current digit.

Key Concepts:

Recurse on remaining digits first
Print current digit word after recursion
Processes digits left to right