42 ⭐ Banking Program 💰

Obiettivi di apprendimento:

  • Utilizzare Dizionari per memorizzare i dati degli account (numeri di conto, saldi).
  • Implementare funzioni per deposito, prelievo e visualizzazione del saldo.
  • Gestire l'I/O dell'utente e implementare la validazione.

Programma Esempio:

# Dizionario per memorizzare gli account: {numero_conto: saldo}
conti = {
    "123456": 1500.00,
    "789012": 350.75,
    "999999": 50000.00
}

def visualizza_saldo(conto):
    if conto in conti:
        print(f"Il saldo attuale del conto {conto} è: €{conti[conto]:,.2f}")
        return conti[conto]
    else:
        print("❌ Conto non trovato.")
        return None

def deposita(conto, importo):
    if conto in conti:
        if importo > 0:
            conti[conto] += importo
            print(f"✅ Depositato €{importo:,.2f}. Nuovo saldo: €{conti[conto]:,.2f}")
            return True
        else:
            print("❌ L'importo del deposito deve essere positivo.")
            return False
    else:
        print("❌ Conto non trovato.")
        return False

def preleva(conto, importo):
    if conto in conti:
        saldo_corrente = conti[conto]
        if importo <= 0:
            print("❌ L'importo del prelievo deve essere positivo.")
            return False

        if importo <= saldo_corrente:
            conti[conto] -= importo
            print(f"✅ Prelievo di €{importo:,.2f} effettuato. Nuovo saldo: €{conti[conto]:,.2f}")
            return True
        else:
            print("❌ Saldo insufficiente.")
            return False
    else:
        print("❌ Conto non trovato.")
        return False

# --- Esecuzione di Esempio ---
if __name__ == '__main__':
    print("💰 BENEDETTI BANK 💰")

    conto_test = "123456"

    visualizza_saldo(conto_test)
    deposita(conto_test, 500.00)
    preleva(conto_test, 100.00)
    preleva(conto_test, 5000.00) # Prelievo fallito