Modifisere Funksjoner
I programmering er funksjoner dynamiske verktøy som kan tilpasses ulike situasjoner og behov. De er ikke bare faste kodeblokker. Du kan forbedre funksjoner for å gjøre dem mer allsidige og brukervennlige i forskjellige sammenhenger.
I dette kapittelet skal vi utforske noen viktige teknikker for å endre funksjoner, som å bruke standardargumenter og nøkkelordargumenter.
La oss begynne med et enkelt eksempel på modifisering av funksjoner for å øke nytteverdien i vårt dagligvarebutikk-administrasjonssystem:
Standardargumenter
Standardargumenter er en nyttig funksjon i Python som lar deg angi standardverdier for funksjonsparametere.
I apply_discount()
-funksjonen er parameteren discount
satt til 0.10
som standard. Dette betyr at funksjonen automatisk vil bruke en 10 % rabatt med mindre noe annet er spesifisert. Som vist i variabelen default_discount_price
, kan vi kalle funksjonen kun med parameteren price
.
Om nødvendig kan vi overstyre standardverdien ved å sende inn både price
og en egendefinert discount
(for eksempel 0.20
for 20 %) slik det demonstreres med variabelen custom_discount_price
.
# 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}")
Nøkkelordargumenter
Nøkkelordargumenter i Python lar deg sende argumenter ved å eksplisitt navngi hver parameter, noe som gjør funksjonskallene dine mer lesbare og fleksible. Dette er spesielt nyttig når en funksjon har flere parametere eller når rekkefølgen på argumentene kan være forvirrende.
I eksempelet under er både price
og discount
spesifisert, mens parameteren tax
beholder sin standardverdi, noe som gir fleksibilitet uten å gå på bekostning av tydelighet.
# 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}")
Merk
Rekkefølgen på parametere spiller ingen rolle når de sendes med nøkkelordargumenter.
Swipe to start coding
Lag funksjoner for å beregne totalprisen på et produkt ved å bruke rabatt og mva, med nøkkelordargumenter og standardverdier for fleksibilitet.
- Definer
apply_discount(price, discount=0.05)
→ Returnerer prisen etter at rabatten er trukket fra. - Definer
apply_tax(price, tax=0.07)
→ Returnerer prisen etter at mva er lagt til. - Definer
calculate_total(price, discount=0.05, tax=0.07)
→ Brukerapply_discount()
ogapply_tax()
for å returnere totalprisen med både rabatt og mva. - Kall
calculate_total(120)
med standard rabatt og mva. - Kall
calculate_total(100, discount=0.10, tax=0.08)
med egendefinerte verdier via nøkkelordargumenter.
Krav til utdata
- Skriv ut resultatet med standardverdier:
Total cost with default discount and tax: $<total_price_default>
- Skriv ut resultatet med egendefinerte verdier:
Total cost with custom discount and tax: $<total_price_custom>
Merk
Når du definerer funksjoner, plasser påkrevde parametere først, etterfulgt av parametere med standardverdier.
Ved kall av funksjoner med nøkkelordargumenter, skal posisjonsargumenter komme før nøkkelordargumenter.
Løsning
Takk for tilbakemeldingene dine!