If you've ever worked with numerical data in Python and wanted to convert it
into words for better readability or presentation, you may have written custom
functions or algorithms to do so. However, Python developers have a convenient
tool available – the num2words library – which simplifies the process of
converting numbers into words. In this article, we'll explore how to
effectively use the num2words library to effortlessly convert numbers to words
in Python.
Introduction to num2words Library
The num2words library is a Python package that offers functions to convert
numbers into their word forms. It comes in handy for financial applications,
report generation, or any situation where you need to present numerical data
in a more human-friendly way.
Installation of num2words Library
Before we start using the num2words library, we first need to install it.
You can do this using pip, Python's package installer, with the following
command:
pip install num2words
Converting Integers to Words
Let's begin by converting integers to words. With num2words, this task is
quite straightforward. We can simply pass an integer to the num2words
function, and it will give us the textual representation of that number.
from num2words import num2words
number = 12345
words = num2words(number)
print(words) # Output: twelve thousand three hundred forty-five
Converting Floating-Point Numbers to Words
Similarly, num2words can handle floating-point numbers seamlessly. Whether
it's a simple decimal or a complex floating-point number, num2words
accurately converts it into words.
number = 123.45
words = num2words(number)
print(words) # Output: one hundred twenty-three point four five
Full Numbers to Words Source Code
Here's the full source code for converting numbers to words in various
formats and languages using the num2words library:
from num2words import num2words # pip install num2words
num = int(input("Enter the number : "))
print(
f"{num} in normal format: {num2words(num)}"
)
print(
f"{num} in ordinal format: {num2words(num, to='ordinal')}"
)
print(
f"{num} in ordinal number format: {num2words(num, to='ordinal_num')}"
)
print(
f"{num} in year format: {num2words(num, to='year')}"
)
print(
f"{num} in currency format: {num2words(num, to='currency')}"
)
languages = {
"en": "English",
"ar": "Arabic",
"cz": "Czech",
"de": "German",
"dk": "Danish",
"es": "Spanish",
"fr": "French",
"he": "Hebrew",
"id": "Indonesian",
"it": "Italian",
"ja": "Japanese",
"kn": "Kannada",
"ko": "Korean",
"pt": "Portuguese",
"ru": "Russian",
"vi": "Vietnamese",
"nl": "Dutch",
"uk": "Ukrainian",
}
print("\nNumber word in different languages:\n")
for (
language_code,
language_name,
) in languages.items():
print(f"{num} in {language_name} language is {num2words(num, lang=language_code)}")
This code takes a number as input and converts it into words in various
formats and languages using the num2words library.
Explanation of Numbers to Words Source Code
1. Import the `num2words` function from the `num2words`
library. This function converts numbers to their word representations.
2. Prompt the user to enter a number, convert it to an integer, and store
it in the variable `num`.
3. Print the number in various formats using the `num2words`
function:
- `num2words(num)`: Normal format (e.g., "twelve thousand three hundred forty-five").
- `num2words(num, to='ordinal')`: Ordinal format (e.g., "twelfth").
- `num2words(num, to='ordinal_num')`: Ordinal number format (e.g., "12th").
- `num2words(num, to='year')`: Year format (e.g., "two thousand twenty-two").
- `num2words(num, to='currency')`: Currency format (e.g., "twelve dollars and thirty-four cents").
4. Define a dictionary called `languages` mapping language codes to
language names.
5. Iterate over the `languages` dictionary and print the number in
each language using the `num2words` function with the `lang`
parameter.
Benefits of Using num2words Library
Benefits of Using the num2words Library:
1. Saves time and effort: The library eliminates the need to write custom
conversion algorithms, saving developers time and effort.
2. Accurate and reliable: num2words provides accurate and reliable
conversion of numbers into words, ensuring correctness in word
representations.
3. Flexibility: The library offers customization options for different use
cases, allowing developers to format numbers into words based on specific
requirements.
Don't Miss: Python Basics
Conclusion
The num2words library in Python is a valuable tool for converting numbers
into words. It saves time and effort by providing accurate and reliable
conversions without the need for custom algorithms. With its flexibility and
customization options, num2words is a versatile solution for a variety of
use cases where numerical data needs to be presented in a human-readable
format.