Track
/
Python
Python
/
Esercizi
/
Cambio valuta
Cambio valuta

Cambio valuta

Esercizio di apprendimento

Introduzione

Numeri

In Python esistono tre diversi tipi di numeri integrati: ints, floats e complex. In questo esercizio, però, avrai a che fare solo con ints e floats.

ints

Gli ints sono numeri interi, ad esempio 1234, -10, 20201278.

In Python i numeri interi hanno precisione arbitraria: il numero di cifre è limitato solo dalla memoria disponibile del sistema host.

floats

I floats sono numeri che contengono un punto decimale, ad esempio 0.0, 3.14, -9.01.

I numeri in virgola mobile sono di solito implementati in Python usando un double in C (15 cifre decimali di precisione), ma la loro rappresentazione varia in base al sistema host e ad altri dettagli di implementazione. Questo può riservare qualche sorpresa quando si lavora con i float, ma è «abbastanza buono» per la maggior parte delle situazioni.

Puoi trovare maggiori dettagli e discussioni nelle seguenti risorse:

Aritmetica

Python supporta pienamente l'aritmetica tra ints e floats. Quando vengono usati con gli operatori aritmetici binari (+, -, *, /, // e %), converte i numeri di tipo più ristretto per adattarli alle loro controparti di tipo più ampio.

Python considera gli ints più ristretti dei floats. Quindi, usare un float in un'espressione garantisce che anche il risultato sarà un float. Tuttavia, quando si esegue una divisione il risultato sarà sempre un float, anche se vengono usati solo numeri interi.

# The int is widened to a float here, and a float type is returned.
>>> 3 + 4.0
7.0
>>> 3 * 4.0
12.0
>>> 3 - 2.0
1.0
# Division always returns a float.
>>> 6 / 2
3.0
>>> 7 / 4
1.75
# Calculating remainders.
>>> 7 % 4
3
>>> 2 % 4
2
>>> 12.75 % 3
0.75

Se serve un risultato intero, puoi usare // per troncare il risultato.

>>> 6 // 2
3
>>> 7 // 4
1

Per convertire un float in un intero, puoi usare int(). Per convertire un intero in un float, puoi usare float().

>>> int(6 / 2)
3
>>> float(1 + 2)
3.0

Istruzioni

Il tuo amico Chandler ha in programma di visitare paesi esotici in tutto il mondo. Purtroppo, Chandler non è bravo in matematica. È piuttosto preoccupato di essere truffato dagli uffici di cambio durante il viaggio, e vuole che tu gli costruisca un calcolatore di valuta. Ecco le sue specifiche per l'app:

1. Stima il valore dopo il cambio

Crea la funzione exchange_money(), che prende 2 parametri:

  1. budget : la somma di denaro che intendi cambiare.
  2. exchange_rate : la quantità di valuta nazionale pari a un'unità di valuta estera.

Questa funzione deve restituire il valore della valuta cambiata.

Nota: Se la tua valuta è USD e vuoi cambiare USD in EUR con un tasso di cambio di 1.20, allora 1.20 USD == 1 EUR.

>>> exchange_money(127.5, 1.2)
106.25

2. Calcola la valuta rimasta dopo un cambio

Crea la funzione get_change(), che prende 2 parametri:

  1. budget : la somma di denaro prima del cambio.
  2. exchanging_value : la somma di denaro che viene presa dal budget per essere cambiata.

Questa funzione deve restituire la somma di denaro che rimane del budget.

>>> get_change(127.5, 120)
7.5

3. Calcola il valore delle banconote

Crea la funzione get_value_of_bills(), che prende 2 parametri:

  1. denomination : il valore di una singola banconota.
  2. number_of_bills : il numero totale di banconote.

Questo ufficio di cambio tratta solo contanti in determinati tagli. Il totale che ricevi deve essere divisibile per il valore di una «banconota» o unità, il che può lasciare una frazione o un resto. La funzione deve restituire solo il valore totale delle banconote (escludendo le frazioni) che l'ufficio restituirebbe. Purtroppo, l'ufficio può tenersi il resto come bonus aggiuntivo.

>>> get_value_of_bills(5, 128)
640

4. Calcola il numero di banconote

Crea la funzione get_number_of_bills(), che prende amount e denomination.

Questa funzione deve restituire il numero di banconote che puoi ricevere con l'amount indicato. In altre parole: quante banconote intere stanno nella somma iniziale? Ricorda: puoi ricevere solo banconote intere, non frazioni di banconota, quindi ricordati di dividere di conseguenza. In pratica, stai arrotondando per difetto alla banconota intera più vicina.

>>> get_number_of_bills(127.5, 5)
25

5. Calcola il resto dopo il cambio in banconote

Crea la funzione get_leftover_of_bills(), che prende amount e denomination.

Questa funzione deve restituire l'importo avanzato che non può essere restituito partendo dalla somma iniziale, data la denominazione delle banconote. È molto importante sapere esattamente quanto può tenersi l'ufficio.

>>> get_leftover_of_bills(127.5, 20)
7.5

6. Calcola il valore dopo il cambio

Crea la funzione exchangeable_value(), che prende budget, exchange_rate, spread e denomination.

Il parametro spread è la percentuale trattenuta come commissione di cambio, scritta come numero intero. Va convertita in decimale dividendola per 100. Se 1.00 EUR == 1.20 USD e lo spread è 10, il tasso di cambio effettivo sarà: 1.00 EUR == 1.32 USD, perché il 10% di 1.20 è 0.12 e questa commissione aggiuntiva viene sommata al cambio.

Questa funzione deve restituire il valore massimo della nuova valuta dopo aver calcolato il tasso di cambio più lo spread. Ricorda che la denominazione della valuta è un numero intero e non può essere suddivisa.

Nota: Il valore restituito deve essere di tipo int.

>>> exchangeable_value(127.25, 1.20, 10, 20)
80
>>> exchangeable_value(127.25, 1.20, 10, 5)
95
Modifica tramite GitHub Il link si apre in una nuova finestra o scheda
Python Exercism

Vuoi iniziare Cambio valuta?

Iscriviti a Exercism per imparare e padroneggiare Python con 17 concetti146 esercizi e il mentoring di persone reali, tutto gratis.