line shift? (baby steps 2)
Jeff Lindholm
jeff_news at lindholm.org
Mon Aug 23 14:01:17 EDT 2004
> As a hint not pertaining to your actual problem: Use a dictionary to
> store the values, like this:
>
> currencies = { "EUDK" : 7.47, "DKEU" : 0.13, (...) }
>
> Then you do not have to do if statements like this
>
> if currency_str == "DKEU":
> result= amount_int* dkeu_currency
> print amount_int, "Danish Crowns correspond to", result, "Euro."
>
> (...)
>
> You can directly use the input string as index into the dictionary:
>
> result = amount_int * currencies[currency_str]
> print (...)
>
I was bored waiting on a compile so I hacked this up. It adds the \n and the
Please enter conversion type line and uses the previous poster's comment on
the using a dictionary.
I added the conversion output text by makeing the value a list that is the
conversion and the text to display for the answer (I made them shorter
because I was lazy to type all the information). I also made the conversion
from US to EU more in line with the EUUS because I used those for testing
and the results were not coming out the same (course I am sure there is some
slack in there somewhere for the bank taking its share of the proceeds :) )
Not sure if there is a slicker way to do the conversion/message - I am
relatively new to Python as well, so my code still ends up looking like C++
lots of the time.
import string
currency = {"EUDK":(7.47,"? to DKK"),
"DKEU":(0.13,"DKK to ?"),
"USDK":(5.93, "$ to DKK"),
"DKUS":(0.16, "DKK to $"),
"EUUS":(1.19, "? to $"),
"USEU":(0.84, "$ to ?")}
while(1):
currency_choice= raw_input("\nPlease enter conversion type or 'Exit':
")
currency_str= str(currency_choice).upper()
if currency_str == "EXIT":
break
if currency.has_key(currency_str):
amount_int= input("Please type the amount you wish to convert: ")
result = amount_int * currency[currency_str][0]
print currency[currency_str][1], " ", amount_int, " = ", result
else:
print("Sorry. At the moment we only support DKK, Euro and Dollars."
+ "\n" \
"Type DKEU if you want convert from DKK to ?," + "\n" \
"EUDK if you want to convert from DKK to ?," + "\n" \
"DKUS if you want to convert from DKK to $," + "\n" \
"USDK if you want to convert from $ to DKK," + "\n"
"EUUS if you want to convert from ? to $," + "\n"\
"and USEU if you want to convert from $ to ?")
More information about the Python-list
mailing list