# line shift? (baby steps 2)

Jeff Lindholm jeff_news at lindholm.org
Mon Aug 23 20:01:17 CEST 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 ?")

```