Ein Programmierbeispiel, mit dem ein int-Wert zwischen 0 und 4000 in eine Zahl mit römischen Ziffern umgewandelt werden kann.
def romanize(decimal_number):
"""
Wandelt die gegebene int-Zahl im Bereich 0 bis 4000 in eine Zahl mit römischen Ziffern um.
"""
if not isinstance(decimal_number, int) or decimal_number <= 0 or decimal_number >= 4000: raise ValueError()
result = '' count_m = decimal_number // 1000
if count_m > 0: result += count_m * 'M' decimal_number = decimal_number - (count_m * 1000)
if decimal_number >= 900: result += 'CM' decimal_number = decimal_number - 900
count_c = decimal_number // 100
if count_c > 0: if count_c >= 5: c = count_c - 5 result += 'D' + c * 'C' elif count_c == 4: result += 'CD' else: result += count_c * 'C' decimal_number = decimal_number - (count_c * 100)
if decimal_number >= 90: result += 'XC' decimal_number = decimal_number - 90
count_x = decimal_number // 10
if count_x > 0: if count_x >= 5: x = count_x - 5 result += 'L' + x * 'X' elif count_x == 4: result += 'XL' else: result += count_x * 'X' decimal_number = decimal_number - (count_x * 10)
if decimal_number >= 9: result += 'IX' decimal_number = decimal_number - 90
if decimal_number > 0: if decimal_number >= 5: i = decimal_number - 5 result += 'V' + i * 'I' elif decimal_number == 4: result += 'IV' else: result += decimal_number * 'I' return result
print(romanize(1939)) print(romanize(1954)) print(romanize(1981)) print(romanize(2023))
Ausgabe:
MCMXXXIX
MCMLIV
MCMLXXXI
MMXXIII