
def roman_to_num(s):
roman_num = ["M", "D", "C", "L", "X", "V", "I"]
roman_num_value = [1000, 500, 100, 50, 10, 5, 1]
exception = ["IV", "IX", "XL", "XC", "CD", "CM"]
exception_value = [4, 9, 40, 90, 400, 900]
result = 0
for i in range(len(exception)):
if exception[i] in s:
s = s.replace(exception[i], '')
result += exception_value[i]
for k in range(len(roman_num)):
while roman_num[k] in s:
s = s[1:]
result += roman_num_value[k]
return result
def roman_to_num(s):
roman_num = {'I':1, 'V':5, 'X':10, 'L':50, 'C':100, 'D':500, 'M':1000}
try:
s = list(s)
sum = 0
for i in range(len(s)):
if roman_num[s[i]] >= roman_num[s[i+1]]:
sum += roman_num[s[i]]
else:
sum -= roman_num[s[i]]
except IndexError:
sum += roman_num[s[i]]
return sum
def roman_to_num(s):
roman_num = {"I":1, "V":5, "X":10, "L":50, "C":100, "D":500, "M":1000}
num = s[0]
number = roman_num[num]
for i in range(1,len(s)):
bnum = num
num = s[i]
if roman_num[bnum]>=roman_num[num]:
number += roman_num[num]
else:
number += roman_num[num] - 2*roman_num[bnum]
return number