Skip to content
Related Articles

Related Articles

Improve Article
Save Article
Like Article

Convert string to title case in Python

  • Last Updated : 17 May, 2020

Title case is a style of writing that is used for the titles of articles, books, movies, and other works. The rules for writing in title case are:

1) Always capitalize the first word.
2) Capitalize all words except the following parts of speech:

  • articles – a, an, the
  • coordinating conjunctions – and, but, for, nor, or, so, yet
  • short prepositions – to, in, up, from etc


Input : The quick brown fox jumps over the lazy dog.
Output : The Quick Brown Fox Jumps over the Lazy Dog.

Input : A tale of two cities
Output : A Tale of Two Cities

Algorithm :

  1. Make a list of all the words that have to be in lower case.
  2. For every word in the input, check whether it is in the above list or not.
  3. If yes then ignore the word, if no then capitalize its first character.

The implementation of the above algorithm is:

# Function to convert into title case
def generateTitleCase(input_string):
    # list of articles
    articles = ["a", "an", "the"]
    # list of coordinating conjunctins
    conjunctions = ["and", "but",
                    "for", "nor",
                    "or", "so",
    # list of some short articles
    prepositions = ["in", "to", "for"
                    "with", "on", "at",
                    "from", "by", "about",
                    "as", "into", "like",
                    "through", "after", "over",
                    "between", "out", "against"
                    "during", "without", "before",
                    "under", "around", "among",
    # merging the 3 lists
    lower_case = articles + conjunctions + prepositions
    # variable declaration for the output text 
    output_string = ""
    # separating each word in the string
    input_list = input_string.split(" ")
    # checking each word
    for word in input_list:
        # if the word exists in the list
        # then no need to capitalize it
        if word in lower_case:
            output_string += word + " "
        # if the word does not exists in
        # the list, then capitalize it
            temp = word.title()
            output_string += temp + " "
    return output_string
# Driver code  
if __name__=='__main__':  
    input_text1 = "The quick brown fox jumps over the lazy dog."
    input_text2 = "A tale of two cities"

Output :

The Quick Brown Fox Jumps over the Lazy Dog. 
A Tale of Two Cities 

My Personal Notes arrow_drop_up
Recommended Articles
Page :

Start Your Coding Journey Now!