============================================================
PROMEMORIA — OPERATORI DI APPARTENENZA E CONFRONTI DI TIPO
============================================================
Questo promemoria riassume:
- operatori di appartenenza: in / not in
- verifica dei tipi di dato con type()
- uso pratico nel contesto di un negozio di alimentari
============================================================
1. OPERATORI DI APPARTENENZA: in / not in
============================================================
Gli operatori di appartenenza permettono di verificare
se un valore è contenuto in un oggetto iterabile
(stringhe, liste, tuple, ecc.).
Restituiscono sempre un valore booleano: True o False
------------------------------------------------------------
ESEMPIO BASE CON STRINGHE
------------------------------------------------------------
item_name = "Strawberries"
Controllo se una sottostringa è presente
contains_straw = "Straw" in item_name
contains_berry = "Berry" in item_name
print("Is 'Straw' in 'Strawberries'?", contains_straw) # True
print("Is 'Berry' in 'Strawberries'?", contains_berry) # False (case-sensitive)
------------------------------------------------------------
ESEMPIO REALISTICO: DESCRIZIONE PRODOTTO
------------------------------------------------------------
product_description = "Fresh organic milk from local farms, pasteurized."
Verifica presenza parole chiave
is_organic = "organic" in product_description
is_local = "local" in product_description
is_raw = "raw" in product_description
print("Is the product organic?", is_organic)
print("Is the product local?", is_local)
print("Is the product raw?", is_raw)
============================================================
2. ATTENZIONE A MAIUSCOLE E MINUSCOLE
============================================================
Python è case-sensitive:
"Imported" è diverso da "imported"
description = "Fresh raw cheese imported from Italy"
contains_imported_upper = "Imported" in description
contains_imported_lower = "imported" in description
print("Contains 'Imported'?", contains_imported_upper) # False
print("Contains 'imported'?", contains_imported_lower) # True
============================================================
3. CONFRONTI DI TIPO CON type()
============================================================
La funzione type() restituisce il tipo di una variabile.
Spesso viene usata nei confronti per validare i dati.
------------------------------------------------------------
ESEMPIO BASE
------------------------------------------------------------
price = 3.49
count = 20
name = "Almond Milk"
price_is_float = type(price) == float
count_is_int = type(count) == int
name_is_string = type(name) == str
print("Is price a float?", price_is_float)
print("Is count an integer?", count_is_int)
print("Is name a string?", name_is_string)
------------------------------------------------------------
ESEMPIO CON ERRORE INTENZIONALE
------------------------------------------------------------
Prezzo ricevuto come stringa (errore comune)
product_price = "3.49"
correct_price_type = type(product_price) == float
print("Is product_price a float?", correct_price_type) # False
============================================================
4. COMPITO RIASSUNTO (COME NELLA SCHEDA)
============================================================
Dati di esempio
description = "Raw honey imported from local farms"
price = 4.99
count = 15
Operatori di appartenenza
contains_raw = "raw" in description
contains_Imported = "Imported" in description
Confronti di tipo
price_is_float = type(price) == float
count_is_int = type(count) == int
Output richiesto
print("Contains 'raw':", contains_raw)
print("Contains 'Imported':", contains_Imported)
print("Is price a float?:", price_is_float)
print("Is count an integer?:", count_is_int)
============================================================
5. CONCETTI CHIAVE DA RICORDARE
============================================================
✔ in / not in → controllano la presenza di un elemento
✔ funzionano su stringhe e strutture iterabili
✔ sono case-sensitive
✔ type() serve per validare i dati
✔ i confronti di tipo restituiscono booleani