#!/usr/bin/env python3 # -*- coding: utf8 -*- RZA = {'I': 1, 'V': 5, 'X': 10, 'L': 50, 'C': 100, 'D': 500, 'M': 1000, '\u2181': 5000, '\u2182': 10000, '\u2187': 50000, '\u2188': 100000} AZR = [(100000, '\u2188'), (90000, '\u2182\u2188'), (50000, '\u2187'), (40000, '\u2182\u2187'), (10000, '\u2182'), (9000, 'M\u2182'), (5000, '\u2181'), (4000, 'M\u2181'), (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')] while True: rz = input("Bitte römische Zahl eingeben: ") rz = rz.rstrip() rz = rz.upper() try: az = 0 for i in range(len(rz)): if i == len(rz) - 1: az += RZA[rz[i]] print(rz, "=", az) else: if RZA[rz[i]] < RZA[rz[i + 1]]: az -= RZA[rz[i]] else: az += RZA[rz[i]] except: try: zahl = int(rz) if zahl > 500000: print("Nööö, größer als 500000 mag ich nicht") continue rom = "" for az, romz in AZR: count = zahl // az zahl -= az * count rom += romz * count print(rz, "=", rom) except: print("Es konnte keine römische oder arabische Zahl erkannt werden")