Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Lære Listeoppførsel i Funksjoner | Funksjoner
Introduksjon til Python

Sveip for å vise menyen

book
Listeoppførsel i Funksjoner

La oss utforske arbeid med lister inne i funksjoner. Selv om det ligner på å jobbe med tall, er det noen viktige detaljer å være oppmerksom på.

Lister er muterbare, noe som betyr at eventuelle endringer gjort på en liste inne i en funksjon også vil påvirke den opprinnelige listen utenfor funksjonen hvis den sendes direkte.

For å forhindre dette, kan du bruke copy()-metoden med alle muterbare datatyper. Ved å gjøre dette, oppretter du en grunn kopi av listen, slik at du kan endre en duplikat i stedet for originalen. Dette sikrer at endringer gjort innen funksjonen ikke påvirker den opprinnelige listen.

1234567891011121314
def add_strawberry(original_list): list_copy = original_list.copy() # Create a copy of the original list list_copy.append("Strawberry") # Modify the copied list return list_copy # Original list fruits = ["Apple", "Banana", "Cherry"] # Call the function new_fruits = add_strawberry(fruits) # Check the results print("Original list:", fruits) # ['Apple', 'Banana', 'Cherry'] print("Modified list:", new_fruits) # ['Apple', 'Banana', 'Cherry', 'Strawberry']
copy

I dette eksempelet forblir den opprinnelige fruits-listen uendret fordi copy() ble brukt. Uten copy(), ville endring av listen inne i funksjonen også ha endret den opprinnelige fruits-listen.

Oppgave

Swipe to start coding

Lag en funksjon for å anvende en 10% rabatt på produktpriser over $2.00, uten å endre den opprinnelige listen.

  • Definer en funksjon apply_discount(prices) som tar en liste med priser.
  • Inne i funksjonen, lag en kopi av prices og tilordne den til prices_copy.
  • Bruk en for-løkke med indeksiterasjon (range(len(prices_copy))) for å gå gjennom den kopierte listen.
  • Hvis en pris er større enn 2.00, anvend en 10% rabatt.
  • Returner den oppdaterte prices_copy-listen.

Utdata Krav

  • Funksjonen skal returnere den nye listen med rabatterte priser.
  • Skriv ut resultatet ved å bruke:
    Oppdaterte produktpriser: <$updated_prices>

Merk

Bruk indeksbasert iterasjon for å sikre at listen blir modifisert riktig: for index in range(len(prices)): modifiserer elementer direkte, i motsetning til for price in prices:.

Løsning

Switch to desktopBytt til skrivebordet for virkelighetspraksisFortsett der du er med et av alternativene nedenfor
Alt var klart?

Hvordan kan vi forbedre det?

Takk for tilbakemeldingene dine!

Seksjon 6. Kapittel 4
Vi beklager at noe gikk galt. Hva skjedde?

Spør AI

expand
ChatGPT

Spør om hva du vil, eller prøv ett av de foreslåtte spørsmålene for å starte chatten vår

book
Listeoppførsel i Funksjoner

La oss utforske arbeid med lister inne i funksjoner. Selv om det ligner på å jobbe med tall, er det noen viktige detaljer å være oppmerksom på.

Lister er muterbare, noe som betyr at eventuelle endringer gjort på en liste inne i en funksjon også vil påvirke den opprinnelige listen utenfor funksjonen hvis den sendes direkte.

For å forhindre dette, kan du bruke copy()-metoden med alle muterbare datatyper. Ved å gjøre dette, oppretter du en grunn kopi av listen, slik at du kan endre en duplikat i stedet for originalen. Dette sikrer at endringer gjort innen funksjonen ikke påvirker den opprinnelige listen.

1234567891011121314
def add_strawberry(original_list): list_copy = original_list.copy() # Create a copy of the original list list_copy.append("Strawberry") # Modify the copied list return list_copy # Original list fruits = ["Apple", "Banana", "Cherry"] # Call the function new_fruits = add_strawberry(fruits) # Check the results print("Original list:", fruits) # ['Apple', 'Banana', 'Cherry'] print("Modified list:", new_fruits) # ['Apple', 'Banana', 'Cherry', 'Strawberry']
copy

I dette eksempelet forblir den opprinnelige fruits-listen uendret fordi copy() ble brukt. Uten copy(), ville endring av listen inne i funksjonen også ha endret den opprinnelige fruits-listen.

Oppgave

Swipe to start coding

Lag en funksjon for å anvende en 10% rabatt på produktpriser over $2.00, uten å endre den opprinnelige listen.

  • Definer en funksjon apply_discount(prices) som tar en liste med priser.
  • Inne i funksjonen, lag en kopi av prices og tilordne den til prices_copy.
  • Bruk en for-løkke med indeksiterasjon (range(len(prices_copy))) for å gå gjennom den kopierte listen.
  • Hvis en pris er større enn 2.00, anvend en 10% rabatt.
  • Returner den oppdaterte prices_copy-listen.

Utdata Krav

  • Funksjonen skal returnere den nye listen med rabatterte priser.
  • Skriv ut resultatet ved å bruke:
    Oppdaterte produktpriser: <$updated_prices>

Merk

Bruk indeksbasert iterasjon for å sikre at listen blir modifisert riktig: for index in range(len(prices)): modifiserer elementer direkte, i motsetning til for price in prices:.

Løsning

Switch to desktopBytt til skrivebordet for virkelighetspraksisFortsett der du er med et av alternativene nedenfor
Alt var klart?

Hvordan kan vi forbedre det?

Takk for tilbakemeldingene dine!

Seksjon 6. Kapittel 4
Switch to desktopBytt til skrivebordet for virkelighetspraksisFortsett der du er med et av alternativene nedenfor
Vi beklager at noe gikk galt. Hva skjedde?
some-alt