Jäsenyysoperaattorit ja Tyyppivertailut
Tässä luvussa tarkastelemme Pythonin hienovaraisia ominaisuuksia, jotka voivat merkittävästi parantaa tapaa, jolla hallitset ja käsittelet dataa ohjelmissasi — erityisesti jäsenyysoperaattoreita ja tyyppivertailuja.
Katsotaanpa, miten Alex hyödyntää näitä työkaluja:
Jäsenyysoperaattorit ovat hyödyllisiä, kun haluat tarkistaa, löytyykö tiettyjä alkioita tai osamerkkijonoja iteroitavasta oliosta. Iteroitava olio Pythonissa on mikä tahansa, jonka yli voi silmukoida, kuten merkkijonot, listat tai tuplet. Käsittelemme listoja ja tupleja tarkemmin seuraavassa osiossa; toistaiseksi riittää, että ymmärrät jäsenyysoperaattoreita voi käyttää muuhunkin kuin merkkijonoihin.
Tärkeimmät jäsenyysoperaattorit ovat in
ja not in
, jotka molemmat palauttavat boolean-arvon ilmaisten alkion olemassaolon (tai puuttumisen).
Koska olet jo oppinut merkkijonojen indeksoinnista ja viipaloinnista, tiedät, että merkkijonot ovat iteroitavia. Tämä tarkoittaa, että voit käyttää jäsenyysoperaattoreita tarkistaaksesi osamerkkijonon esiintymisen suuremmassa merkkijonossa.
Tarkastellaan seuraavaa esimerkkiä:
itemName = "Strawberries" in_name = "Straw" in itemName print("Is 'Straw' in 'Strawberries'?", in_name)
Esimerkkisovellus
Kuvittele, että hallinnoit tuotekuvauksia tai tuoteryhmiä päivittäistavarakaupan järjestelmässäsi. Saatat saada pitkän merkkijonon tuotetietoja, ja sinun täytyy nopeasti tarkistaa tietyt avainsanat tuotteiden luokittelemiseksi tai korostamiseksi asiakaspreferenssien tai kampanjoiden perusteella:
# 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)
Tietotyyppien tarkistaminen
On tärkeää ymmärtää, minkä tyyppisen datan kanssa työskentelet Pythonissa, erityisesti kun hallinnoit päivittäistavarakaupan järjestelmän monipuolisia tarpeita. type()
-funktio on korvaamaton, sillä sen avulla varmistetaan, että käytössä on oikeat tietotyypit — esimerkiksi merkkijonot tuotenimille, liukuluvut hinnoille ja kokonaisluvut varastosaldoille.
Tämä ei ainoastaan ehkäise virheitä, vaan tekee tietojen käsittelystä ja vertailusta osuvampaa ja luotettavampaa.
Seuraavassa esimerkissä havainnollistetaan, kuinka type()
-funktiota voidaan käyttää varmistamaan, että järjestelmään syötetyt tiedot täyttävät odotetut kriteerit. Tämä on yleinen tarve päivittäistavarakaupan tietojen hallinnassa virheiden estämiseksi kassalla tai varastopäivitysten yhteydessä:
# 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
Tarkista uuden elintarvikkeen tiedot ruokakaupan järjestelmässä käyttämällä jäsenyysoperaattoreita ja tyyppivertailuja.
- Käytä jäsenyysoperaattoreita tarkistaaksesi, esiintyvätkö osamerkkijonot
"raw"
ja"Imported"
muuttujassadescription
. - Tallenna tulokset totuusarvomuuttujiin
contains_raw
jacontains_Imported
. - Käytä
type()
-funktiota tarkistaaksesi, onkoprice
tyyppiäfloat
jacount
tyyppiäint
. - Tallenna näiden tyyppitarkistusten tulokset muuttujiin
price_is_float
jacount_is_int
.
Tulostusvaatimukset
- Tulosta:
Contains 'raw': <contains_raw>
. - Tulosta:
Contains 'Imported': <contains_Imported>
. - Tulosta:
Is price a float?: <price_is_float>
. - Tulosta:
Is count an integer?: <count_is_int>
.
Huom:
Python on kirjainkoon suhteen tarkka, joten
"imported"
ja"Imported"
ovat eri merkkijonoja.
Ratkaisu
Kiitos palautteestasi!