Operatori di Appartenenza e Confronti di Tipo
In questo capitolo, esploreremo alcuni aspetti sfumati di Python che possono migliorare significativamente il modo in cui gestisci e interagisci con i dati nei tuoi programmi — specificamente, Operatori di Appartenenza e Confronti di Tipo.
Vediamo come Alex utilizza questi strumenti:
Gli operatori di appartenenza sono utili quando hai bisogno di 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 maggior dettaglio nella sezione successiva; per ora, comprendi che gli operatori di appartenenza possono essere applicati a più delle sole stringhe.
Gli operatori di appartenenza principali sono in
e not in
, entrambi restituiscono un valore booleano che indica la presenza (o assenza) di un elemento.
Poiché hai già imparato l'indicizzazione delle stringhe e il slicing, sei familiare con il concetto che le stringhe sono iterabili. Ciò significa che puoi usare 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 Esempio
Immagina di gestire le descrizioni dei prodotti o categorie nel tuo sistema di negozio di alimentari. Potresti ricevere una lunga stringa di dettagli del prodotto e hai bisogno di controllare rapidamente parole chiave specifiche per categorizzare o evidenziare i prodotti in base alle preferenze dei clienti o alle 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 ha a che fare in Python è cruciale, specialmente quando si gestiscono le diverse esigenze di un sistema di negozio di alimentari. La funzione type()
è inestimabile poiché aiuta a garantire che si stia lavorando con i tipi di dati corretti — come stringhe per i nomi dei prodotti, float per i prezzi e interi per le quantità di stock.
Questo non solo previene bug 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, il che è una necessità comune nella gestione dei dati di un negozio di alimentari per prevenire errori durante il checkout o gli aggiornamenti 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.
- Usa gli operatori di appartenenza per controllare se le sottostringhe
"raw"
e"Imported"
sono 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 è case sensitive, quindi
"imported"
e"Imported"
sono stringhe diverse.
Soluzione
Grazie per i tuoi commenti!