# Count number of digits in a string

In this post, I am going to explain how to count the number of digits in a string with Python. I will explain how I extract the digits out Strings. This is common in the Data Science Domain.

I can count the number of digits with a simple for loop. I loop through all characters in a string and check if it is a digit. In my previous post Three words in python, I explained the isdigit function already. I make use of this function in this problem too. I increment a counter when the character is a digit. A very simple for loop.

``````text = "I am 1 string with 2 digits"
count = 0
for char in text:
if char.isdigit():
count += 1
print("the number of digits is: "  + str(count))``````

Python has list comprehensions. With the build in function sum I can do the same. The sum function requires an iterable as input parameter.

``````text = "I am 1 string with 2 digits"
count = sum(1 for x in text if x.isdigit())
print("the number of digits is: "  + str(count))``````

The sum function can operate on an array of Booleans too. A True value will act like a 1 and a False will act like a 0. Consider the following example.

``````result = sum([True,True,False])
print(result)   # This will print 2 ``````

This results in the following result:

``````text = "I am 1 string with 2 digits"
count = sum(x.isdigit() for x in text)
print("the number of digits is: "  + str(count))``````

## With regular expressions

I can also use the re package. The following example first removes all non digit characters. The remaining is a string with only characters. This means that I only have to take the length of the string to know how many digits are present in the string.

``````import re
text = "I am 1 string with 2 digits"
count = re.sub("\D", "", test_string)
print("the number of digits is: "  + len(count))``````

The re package has a findall function. Here we can input a regular expression to count all digits.

``len(re.findall('\d', text))``

## Bonus

As last one I also can make use of the built in String method count. Just count all digits in the string and add the numbers together with the sum method.

`` return sum(text.count(digit) for digit in '1234567890')``

There are several ways to count the number of digits in a string with Python. I showed some of them here. I hope these tips can help you with similar problems while coding.

### About the author

I currently work as a Test Automation Consultant at b.ignited. Here I work for different clients in different industries to help them start and speed up their testing cycles

I’ve been testing software since 2000 when I became involved in testing telephone applications and hardware. Since then, I’ve been able to expand my experience by testing a variety of embedded, web, mobile and desktop applications. I have used various development methodologies from waterfall to agile.

I consider myself to be a lifelong learner.