Skip to main content

How to convert a number to a Roman numeral in Python

How to convert a number to a Roman numeral in Python.

Here's a step-by-step tutorial on how to convert a number to a Roman numeral in Python.

Step 1: Initialize a dictionary

First, we need to create a dictionary that maps each decimal number to its corresponding Roman numeral. This will make the conversion process easier. We'll use this dictionary throughout the tutorial.

roman_numerals = {
1000: 'M',
900: 'CM',
500: 'D',
400: 'CD',
100: 'C',
90: 'XC',
50: 'L',
40: 'XL',
10: 'X',
9: 'IX',
5: 'V',
4: 'IV',
1: 'I'
}

Step 2: Define the function

Next, let's define a function called convert_to_roman that takes an integer as input and converts it to a Roman numeral.

def convert_to_roman(num):
roman_numeral = ''
for value, numeral in roman_numerals.items():
while num >= value:
roman_numeral += numeral
num -= value
return roman_numeral

Step 3: Test the function

Now, let's test our function with some examples to see if it's working correctly.

print(convert_to_roman(9))  # Output: IX
print(convert_to_roman(27)) # Output: XXVII
print(convert_to_roman(3999)) # Output: MMMCMXCIX

Step 4: Understand the code

Let's go through the code and understand how it works.

  • The convert_to_roman function takes a number num as input.
  • It initializes an empty string roman_numeral to store the final Roman numeral.
  • It then loops through each key-value pair in the roman_numerals dictionary.
  • Inside the loop, it checks if the current value is less than or equal to num.
  • If it is, it appends the corresponding numeral to the roman_numeral string and subtracts the value from num.
  • This process continues until num becomes zero, indicating that the conversion is complete.
  • Finally, it returns the roman_numeral string.

Step 5: Additional considerations

Our current implementation assumes that the input number is in the range of 1 to 3999, as Roman numerals are not commonly used for larger numbers. However, you can extend the dictionary and modify the code to handle larger numbers if needed.

That's it! Now you have a working function to convert decimal numbers to Roman numerals in Python. Feel free to use this code as a reference or modify it as per your requirements.