Find the number of digits in a number in Python

Hello coders!! In this section, we will learn how to find the number of digits in a number in a Python program.

Here, we will discuss two methods to implement this program:

  1. Iterative Method
  2. Recursive Method

Find the number of digits in a number in Python using Iterative Method

Let’s discuss the algorithm of this program for a better understanding of the working of this program.

Step1: Create a variable num that will store the integer given by the user and a flag variable count that will keep track of the number of iteration.

Step2: Define a while loop with a condition num!=0 so that it will iterate until the test expression is evaluated to false.

Step3: Inside of the while loop, divide the num in each iteration and increment the flag variable count by 1 until the num is reduced to 0.

Step4: Lastly, print the count that will give us the number of digits of that given number.

Example:

def count_digit(num):
    count = 0
    while num != 0:
        num //= 10
        count += 1
    return count
 
 
num = int(input("Enter a number to count: "))
print("Number of digits : % d" % (count_digit(num)))

Output1:

Enter the number to count: 
8764
Number of digits : 4

Output2:

Enter the number to count:
95175385462
Number of digits : 11

Find the number of digits in a number in Python using Recursive Method

Here we are doing the same program using recursion. (a technique using a function that calls itself until a specified condition is met)

def count_digit(num):
    if num < 10:
       return 1
    else:
       return 1 + count_digit(num/10)
 
 

num = int(input("Enter a number to count: "))
print("Number of digits : % d" % (count_digit(num)))

Output:

Enter the number to count: 
86759
Number of digits : 5

Hope you have enjoyed learning this article and learned how to find the number of digits of a number in Python.

Happy Coding!!

You can also read, Python program to find the Nth Decagonal Number

Leave a Reply

Your email address will not be published.