def obtener_tasa_de_cambio(moneda_origen, moneda_destino):

    tasas_de_cambio = {

        ‘USD’: {‘EUR’: 0.85, ‘MXN’: 17.00, ‘JPY’: 146.00,‘dirhams’:9.80},

        ‘EUR’: {‘USD’: 1.18, ‘MXN’: 20.00, ‘JPY’: 172.00,‘dirhams’:10.85},

        ‘MXN’: {‘USD’: 0.059, ‘EUR’: 0.050, ‘JPY’: 8.60,‘dirhams’:0.17},

        ‘JPY’: {‘USD’: 0.0068, ‘EUR’: 0.0058, ‘MXN’: 0.12,‘dirhams’:0.067},

        ‘dirhams’:{‘EUR’: 0.092, ‘MXN’: 5.77,‘USD’: 0.10, ‘JPY’: 14.99},

    }

    try:

        return tasas_de_cambio[moneda_origen][moneda_destino]

    except KeyError:

        return None

def convertir_moneda(cantidad, moneda_origen, moneda_destino):

    tasa_de_cambio = obtener_tasa_de_cambio(moneda_origen, moneda_destino)

    if tasa_de_cambio is None:

        return «Conversión no disponible»

    return cantidad * tasa_de_cambio

def main():

    print(«Bienvenido al conversor de monedas»)

    cantidad = float(input(«Ingresa la cantidad de dinero: «))

    moneda_origen = input(«Ingresa la moneda de origen (USD, EUR, MXN, JPY): «).upper()

    moneda_destino = input(«Ingresa la moneda de destino (USD, EUR, MXN, JPY): «).upper()

    resultado = convertir_moneda(cantidad, moneda_origen, moneda_destino)

    if isinstance(resultado, str):

        print(resultado)

    else:

        print(f«{cantidad} {moneda_origen} son {resultado:.2f} {moneda_destino}«)

if __name__ == «__main__»:

    main()

Aquest programa és un conversor de monedes que permet transformar una quantitat de diners d’una moneda a una altra, segons unes taxes de canvi predefinides.

1. Diccionari de Taxes de Canvi

python

CopiarEditar

tasas_de_cambio = {

    ‘USD’: {‘EUR’: 0.85, ‘MXN’: 17.00, ‘JPY’: 146.00, ‘dirhams’: 9.80},

    …

}

Aquest diccionari guarda les taxes de conversió entre diverses monedes: USD (dòlar), EUR (euro), MXN (peso mexicà), JPY (ien japonès) i dirhams (AED). Per exemple:

  • 1 USD = 0.85 EUR
  • 1 EUR = 1.18 USD

Està estructurat com un diccionari anidat: cada clau principal és una moneda d’origen, i el valor associat és un altre diccionari amb les conversions possibles com a destinació.

2. Funció obtener_tasa_de_cambio()

python

CopiarEditar

def obtener_tasa_de_cambio(moneda_origen, moneda_destino):

    …

Aquesta funció busca dins el diccionari la tasa de canvi entre dues monedes. Si la combinació no existeix (per exemple, una moneda desconeguda), retorna None.

3. Funció convertir_moneda()

python

CopiarEditar

def convertir_moneda(cantidad, moneda_origen, moneda_destino):

    …

  • Crida la funció anterior per obtenir la taxa de canvi.
  • Si no es pot fer la conversió, retorna un missatge d’error.
  • Si sí que es pot, multiplica la quantitat per la taxa de canvi.

4. Funció Principal main()

python

CopiarEditar

def main():

    …

Aquesta és la part interactiva del programa. Fa el següent:

  1. Mostra un missatge de benvinguda.
  2. Demana a l’usuari que introdueixi:
  • Quantitat de diners.
  • Moneda d’origen i de destinació.
  1. Crida la funció convertir_moneda() per fer la conversió.
  2. Mostra el resultat, o un missatge si la conversió no és possible.

5. Execució del programa

python

CopiarEditar

if __name__ == «__main__»:

    main()

Aquesta línia assegura que el codi només s’executa si és el fitxer principal, i no quan s’importa des d’un altre arxiu Python.

Exemple d’ús

Entrada:

yaml

CopiarEditar

Ingresa la cantidad de dinero: 100

Ingresa la moneda de origen: USD

Ingresa la moneda de destino: EUR

Sortida:

CopiarEditar

100 USD son 85.00 EUR

Conclusió del codi

  1. Es fa servir una estructura clara i modular, amb funcions ben definides.
  2. El diccionari anidat permet afegir fàcilment noves monedes.
  3. Es gestiona l’error de conversions no disponibles amb un missatge amigable.
  4. És una bona introducció a temes de programació com:
  • Estructures de dades (diccionaris)
  • Funcions
  • Entrada/sortida amb l’usuari