Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- NUMERALS = {'I':1, 'IV':4, 'V':5, 'IX':9, 'X':10, 'XL':40, 'L':50, 'XC':90, 'C':100, 'CD':400, 'D':500, 'CM':900, 'M':1000}
- def next_is_combo(numeral, index):
- try:
- if numeral[index] + numeral[index+1] in NUMERALS:
- return True
- else:
- return False
- except IndexError:
- return False
- def previous_is_combo(numeral, index):
- if index - 1 < 0:
- return False
- elif numeral[index-1] + numeral[index] in NUMERALS:
- return True
- else:
- return False
- def compare(numeral, index):
- if next_is_combo(numeral, index):
- return NUMERALS[numeral[index] + numeral[index+1]]
- elif previous_is_combo(numeral, index):
- return 0
- else:
- return NUMERALS[numeral[index]]
- def numeral_to_decimal(numeral):
- decimal = 0
- for letter in range(len(numeral)):
- decimal += compare(numeral, letter)
- return decimal
- def main():
- print(numeral_to_decimal("MCMLIV"))
- print()
- print(numeral_to_decimal("MMVIII"))
- print()
- print(numeral_to_decimal("MCMXC"))
- print()
- print(numeral_to_decimal("MCDIV"))
- if __name__ == "__main__":
- main()
Advertisement
Add Comment
Please, Sign In to add comment