Python: numeri, stringhe e booleani per gestire un semplice sconto in cassa

by theArchitect
SHARE
Python: numeri, stringhe e booleani per gestire un semplice sconto in cassa
© Guida-HTML5.it

Introduzione

Quando si parla di tipi di dati di base in Python, spesso si pensa subito a esercizi teorici: somme, concatenazioni di stringhe o confronti logici. In realtà, numeri, stringhe e booleani sono la base di moltissimi casi d’uso concreti. Un esempio molto utile e realistico è la gestione di un piccolo sistema di sconto in cassa.

In questo tutorial costruiremo un programma che simula il calcolo del totale di un ordine, applica uno sconto se il cliente possiede un codice promozionale valido e mostra un riepilogo finale leggibile. Useremo:

  • numeri per prezzi, quantità e percentuali;
  • stringhe per il nome del cliente, il codice sconto e il messaggio finale;
  • booleani per decidere se applicare o meno lo sconto.

Questo approccio è molto utile perché mostra come i tipi di base collaborano in un flusso reale: acquisizione dati, verifica delle condizioni, calcolo e presentazione del risultato.

Codice completo

# Simulazione di una cassa semplice con sconto opzionale

# Dati di input
cliente = "Martina"
prodotto = "Taccuino"
prezzo_unitario = 4.90
quantita = 3

# Codice promozionale inserito dal cliente
codice_promozionale = "SAVE10"

# Regola di validazione dello sconto
codice_valido = codice_promozionale == "SAVE10"

# Calcolo del totale prima dello sconto
totale_lordo = prezzo_unitario * quantita

# Percentuale di sconto
percentuale_sconto = 0.10

# Applicazione dello sconto solo se il codice è valido
if codice_valido:
    sconto = totale_lordo * percentuale_sconto
else:
    sconto = 0.0

totale_netto = totale_lordo - sconto

# Costruzione del messaggio finale con stringhe
stato_sconto = "applicato" if codice_valido else "non applicato"

messaggio = (
    f"Cliente: {cliente}n"
    f"Prodotto: {prodotto}n"
    f"Quantità: {quantita}n"
    f"Prezzo unitario: €{prezzo_unitario:.2f}n"
    f"Totale lordo: €{totale_lordo:.2f}n"
    f"Sconto: €{sconto:.2f} ({stato_sconto})n"
    f"Totale da pagare: €{totale_netto:.2f}"
)

print(messaggio)

Spiegazione

Vediamo il programma pezzo per pezzo, così da capire bene il ruolo di ogni tipo di dato.

1. Numeri: prezzi, quantità e calcoli

Abbiamo usato interi e numeri in virgola mobile. Nel nostro esempio:

  • quantita è un intero, perché non ha senso acquistare 2.5 taccuini;
  • prezzo_unitario è un float, perché può contenere i centesimi;
  • totale_lordo si ottiene moltiplicando prezzo e quantità.

La riga totale_lordo = prezzo_unitario * quantita è un esempio classico di operazione aritmetica. In Python, i numeri possono essere combinati facilmente, ma bisogna fare attenzione al tipo di risultato: se almeno uno dei valori è un float, il risultato sarà un float.

2. Stringhe: dati testuali e messaggi

Le stringhe servono per rappresentare informazioni leggibili dall’essere umano. Nel codice abbiamo usato:

  • cliente per memorizzare il nome;
  • prodotto per descrivere l’articolo acquistato;
  • codice_promozionale per simulare l’input dell’utente;
  • messaggio per costruire un riepilogo finale.

La parte più interessante è la formattazione con f-string, che permette di inserire variabili direttamente dentro una stringa. Per esempio:

f"Prezzo unitario: €{prezzo_unitario:.2f}"

Qui :.2f indica che il numero deve essere mostrato con due cifre decimali. È una scelta ottima per i prezzi, perché rende l’output più professionale e leggibile.

3. Booleani: decisioni e controllo del flusso

I booleani in Python possono assumere solo due valori: True e False. Nel nostro esempio:

codice_valido = codice_promozionale == "SAVE10"

Questa espressione confronta il codice inserito con quello corretto. Se coincidono, codice_valido vale True; altrimenti vale False.

Il booleano viene poi usato in un blocco if:

if codice_valido:
    sconto = totale_lordo * percentuale_sconto
else:
    sconto = 0.0

Questo è un esempio fondamentale di logica applicativa: una condizione decide quale percorso seguire. In un software reale, la stessa struttura potrebbe essere usata per validare un coupon, autorizzare un accesso o attivare una funzione premium.

4. Espressione condizionale per una stringa dinamica

Abbiamo anche usato questa riga:

stato_sconto = "applicato" if codice_valido else "non applicato"

Si tratta di una forma compatta di condizione. È utile quando vuoi assegnare un valore diverso a una variabile in base a un booleano. Nel nostro caso, il messaggio finale diventa più chiaro perché indica subito se lo sconto è stato applicato oppure no.

Best practice

Quando lavori con numeri, stringhe e booleani in Python, alcune abitudini ti aiutano a scrivere codice più affidabile e leggibile.

  • Usa nomi di variabili descrittivi: totale_lordo è più chiaro di t.
  • Separa i dati dal calcolo: prima definisci gli input, poi esegui le operazioni.
  • Formatta i numeri decimali con :.2f quando rappresenti prezzi o valori monetari.
  • Confronta le stringhe in modo esplicito: meglio codice == "SAVE10" che fare assunzioni implicite.
  • Usa i booleani per guidare il flusso, non per memorizzare informazioni complesse.
  • Evita di mischiare troppo presto tipi diversi: ad esempio, non convertire un numero in stringa prima di aver finito i calcoli.

Un altro consiglio importante riguarda i numeri decimali. Per operazioni finanziarie più precise, in applicazioni professionali può essere preferibile usare il modulo decimal invece dei float. Per un tutorial introduttivo, però, i float sono perfetti per capire i concetti base.

Infine, cerca di mantenere il codice leggibile anche quando è breve. Un programma semplice ma ben strutturato è più facile da testare, correggere e riutilizzare.

Riepilogo

In questo tutorial abbiamo visto come numeri, stringhe e booleani lavorino insieme in un caso pratico: la gestione di uno sconto in cassa.

  • I numeri servono per calcolare importi, quantità e sconti.
  • Le stringhe rappresentano dati testuali e permettono di costruire messaggi chiari.
  • I booleani decidono se applicare una regola oppure no.

Il punto chiave è che i tipi di dati di base non sono solo concetti teorici: sono gli strumenti con cui si costruisce la logica di quasi ogni programma Python. Padroneggiarli bene significa scrivere codice più solido, comprensibile e vicino a problemi reali.

Approfondisci con risorse ufficiali

  • Python Documentation - Built-in Types: panoramica ufficiale sui tipi di base e sulle loro operazioni.
  • Python Documentation - Data Types: guida introduttiva ai tipi di dati e al loro uso nel linguaggio.
  • Python Documentation - Formatting strings: riferimento per f-string e formattazione avanzata delle stringhe.
  • Python Documentation - Expressions: utile per approfondire confronti, operatori e condizioni.

Se vuoi esercitarti, prova a modificare il codice aggiungendo:

  • un secondo codice sconto con percentuale diversa;
  • un messaggio speciale per ordini sopra una certa soglia;
  • più prodotti, calcolando il totale di un piccolo carrello.

In questo modo continuerai a usare numeri, stringhe e booleani in scenari sempre più vicini a un’applicazione reale.

SHARE