[Tutor] Roman Numeral to Digital

Bob Gailer bgailer at alum.rpi.edu
Thu Mar 8 15:12:58 CET 2007

Kent Johnson wrote:
> Hi Alan,
> I am forwarding your question to tutor at python.org which is the correct 
> address for the list. tutor-owner at python.org sends questions to the 
> *maintainers* of the list, not the list itself.
> Kent
> Alan Gilfoy wrote:
>> I am learning how to program in python as a major component of my 
>> school's senior project, and my most recent assignment was to write a 
>> program that converts Roman numerals to digital (base-10 Arabic numerals).
>> Now, I was told I have to write the program myself, but I was told I was 
>> allowed to ask for hints. :)
>> As of right now, I've written a user interface (after all, here that's a 
>> simple loop-and-prompt setup leading to print statements), but I have 
>> "dummy code" in the place where the conversion code needs to be.
>> I want to create two separate functions:
>> def.toRoman(digital_input)
>>     print "Digital - to - Roman conversion (dummy code)"
>>     roman_result = "XXX"
>>     return roman_result
>> def.toDigital(roman_input)
>>     print "Roman - to - digital conversion (dummy code)"
>>     digital_result = 30
>>     return digital_result
>> I'm going to set each of those two "inputs" by a prompt asking for what 
>> the program user wants to work with.
>> #Such as:
>> digital_input = int(raw_input("What digital (base-10) number do you wish 
>> to convert to Roman numerals?))
>> I'm not sure how I would program Python to run the actual conversions.
>> PS: I'm familiar with Roman numerals, and I know how to do the 
>> conversions manually.
Step 1:  write down the steps you use "manually"
Step 2:  for each step ask "how do I do this in Python:

I initialize the digital value to 0
digital_result = 0

I examine each roman numeral character in turn starting at the left (or 
for rc in roman_input:

I lookup the character's decimal value
(note there are several ways to do this in Python - the "best" is a 
dictionary), an if elif else statement, ....

I add it to the digital_result


Hope that gets you started. Write all the manual steps. Make sure each 
is one simple operation. Walk thru the steps to verify that you have 
them correct.

Bob Gailer

More information about the Tutor mailing list