Sfida: Capstone sui Ricavi dei Prodotti

Mettiamo insieme tutto ciò che hai imparato e applichiamolo. In questo esercizio, calcolerai il fatturato totale per ciascun prodotto di un negozio alimentare e lo visualizzerai in ordine alfabetico.


Compito

  1. Verranno fornite tre liste: nomi dei prodotti, prezzi e quantità vendute.
  2. Calcola il ricavo per ciascun prodotto moltiplicando prezzo × quantità venduta.
  3. Memorizza i valori in una nuova lista.
  4. Usa zip() per abbinare ogni prodotto al suo ricavo.
  5. Ordina la lista alfabeticamente per nome prodotto.
  6. Stampa ciascun prodotto e il ricavo nel formato:
<product_name> has total revenue of $<revenue>

Funzioni richieste

  • calculate_revenue(prices, quantities_sold)

    • Moltiplica ogni prezzo per la corrispondente quantità.
    • Memorizza i risultati in una lista.
    • Restituisce la lista di ricavi.
  • formatted_output(revenues)

    • Prende una lista di tuple (product_name, revenue).
    • Ordina alfabeticamente per nome prodotto.
    • Stampa i risultati nel formato richiesto.

Esempio di soluzione

# Liste fornite
products = ["Banana", "Apple", "Mango", "Cherry"]
prices = [1.20, 0.50, 2.50, 1.75]
quantities_sold = [50, 100, 25, 40]

# Funzione per calcolare i ricavi
def calculate_revenue(prices, quantities_sold):
    revenues = []
    for i in range(len(prices)):
        revenues.append(prices[i] * quantities_sold[i])
    return revenues

# Funzione per formattare e stampare i risultati
def formatted_output(products, revenues):
    combined = list(zip(products, revenues))
    sorted_combined = sorted(combined)  # Ordina alfabeticamente per nome prodotto
    for product, revenue in sorted_combined:
        print(f"{product} has total revenue of ${revenue}")

# Calcolo dei ricavi
revenues = calculate_revenue(prices, quantities_sold)

# Visualizzazione dei risultati
formatted_output(products, revenues)

Output atteso

Apple has total revenue of $50.0
Banana has total revenue of $60.0
Cherry has total revenue of $70.0
Mango has total revenue of $70.0

Questa soluzione mostra:

  • Iterazione tramite range(len(...)) per lavorare con più liste parallele.
  • Uso di zip() per combinare prodotti e ricavi in tuple.
  • Ordinamento alfabetico con sorted().
  • Stampa formattata in un ciclo for.