Funktioiden Muokkaaminen
Ohjelmoinnissa funktiot ovat dynaamisia työkaluja, jotka voivat mukautua erilaisiin tilanteisiin ja tarpeisiin. Ne eivät ole vain kiinteitä koodilohkoja. Funktioita voidaan kehittää, jotta niistä tulee monipuolisempia ja käyttäjäystävällisempiä eri yhteyksissä.
Tässä luvussa tarkastelemme tärkeitä tapoja muokata funktioita, kuten oletusargumenttien ja avainsana-argumenttien käyttöä.
Aloitetaan yksinkertaisella esimerkillä siitä, miten funktioita voidaan muokata parantamaan niiden hyödyllisyyttä ruokakaupan hallintajärjestelmässämme:
Oletusargumentit
Oletusargumentit ovat hyödyllinen ominaisuus Pythonissa, jonka avulla voit määrittää oletusarvot funktion parametreille.
apply_discount()
-funktiossa discount
-parametrin oletusarvona on 0.10
. Tämä tarkoittaa, että funktio käyttää automaattisesti 10 %:n alennusta, ellei toisin määritetä. Kuten default_discount_price
-muuttujassa nähdään, voimme kutsua funktiota pelkällä price
-parametrilla.
Tarvittaessa voimme kuitenkin ylikirjoittaa oletusarvon antamalla sekä price
- että mukautetun discount
-arvon (esim. 0.20
20 %:n alennukselle), kuten custom_discount_price
-muuttujassa on esitetty.
# Define a function with a default `discount` argument def apply_discount(price, discount=0.10): discounted_price = price * (1 - discount) return discounted_price # Call the function without providing a `discount`, using the default value default_discount_price = apply_discount(100) print(f"Price after applying the default discount: ${default_discount_price}") # Call the function with a custom `discount` value custom_discount_price = apply_discount(100, 0.20) print(f"Price after applying a custom discount: ${custom_discount_price}")
Avainsana-argumentit
Avainsana-argumentit Pythonissa mahdollistavat argumenttien välittämisen nimeämällä jokainen parametri erikseen, mikä tekee funktiokutsuista luettavampia ja joustavampia. Tämä on erityisen hyödyllistä, kun funktiolla on useita parametreja tai kun argumenttien järjestys voi olla hämmentävä.
Seuraavassa esimerkissä sekä price
että discount
määritellään, kun taas tax
-parametri säilyttää oletusarvonsa, tarjoten joustavuutta ilman, että selkeys kärsii.
# Function where `tax` has a default value def calculate_total(price, discount, tax=0.05): total = price * (1 + tax) * (1 - discount) return total # Calling the function using keyword arguments total_cost = calculate_total(price=100, discount=0.15) print(f"Total cost after applying discount: ${total_cost}")
Huom
Parametrien järjestyksellä ei ole merkitystä, kun ne välitetään avainsana-argumentteina.
Swipe to start coding
Luo funktioita, jotka laskevat tuotteen kokonaiskustannuksen soveltamalla alennusta ja veroa käyttäen avainsana-argumentteja ja oletusarvoja joustavuuden takaamiseksi.
- Määrittele
apply_discount(price, discount=0.05)
→ Palauttaa hinnan alennuksen jälkeen. - Määrittele
apply_tax(price, tax=0.07)
→ Palauttaa hinnan veron lisäämisen jälkeen. - Määrittele
calculate_total(price, discount=0.05, tax=0.07)
→ Käyttää funktioitaapply_discount()
jaapply_tax()
ja palauttaa kokonaishinnan, johon on sovellettu sekä alennus että vero. - Kutsu
calculate_total(120)
käyttäen oletusalennusta ja -veroa. - Kutsu
calculate_total(100, discount=0.10, tax=0.08)
käyttäen mukautettuja arvoja avainsana-argumenteilla.
Tulostusvaatimukset
- Tulosta tulos oletusarvoilla:
Total cost with default discount and tax: $<total_price_default>
- Tulosta tulos mukautetuilla arvoilla:
Total cost with custom discount and tax: $<total_price_custom>
Huom
Funktioita määriteltäessä pakolliset parametrit sijoitetaan ensin, sitten parametrit, joilla on oletusarvot.
Funktioita kutsuttaessa sijoitetut argumentit tulee antaa ennen avainsana-argumentteja.
Ratkaisu
Kiitos palautteestasi!