Medlemskabsoperatorer og Type Sammenligninger
I dette kapitel vil vi udforske nogle nuancerede aspekter af Python, der kan forbedre, hvordan du håndterer og interagerer med data i dine programmer — specifikt, Medlemskabsoperatorer og Type Sammenligninger.
Lad os se, hvordan Alex bruger disse værktøjer:
Medlemskabsoperatorer er nyttige, når du skal tjekke, om specifikke elementer eller understrenge er til stede i et iterabelt objekt. Et iterabelt objekt i Python er alt, hvad du kan iterere over, som strenge, lister eller tuples. Vi vil udforske lister og tuples mere detaljeret i næste sektion; for nu, forstå at medlemskabsoperatorer kan anvendes på mere end bare strenge.
De primære medlemskabsoperatorer er in
og not in
, som begge returnerer en boolean værdi, der angiver tilstedeværelsen (eller fraværet) af et element.
Da du allerede har lært om strengindeksering og udskæring, er du bekendt med konceptet om, at strenge er iterable. Dette betyder, at du kan bruge medlemskabsoperatorer til at tjekke for understrenge inden for større strenge.
Overvej følgende eksempel:
itemName = "Strawberries" in_name = "Straw" in itemName print("Is 'Straw' in 'Strawberries'?", in_name)
Eksempel Applikation
Forestil dig, at du administrerer produktbeskrivelser eller kategorier i dit købmandsforretningssystem. Du modtager måske en lang streng af produktdetaljer, og du skal hurtigt tjekke for specifikke nøgleord for at kategorisere eller fremhæve produkter baseret på kundernes præferencer eller salgsfremmende aktiviteter:
# 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)
Verificering af Datatyper
Forståelse af den type data, du har med at gøre i Python, er afgørende, især når du håndterer de forskellige behov i et supermarkedssystem. type()
funktionen er uvurderlig, da den hjælper med at sikre at du arbejder med de korrekte datatyper — såsom strenge til produktnavne, floats til priser og heltal til lagerkvantiteter.
Dette forhindrer ikke kun fejl, men gør også datamanipulationer og sammenligninger mere passende og pålidelige.
I det følgende eksempel illustrerer vi, hvordan type()
kan bruges til at verificere, at de data, der indtastes i systemet, opfylder de forventede kriterier, hvilket er en almindelig nødvendighed i håndtering af supermarkedets data for at forhindre fejl under kassen eller lageropdateringer:
# 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
Bekræft detaljerne for et nyt produkt tilføjet til et dagligvaresystem ved hjælp af medlemskabsoperatorer og type sammenligninger.
- Brug medlemskabsoperatorer til at tjekke, om understrengene
"raw"
og"Imported"
er i variablendescription
. - Tildel resultaterne til de booleske variabler
contains_raw
ogcontains_Imported
. - Brug
type()
funktionen til at tjekke, omprice
er enfloat
ogcount
er enint
. - Tildel resultaterne af disse typekontroller til
price_is_float
ogcount_is_int
.
Outputkrav
- Print:
Contains 'raw': <contains_raw>
. - Print:
Contains 'Imported': <contains_Imported>
. - Print:
Is price a float?: <price_is_float>
. - Print:
Is count an integer?: <count_is_int>
.
Bemærk:
Python skelner mellem store og små bogstaver, så
"imported"
og"Imported"
er forskellige strenge.
Løsning
Tak for dine kommentarer!