🧩 ESERCIZI — Combinazione di Condizioni (AND, OR, NOT)

(Soluzioni subito sotto ogni esercizio)


🔹 Esercizio 1 — Controllo ingresso

Un utente può accedere se ha almeno 18 anni.

Crea una condizione che stampi “Allowed” se l’utente può accedere.

✔️ Soluzione

age = 20

if age >= 18:
    print("Allowed")
else:
    print("Denied")

🔹 Esercizio 2 — Sconto su prodotto

Uno sconto è applicabile se:

  • il prezzo è inferiore a 10, e
  • il prodotto è in stock.

✔️ Soluzione

price = 7
stock = 5

if price < 10 and stock > 0:
    print("Discount available")

🔹 Esercizio 3 — Accesso con genitore

Un ragazzo può entrare in un evento se:

  • ha almeno 16 anni oppure
  • è accompagnato da un genitore.

✔️ Soluzione

age = 15
with_parent = True

if age >= 16 or with_parent:
    print("Access granted")

🔹 Esercizio 4 — Verifica licenza

Un software deve verificare se:

  • la licenza non è scaduta.

✔️ Soluzione

expired = False

if not expired:
    print("License valid")

🔹 Esercizio 5 — Perimetro di sicurezza

Mostra un warning se:

  • un sensore è attivo e
  • un movimento è rilevato.

✔️ Soluzione

sensor_active = True
motion_detected = True

if sensor_active and motion_detected:
    print("Warning! Movement detected.")

🔹 Esercizio 6 — Ordine valido

Un ordine è valido se:

  • il cliente è registrato e
  • ha inserito il metodo di pagamento.

✔️ Soluzione

registered = True
payment_added = True

if registered and payment_added:
    print("Order valid")

🔹 Esercizio 7 — Temperatura ideale

Stampa “OK” se la temperatura è tra 18 e 30 gradi (compresi).

✔️ Soluzione

temp = 25

if 18 <= temp <= 30:
    print("OK")

🔹 Esercizio 8 — Accesso ad area riservata

Mostra “Access denied” se:

  • l’utente è bannato oppure
  • non ha un documento valido.

✔️ Soluzione

banned = False
valid_id = False

if banned or not valid_id:
    print("Access denied")

🔹 Esercizio 9 — Menu di colazione

Controlla che la lista degli acquisti contenga sia latte che cereali.

✔️ Soluzione

cart = ["milk", "eggs", "cereal"]

if "milk" in cart and "cereal" in cart:
    print("Breakfast ready!")

🔹 Esercizio 10 — Controllo password

Una password è accettabile se:

  • è lunga almeno 8 caratteri e
  • contiene una "@" oppure
  • contiene un "#"

✔️ Soluzione

password = "test@123"

if len(password) >= 8 and ("@" in password or "#" in password):
    print("Password ok")

🔹 Esercizio 11 — Autorizzazione premium

L’utente può accedere ai contenuti premium se:

  • è abbonato oppure
  • ha un codice di accesso valido, e non è sospeso.

✔️ Soluzione

subscribed = False
access_code_valid = True
suspended = False

if (subscribed or access_code_valid) and not suspended:
    print("Premium content unlocked")

🔹 Esercizio 12 — Diagnosi dispositivo

Mostra “Device failure” se:

  • la temperatura supera 80 oppure
  • il livello batteria è sotto 5 e
  • il dispositivo non è in modalità manutenzione.

✔️ Soluzione

temp = 85
battery = 3
maintenance_mode = False

if (temp > 80 or battery < 5) and not maintenance_mode:
    print("Device failure")

🔹 Esercizio 13 — Login complesso

Un login è consentito se:

  • username non è vuoto
  • password non è vuota
  • e l’utente non è bloccato
  • oppure è in modalità “override”

✔️ Soluzione

username = "admin"
password = "1234"
blocked = False
override = False

if (username != "" and password != "" and not blocked) or override:
    print("Login ok")

🔹 Esercizio 14 — Categoria prodotto

Un prodotto è di categoria “valid” se:

  • il nome inizia con “A” e
  • ha almeno 3 caratteri oppure
  • termina con "x"

✔️ Soluzione

product = "Alto"

if (product.startswith("A") and len(product) >= 3) or product.endswith("x"):
    print("Valid product")

🔹 Esercizio 15 — Sistema antifurto

L’allarme deve suonare se:

  • la porta è aperta e non è stata inserita la password oppure
  • il sensore esterno rileva un intruso.

✔️ Soluzione

door_open = True
password_entered = False
intruder_detected = False

if (door_open and not password_entered) or intruder_detected:
    print("Alarm ON")