Medlemskapsoperatorer och Typjämförelser
I det här kapitlet kommer vi att utforska några nyanserade aspekter av Python som kan avsevärt förbättra hur du hanterar och interagerar med data i dina program — specifikt, Medlemsoperatörer och Typjämförelser.
Låt oss se hur Alex använder dessa verktyg:
Medlemsoperatörer är användbara när du behöver kontrollera om specifika objekt eller delsträngar finns inom ett itererbart objekt. Ett itererbart objekt i Python är något som du kan loopa över, som strängar, listor eller tupler. Vi kommer att utforska listor och tupler mer i detalj i nästa avsnitt; för nu, förstå att medlemsoperatörer kan tillämpas på mer än bara strängar.
De primära medlemsoperatörerna är in
och not in
, båda returnerar ett boolean värde som indikerar närvaron (eller frånvaron) av ett objekt.
Eftersom du redan har lärt dig om strängindexering och skivning, är du bekant med konceptet att strängar är itererbara. Detta innebär att du kan använda medlemsoperatörer för att kontrollera delsträngar inom större strängar.
Tänk på följande exempel:
itemName = "Strawberries" in_name = "Straw" in itemName print("Is 'Straw' in 'Strawberries'?", in_name)
Exempelapplikation
Föreställ dig att du hanterar produktbeskrivningar eller kategorier i ditt livsmedelsbutikssystem. Du kanske får en lång sträng av produktdetaljer, och du behöver snabbt kontrollera specifika nyckelord för att kategorisera eller markera 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 har att göra med i Python är avgörande, särskilt när du hanterar de olika 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 lagermängder.
Detta förhindrar inte bara buggar utan gör också datamanipulationer och jämförelser mer lämpliga och pålitliga.
I följande exempel illustrerar vi hur type()
kan användas för att verifiera att den 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 lageruppdateringar:
# 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 understrä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
.
Utmatningskrav
- 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>
.
Notera:
Python är skiftlägeskänsligt, så
"imported"
och"Imported"
är olika strängar.
Lösning
Tack för dina kommentarer!