Working with strings is a common task in many programming languages. One possible use-case you'll encounter is capitalizing the first letter of each word in a string. This Byte will explore three different ways we can achieve this: using the
The title() Function
title() function is a built-in method in Python that converts the first character of each word to uppercase and the remaining characters to lowercase. Here's how you can use it:
text = "welcome to stackabuse.com" print(text.title())
The output will be:
Welcome To Stackabuse.Com
title() function capitalizes every word in a string, regardless of what the word is. This may not always be the desired behavior. For example, in our output, ".Com" is capitalized, which is not correct in terms of website domain naming conventions. So you may need to handle cases like this manually.
The capitalize() Function
capitalize() function, on the other hand, only capitalizes the first letter of a string, while making all other characters in the string lowercase.
text = "welcome to STACKABUSE.COM" print(text.capitalize())
This will output:
Welcome to stackabuse.com
As you can see, only the first letter of the string is capitalized, and all other letters are now lowercase.
The string.capwords() Function
string.capwords() function from the
string module is another way to capitalize the first letter of each word in a string. This function splits the string into words using whitespace, capitalizes the first letter of each word, and then joins them back together.
import string text = "welcome to stackabuse.com" print(string.capwords(text))
The output will be:
Welcome To Stackabuse.com
You'll notice that in this case, ".com" is not capitalized like we saw with
tite(). This is because it only splits on whitespace, so it considers "stackabuse.com" to be one word.
Example: Formatted Output in User Interfaces
Let's take a practical example to see how this works. Suppose we're making a user interface for a simple application. We have a form where the user can enter their full name. However, users can be unpredictable and might enter their name in all lower case, all upper case, or a mix of both. To ensure consistency in our application, we want to capitalize the first letter of each word in their name.
Here's how we can achieve this using the
def format_name(user_input): return user_input.title() user_name = "jane doe" formatted_name = format_name(user_name) print(formatted_name)
When we run this script, the output will be:
In this way, no matter how the user enters their name, it will always be formatted correctly in our application.
Although we're using
title() in this example, you could also use
string.capwords() if you prefer. Both will give you the same result in this case.
Note: While this is a toy example to show when and why you might title words, formatting names isn't actually this easy. There are names out there that don't actually start with a capital letter, like "Ludwig van Beethoven". It would technically incorrect to capitalize the "van". Unfortunately nothing is ever as easy as it seems in programming 😉
In this Byte, we've looked at three different Python functions that can be used to capitalize the first letter of each word in a string:
string.capwords(). Each function has its own unique quirks and use-cases, but all of them can be useful when dealing with text data, depending on your use-case. Whether you're formatting user input in a UI, as in our example, or working with some kind of dataset, these functions can help format your data consistently.
Building Your First Convolutional Neural Network With Keras# python# artificial intelligence# machine learning# tensorflow
Most resources start with pristine datasets, start at importing and finish at validation. There's much more to know. Why was a class predicted? Where was...