[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:

Example:
I initialize the digital value to 0
digital_result = 0

I examine each roman numeral character in turn starting at the left (or 
right?):
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

etc.

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
510-978-4454



More information about the Tutor mailing list