🔹 Modulo 2: Primi Programmi

005_Madlibs_game


6. Arithmetic & math 📐

Obiettivi di apprendimento:

Contenuto teorico:

import math

# Operatori aritmetici base
a = 10
b = 3

print("=== OPERATORI ARITMETICI ===")
print(f"Addizione: {a} + {b} = {a + b}")
print(f"Sottrazione: {a} - {b} = {a - b}")
print(f"Moltiplicazione: {a} * {b} = {a * b}")
print(f"Divisione: {a} / {b} = {a / b}")
print(f"Divisione intera: {a} // {b} = {a // b}")
print(f"Modulo (resto): {a} % {b} = {a % b}")
print(f"Potenza: {a} ** {b} = {a ** b}")

# Operatori di assegnazione
x = 5
print(f"\nValore iniziale: {x}")
x += 3  # x = x + 3
print(f"Dopo +=3: {x}")
x *= 2  # x = x * 2
print(f"Dopo *=2: {x}")

# Funzioni matematiche
numero = 16
print(f"\n=== FUNZIONI MATEMATICHE ===")
print(f"Radice quadrata di {numero}: {math.sqrt(numero)}")
print(f"Valore assoluto di -5: {abs(-5)}")
print(f"Numero arrotondato 3.7: {round(3.7)}")
print(f"Potenza 2^3: {pow(2, 3)}")
print(f"Minimo tra 5,3,8: {min(5, 3, 8)}")
print(f"Massimo tra 5,3,8: {max(5, 3, 8)}")

Calcolatrice scientifica base:

import math

def calcolatrice_scientifica():
    print("🧮 CALCOLATRICE SCIENTIFICA 🧮")

    numero = float(input("Inserisci un numero: "))

    print(f"Numero inserito: {numero}")
    print(f"Radice quadrata: {math.sqrt(abs(numero))}")
    print(f"Seno: {math.sin(math.radians(numero)):.4f}")
    print(f"Coseno: {math.cos(math.radians(numero)):.4f}")
    print(f"Logaritmo naturale: {math.log(numero) if numero > 0 else 'Non definito'}")
    print(f"Fattoriale: {math.factorial(int(numero)) if numero >= 0 and numero == int(numero) else 'Non definito'}")

calcolatrice_scientifica()

Esercizi pratici:

  1. Calcola l'ipotenusa di un triangolo rettangolo
  2. Programma per calcolare l'area di diverse forme geometriche
  3. Convertitore di unità di misura

7. If statements 🤔

Obiettivi di apprendimento:

Contenuto teorico:

# If statement base
eta = int(input("Inserisci la tua età: "))

if eta >= 18:
    print("Sei maggiorenne! 🎉")
    if eta >= 65:
        print("Hai diritto alla pensione! 👴")
    else:
        print("Sei in età lavorativa! 💼")
else:
    print("Sei minorenne! 👶")
    anni_mancanti = 18 - eta
    print(f"Ti mancano {anni_mancanti} anni alla maggiore età")

# Elif per multiple condizioni
voto = float(input("Inserisci il tuo voto (0-10): "))

if voto >= 9:
    print("Eccellente! 🌟")
elif voto >= 8:
    print("Ottimo! 😊")
elif voto >= 7:
    print("Buono! 👍")
elif voto >= 6:
    print("Sufficiente! ✅")
else:
    print("Insufficiente! ❌")

# Operatori di confronto
a = 10
b = 20

print(f"{a} == {b}: {a == b}")  # Uguale
print(f"{a} != {b}: {a != b}")  # Diverso
print(f"{a} < {b}: {a < b}")    # Minore
print(f"{a} <= {b}: {a <= b}")  # Minore o uguale
print(f"{a} > {b}: {a > b}")    # Maggiore
print(f"{a} >= {b}: {a >= b}")  # Maggiore o uguale

Sistema di autenticazione semplice:

def sistema_login():
    print("🔐 SISTEMA DI LOGIN 🔐")

    username_corretto = "admin"
    password_corretta = "python123"

    username = input("Username: ")
    password = input("Password: ")

    if username == username_corretto and password == password_corretta:
        print("✅ Login effettuato con successo!")
        print("Benvenuto nel sistema!")
    elif username == username_corretto:
        print("❌ Password errata!")
    elif password == password_corretta:
        print("❌ Username errato!")
    else:
        print("❌ Credenziali non valide!")

sistema_login()

Esercizi pratici:

  1. Sistema di voti con lettere (A, B, C, D, F)
  2. Calcolatrice delle tasse in base al reddito
  3. Sistema di sconti per negozio online

8. Logical operators 🌦️

Obiettivi di apprendimento:

Contenuto teorico:

# Operatori logici
print("=== OPERATORI LOGICI ===")

# AND - entrambe le condizioni devono essere vere
eta = 25
ha_patente = True

if eta >= 18 and ha_patente:
    print("Puoi guidare! 🚗")
else:
    print("Non puoi guidare! ❌")

# OR - almeno una condizione deve essere vera
giorno = "sabato"
è_festa = False

if giorno == "sabato" or giorno == "domenica" or è_festa:
    print("È weekend o festa! 🎉")
else:
    print("È un giorno lavorativo! 💼")

# NOT - inverte il valore booleano
piove = False

if not piove:
    print("Bel tempo! Andiamo fuori! ☀️")
else:
    print("Sta piovendo! Restiamo in casa! 🌧️")

# Combinazioni complesse
temperatura = 25
umidità = 60
vento = 10

if temperatura > 20 and umidità < 70 and (vento < 15 or not piove):
    print("Condizioni perfette per una passeggiata! 🚶‍♂️")
else:
    print("Meglio restare in casa! 🏠")

Sistema di ammissione università:

def verifica_ammissione():
    print("🎓 SISTEMA AMMISSIONE UNIVERSITÀ 🎓")

    voto_diploma = float(input("Voto di diploma (60-100): "))
    punteggio_test = int(input("Punteggio test d'ingresso (0-100): "))
    ha_borsa_studio = input("Hai una borsa di studio? (s/n): ").lower() == 's'

    # Condizioni per l'ammissione
    if voto_diploma >= 90 and punteggio_test >= 80:
        print("✅ AMMESSO - Eccellenza accademica!")
    elif voto_diploma >= 80 and punteggio_test >= 70:
        print("✅ AMMESSO - Buoni risultati!")
    elif voto_diploma >= 70 and punteggio_test >= 60 and ha_borsa_studio:
        print("✅ AMMESSO - Con borsa di studio!")
    elif voto_diploma >= 60 or punteggio_test >= 50:
        print("⚠️ LISTA D'ATTESA - Risultati sufficienti")
    else:
        print("❌ NON AMMESSO - Risultati insufficienti")

verifica_ammissione()

Tabelle di verità:

def mostra_tabelle_verita():
    print("📊 TABELLE DI VERITÀ 📊")

    valori = [True, False]

    print("\nAND:")
    for a in valori:
        for b in valori:
            print(f"{a} AND {b} = {a and b}")

    print("\nOR:")
    for a in valori:
        for b in valori:
            print(f"{a} OR {b} = {a or b}")

    print("\nNOT:")
    for a in valori:
        print(f"NOT {a} = {not a}")

mostra_tabelle_verita()

Esercizi pratici:

  1. Sistema di controllo accessi con multiple condizioni
  2. Calcolatore di sconto con regole complesse
  3. Sistema di allarme casa con sensori multipli

9. Conditional expressions

Obiettivi di apprendimento:

Contenuto teorico:

# Operatore ternario - sintassi: valore_se_vero if condizione else valore_se_falso

# Esempio base
eta = 20
stato = "maggiorenne" if eta >= 18 else "minorenne"
print(f"Sei {stato}")

# Confronto con if tradizionale
# Versione tradizionale:
if eta >= 18:
    stato = "maggiorenne"
else:
    stato = "minorenne"

# Versione ternaria (più compatta):
stato = "maggiorenne" if eta >= 18 else "minorenne"

# Esempi pratici
numero = 15
parità = "pari" if numero % 2 == 0 else "dispari"
print(f"{numero} è {parità}")

temperatura = 25
abbigliamento = "maglietta" if temperatura > 20 else "maglione"
print(f"Con {temperatura}°C indossa una {abbigliamento}")

# Ternario annidato (sconsigliato se troppo complesso)
voto = 8.5
risultato = "eccellente" if voto >= 9 else "buono" if voto >= 7 else "sufficiente" if voto >= 6 else "insufficiente"
print(f"Voto {voto}: {risultato}")

# Meglio usare if-elif per casi complessi
if voto >= 9:
    risultato = "eccellente"
elif voto >= 7:
    risultato = "buono"
elif voto >= 6:
    risultato = "sufficiente"
else:
    risultato = "insufficiente"

Esempi pratici avanzati:

# Calcolatore di sconti
prezzo = 100
quantità = 5

sconto = 0.2 if quantità >= 10 else 0.1 if quantità >= 5 else 0
prezzo_finale = prezzo * (1 - sconto)
print(f"Prezzo finale: €{prezzo_finale}")

# Validazione input
nome = input("Inserisci il nome: ")
nome_valido = nome if nome.strip() else "Nome non valido"
print(f"Nome: {nome_valido}")

# Determinare il maggiore tra due numeri
a = 10
b = 15
maggiore = a if a > b else b
print(f"Il maggiore tra {a} e {b} è {maggiore}")

# Alternativa con max()
maggiore = max(a, b)  # Più elegante

# Sistema di messaggi
ore = 14
saluto = "Buongiorno" if ore < 12 else "Buon pomeriggio" if ore < 18 else "Buonasera"
print(saluto)

Quando usare il ternario:

# ✅ BUONO - Semplice e leggibile
status = "online" if user.is_active else "offline"

# ✅ BUONO - Assegnazione condizionale
max_value = a if a > b else b

# ❌ EVITARE - Troppo complesso
result = "A" if score >= 90 else "B" if score >= 80 else "C" if score >= 70 else "D" if score >= 60 else "F"

# ✅ MEGLIO - If-elif per casi multipli
if score >= 90:
    result = "A"
elif score >= 80:
    result = "B"
elif score >= 70:
    result = "C"
elif score >= 60:
    result = "D"
else:
    result = "F"

Esercizi pratici:

  1. Calcolatore di tasse con ternario
  2. Sistema di validazione form
  3. Generatore di messaggi personalizzati