def int_to_roman(int_value): # if isinstance(int_value, type(1)): # raise TypeError("expected integer, got %s" % type(int_value)) if not 0 < int_value < 4000: raise ValueError("Argument must be between 1 and 3999") ints = (1000, 900, 500, 400, 100, 90, 50, 40, 10, 9, 5, 4, 1) nums = ('M', 'CM', 'D', 'CD', 'C', 'XC', 'L', 'XL', 'X', 'IX', 'V', 'IV', 'I') result = "" for i in range(len(ints)): count = int(int_value / ints[i]) result += nums[i] * count int_value -= ints[i] * count return result def int_to_letter(int_value): result = '' int_value -= 1 while int_value >= 26: rest = int_value % 26 int_value = int(int_value / 26) - 1 result = chr(rest + 65) + result result = chr(int_value + 65) + result return result