In questo capitolo approfondiamo due strumenti fondamentali per lavorare in modo più preciso ed efficiente con i dati nei tuoi programmi Python: 🔍 gli operatori di appartenenza 🔎 i confronti di tipo
Questi strumenti diventano indispensabili quando si gestiscono informazioni provenienti da sistemi di cassa, inventari o cataloghi di prodotti—contesti tipici di un negozio di alimentari.
Gli operatori di appartenenza permettono di verificare rapidamente se un elemento è contenuto all’interno di un oggetto iterabile. In Python, stringhe, liste, tuple e molti altri oggetti possono essere "iterati", quindi puoi controllarne facilmente il contenuto.
Grazie a quanto hai già imparato su indicizzazione e slicing, sai che le stringhe sono iterabili: questo ti permette di verificare se una sottostringa compare all’interno di una stringa più lunga.
Esempio:
itemName = "Strawberries"
in_name = "Straw" in itemName
print("Is 'Straw' in 'Strawberries'?", in_name)
Nel contesto di un negozio, potresti usarli per categorizzare prodotti, identificare keyword importanti o marcare articoli speciali.
Il fornitore invia una descrizione di un prodotto; il sistema deve capire se sono presenti parole chiave come organic, local, raw, ecc.
Esempio:
product_description = "Fresh organic milk from local farms."
is_organic = "organic" in product_description
is_local = "local" in product_description
type()Nella gestione dei dati di un negozio, è essenziale verificare che ogni campo abbia il tipo corretto:
Un errore di tipo può portare a problemi nel checkout, nel calcolo dei totali o nell’aggiornamento delle scorte.
La funzione type() permette di verificare rapidamente se un valore è del tipo atteso:
correct_name_type = type(product_name) == str
correct_price_type = type(product_price) == float
correct_quantity_type = type(product_quantity) == int
Stai aggiungendo un nuovo prodotto al sistema del negozio. Dovrai verificare parole chiave nella descrizione e controllare i tipi dei dati forniti.
Controlla se le parole:
"raw""Imported"sono presenti nella variabile description.
Salva i risultati in:
contains_rawcontains_ImportedAttenzione! Python distingue tra maiuscole e minuscole:
"imported"≠"Imported".
Verifica con type() se:
price è un floatcount è un intAssegna i risultati a:
price_is_floatcount_is_intIl tuo programma deve stampare:
Contains 'raw': <contains_raw>
Contains 'Imported': <contains_Imported>
Is price a float?: <price_is_float>
Is count an integer?: <count_is_int>