Medlemskapsoperatorer och Typjämförelser
I det här kapitlet kommer vi att utforska några nyanserade aspekter av Python som kan förbättra hur du hanterar och interagerar med data i dina program — specifikt medlemskapsoperatorer och typjämförelser.
Låt oss se hur Alex använder dessa verktyg:
Medlemskapsoperatorer är användbara när du behöver kontrollera om specifika objekt eller delsträngar finns i ett itererbart objekt. Ett itererbart objekt i Python är allt som du kan loopa över, såsom strängar, listor eller tupler. Vi kommer att utforska listor och tupler mer i detalj i nästa avsnitt; för tillfället är det viktigt att förstå att medlemskapsoperatorer kan användas på mer än bara strängar.
De primära medlemskapsoperatorerna är in
och not in
, vilka båda returnerar ett booleskt värde som indikerar förekomsten (eller frånvaron) av ett objekt.
Eftersom du redan har lärt dig om strängindexering och slicing är du bekant med konceptet att strängar är itererbara. Det innebär att du kan använda medlemskapsoperatorer för att kontrollera om delsträngar finns i större strängar.
Titta på följande exempel:
itemName = "Strawberries" in_name = "Straw" in itemName print("Is 'Straw' in 'Strawberries'?", in_name)
Exempel på tillämpning
Föreställ dig att du hanterar produktbeskrivningar eller kategorier i ditt livsmedelsbutikssystem. Du kan få en lång sträng med produktdetaljer och behöver snabbt kontrollera specifika nyckelord för att kategorisera eller lyfta fram produkter baserat på kundpreferenser eller kampanjaktiviteter:
# 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)
Verifiera datatyper
Att förstå vilken typ av data du arbetar med i Python är avgörande, särskilt när du hanterar de varierande behoven i ett livsmedelsbutikssystem. Funktionen type()
är ovärderlig eftersom den hjälper till att säkerställa att du arbetar med rätt datatyper — såsom strängar för produktnamn, flyttal för priser och heltal för lagersaldon.
Detta förhindrar inte bara fel utan gör även datamanipulationer och jämförelser mer lämpliga och tillförlitliga.
I följande exempel visar vi hur type()
kan användas för att verifiera att de data som matas in i systemet uppfyller de förväntade kriterierna, vilket är en vanlig nödvändighet vid hantering av livsmedelsbutiksdata för att förhindra fel vid utcheckning eller uppdatering av lager:
# 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
Verifiera detaljerna för en ny produkt som lagts till i ett livsmedelsbutikssystem med hjälp av medlemskapsoperatorer och typjämförelser.
- Använd medlemskapsoperatorer för att kontrollera om delsträngarna
"raw"
och"Imported"
finns i variabelndescription
. - Tilldela resultaten till de booleska variablerna
contains_raw
ochcontains_Imported
. - Använd funktionen
type()
för att kontrollera omprice
är enfloat
ochcount
är enint
. - Tilldela resultaten av dessa typkontroller till
price_is_float
ochcount_is_int
.
Utskriftskrav
- Skriv ut:
Contains 'raw': <contains_raw>
. - Skriv ut:
Contains 'Imported': <contains_Imported>
. - Skriv ut:
Is price a float?: <price_is_float>
. - Skriv ut:
Is count an integer?: <count_is_int>
.
Observera:
Python är skiftlägeskänsligt, så
"imported"
och"Imported"
är olika strängar.
Lösning
Tack för dina kommentarer!