Operatori di Appartenenza e Confronti di Tipo
In questo capitolo, esploreremo alcuni aspetti sfumati di Python che possono migliorare notevolmente il modo in cui gestisci e interagisci con i dati nei tuoi programmi — in particolare, Operatori di Appartenenza e Confronti di Tipo.
Vediamo come Alex utilizza questi strumenti:
Gli operatori di appartenenza sono utili quando è necessario verificare se elementi specifici o sottostringhe sono presenti all'interno di un oggetto iterabile. Un oggetto iterabile in Python è qualsiasi cosa su cui puoi iterare, come stringhe, liste o tuple. Esploreremo liste e tuple in modo più dettagliato nella prossima sezione; per ora, è importante capire che gli operatori di appartenenza possono essere applicati a più dei soli stringhe.
Gli operatori di appartenenza principali sono in
e not in
, entrambi restituiscono un valore booleano che indica la presenza (o l'assenza) di un elemento.
Poiché hai già imparato l'indicizzazione e il slicing delle stringhe, conosci il concetto che le stringhe sono iterabili. Questo significa che puoi utilizzare gli operatori di appartenenza per verificare la presenza di sottostringhe all'interno di stringhe più grandi.
Considera il seguente esempio:
itemName = "Strawberries" in_name = "Straw" in itemName print("Is 'Straw' in 'Strawberries'?", in_name)
Applicazione di esempio
Immagina di gestire le descrizioni dei prodotti o le categorie nel sistema del tuo negozio di alimentari. Potresti ricevere una lunga stringa di dettagli sui prodotti e avere la necessità di verificare rapidamente la presenza di parole chiave specifiche per categorizzare o evidenziare i prodotti in base alle preferenze dei clienti o ad attività promozionali:
# Product description from supplier product_description = "Fresh organic milk from local farms, pasteurized and homogenized." # Check if the "organic" and "local" keywords are in the product description is_organic = "organic" in product_description is_local = "local" in product_description # Print the presence of these keywords to decide on marketing strategies print("Is the product organic?", is_organic) print("Is the product locally sourced?", is_local)
Verifica dei tipi di dati
Comprendere il tipo di dati con cui si sta lavorando in Python è fondamentale, soprattutto nella gestione delle diverse esigenze di un sistema per negozi di alimentari. La funzione type()
è preziosa perché aiuta a garantire l'utilizzo dei tipi di dati corretti — come stringhe per i nomi dei prodotti, float per i prezzi e interi per le quantità in magazzino.
Questo non solo previene errori, ma rende anche le manipolazioni e i confronti dei dati più appropriati e affidabili.
Nel seguente esempio, illustriamo come type()
possa essere utilizzato per verificare che i dati inseriti nel sistema soddisfino i criteri attesi, una necessità comune nella gestione dei dati di un negozio di alimentari per prevenire errori durante il checkout o l'aggiornamento dell'inventario:
# Sample data received from a cashier or inventory management system product_name = "Almond Milk" product_price = "3.49" product_quantity = 30 # Checking if the data types are as expected correct_name_type = type(product_name) == str correct_price_type = type(product_price) == float # Intentional error for demonstration correct_quantity_type = type(product_quantity) == int # Print the results to verify data types print("Is product_name a string?", correct_name_type) print("Is product_price a float?", correct_price_type) # Expected: False, actual data type is a string print("Is product_quantity an integer?", correct_quantity_type) print("Data type check complete. Please review and correct any 'False' outcomes for data corrections.")
Swipe to start coding
Verifica i dettagli di un nuovo prodotto aggiunto a un sistema di negozio di alimentari utilizzando operatori di appartenenza e confronti di tipo.
- Utilizza gli operatori di appartenenza per controllare se le sottostringhe
"raw"
e"Imported"
sono presenti nella variabiledescription
. - Assegna i risultati alle variabili booleane
contains_raw
econtains_Imported
. - Usa la funzione
type()
per verificare seprice
è unfloat
ecount
è unint
. - Assegna i risultati di questi controlli di tipo a
price_is_float
ecount_is_int
.
Requisiti di output
- Stampa:
Contains 'raw': <contains_raw>
. - Stampa:
Contains 'Imported': <contains_Imported>
. - Stampa:
Is price a float?: <price_is_float>
. - Stampa:
Is count an integer?: <count_is_int>
.
Nota:
Python fa distinzione tra maiuscole e minuscole, quindi
"imported"
e"Imported"
sono stringhe diverse.
Soluzione
Grazie per i tuoi commenti!