Creating a Word Counter in Python

In this post, we are going to see how we can make a word counter using Python.
For this, we will be using the split function to make our job easier by reducing the length
of code and increasing its productivity.

split() function is a quite useful and quite generic method to get words out of the list.
But this approach is applicable only till we avoid any special characters.

The code for word counter in Python

#string on which the operation is to be performed
string_example = "All is well that ends well"

#printing original string
print("The original string is= " + string_example)

#using split
#counting words
res = len(string_example.split())

#printing the number of words
print("The number of words in the string are : " + str(res))


The original string is= All is well that ends well
The number of words in the string are: 6

Code Explained

The string_example variable is the one that stores the string we wish to use for counting the words it holds.
After printing the original string we use another variable res and deploy the len function along with the split() function embedded within it.
The res variable stores the number of words in the string_example holds as the split() function has broken up it into words.
The next what we do is we print the number of words by printing the values stored in the res variable which is 6 in this case.


Creating a Word Counter GUI in Python

GUI(Graphic User Interface) is nothing but what we see on our systems and access it with. It is a graphically more rich interface of what happens inside the system whenever we command it to do something. Our aim here is to create a GUI which takes input as a string and gives the output in terms of number of characters present in it.

#import library
import tkinter as tk
#counting function
def charcount():
#specifying conditions
    if sp==1:
        for k in w:
            if k=="\n":
    elif sp==2:
        for k in w:
            if k==" " or k=="\n":

#creating interface
window.title("Count Characters")
#Radio buttons for space counting
r1=tk.Radiobutton(window,text="with spaces",value=1,variable=decision)
r2=tk.Radiobutton(window,text="without spaces",value=2,variable=decision)
#BUtton to count 
button=tk.Button(window,text="Count the number of characters",command=charcount)
label2=tk.Label(window,text="number of characters")
#Output Block

#Function calling


The program above is a GUI code for counting characters in a user-specified string.
The char-count function is responsible for the counting of characters in the given string. More importantly, we have made the GUI more friendly and adaptive. This has been done by putting up conditions that help the user to choose whether spaces are to be counted or not, for instance. The interface is created using the Tkinter library imported as tk. The specifics of dimensions and formatting help design our GUI as per our wish. Buttons are added along with labels in the next part of the code which are followed by calling of functions to execute the code.


Creating a Word Counter in Python


There are many software codes that involve the processing of the text, for instance, linguistic data provided to it so that it can be studied more effectively.
Many fields involving Natural language Processing and Data Science require us to provide the parent software with data is the simplest and fraction-ed form.
Python is the most widely used language in these fields. It makes it very easy to work with by providing tools that work effectively.

The split () function and many others like this one in the python language help a lot achieve our goals faster.
The code to break words apart from a sentence usually follows a very complex and lengthy code in other and older languages. Our job is simplified by using these shorthand tools and implementing them to get
results in a single line of code.

Also read: splitlines() function in Python

One response to “Creating a Word Counter in Python”

  1. Kanav Khanna says:

    Thank you for this post. It really helps!

Leave a Reply

Your email address will not be published. Required fields are marked *