import readline def convert_to_number(numerals: str) -> str: filtered = list(filter(lambda x: x in "IVXCM", list(numerals.upper()))) if len(filtered) == 0: return "ERROR: Invalid input" values: list[int] = [] for i in range(len(filtered)): match filtered[i]: case "I": values.append(1) case "V": values.append(5) case "X": values.append(10) case "C": values.append(100) case "M": values.append(1000) if len(values) > 1: return f"{''.join(filtered)} = {' + '.join(str(v) for v in values)} = {sum(values)}" else: return f"{''.join(filtered)} = {values[0]}" def main(): while True: try: numerals = input("Please enter some Roman numerals: ") print(convert_to_number(numerals)) except (EOFError, KeyboardInterrupt): break if __name__ == "__main__": main()