Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Lære Listeadfærd i Funktioner | Funktioner
Introduktion til Python

Stryg for at vise menuen

book
Listeadfærd i Funktioner

Lad os udforske arbejde med lister inde i funktioner. Selvom det ligner arbejdet med tal, er der nogle vigtige detaljer at være opmærksom på.

Lister er mutable, hvilket betyder, at enhver ændring foretaget på en liste inde i en funktion også vil påvirke den oprindelige liste uden for funktionen, hvis den sendes direkte.

For at forhindre dette kan du bruge copy()-metoden med enhver mutabel datatype. Ved at gøre dette opretter du en shallow copy af listen, så du kan ændre en kopi i stedet for originalen. Dette sikrer, at ændringer foretaget inden i funktionen ikke påvirker den oprindelige liste.

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 eksempel forbliver den oprindelige fruits-liste uændret, fordi copy() blev brugt. Uden copy() ville ændring af listen inde i funktionen også have ændret den oprindelige fruits-liste.

Opgave

Swipe to start coding

Opret en funktion til at anvende en 10% rabat på produktpriser over $2.00, uden at ændre den oprindelige liste.

  • Definer en funktion apply_discount(prices) der tager en liste af priser.
  • Inde i funktionen, lav en kopi af prices og tildel den til prices_copy.
  • Brug en for-løkke med indeksiteration (range(len(prices_copy))) for at gennemgå den kopierede liste.
  • Hvis en pris er større end 2.00, anvend en 10% rabat.
  • Returner den opdaterede prices_copy liste.

Outputkrav

  • Funktionen skal returnere den nye liste med nedsatte priser.
  • Print resultatet ved hjælp af:
    Updated product prices: <$updated_prices>

Bemærk

Brug indeksbaseret iteration for at sikre, at listen ændres korrekt: for index in range(len(prices)): ændrer elementer direkte, i modsætning til for price in prices:.

Løsning

Switch to desktopSkift til skrivebord for at øve i den virkelige verdenFortsæt der, hvor du er, med en af nedenstående muligheder
Var alt klart?

Hvordan kan vi forbedre det?

Tak for dine kommentarer!

Sektion 6. Kapitel 4
single

single

Spørg AI

expand

Spørg AI

ChatGPT

Spørg om hvad som helst eller prøv et af de foreslåede spørgsmål for at starte vores chat

close

Awesome!

Completion rate improved to 2.17

book
Listeadfærd i Funktioner

Lad os udforske arbejde med lister inde i funktioner. Selvom det ligner arbejdet med tal, er der nogle vigtige detaljer at være opmærksom på.

Lister er mutable, hvilket betyder, at enhver ændring foretaget på en liste inde i en funktion også vil påvirke den oprindelige liste uden for funktionen, hvis den sendes direkte.

For at forhindre dette kan du bruge copy()-metoden med enhver mutabel datatype. Ved at gøre dette opretter du en shallow copy af listen, så du kan ændre en kopi i stedet for originalen. Dette sikrer, at ændringer foretaget inden i funktionen ikke påvirker den oprindelige liste.

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 eksempel forbliver den oprindelige fruits-liste uændret, fordi copy() blev brugt. Uden copy() ville ændring af listen inde i funktionen også have ændret den oprindelige fruits-liste.

Opgave

Swipe to start coding

Opret en funktion til at anvende en 10% rabat på produktpriser over $2.00, uden at ændre den oprindelige liste.

  • Definer en funktion apply_discount(prices) der tager en liste af priser.
  • Inde i funktionen, lav en kopi af prices og tildel den til prices_copy.
  • Brug en for-løkke med indeksiteration (range(len(prices_copy))) for at gennemgå den kopierede liste.
  • Hvis en pris er større end 2.00, anvend en 10% rabat.
  • Returner den opdaterede prices_copy liste.

Outputkrav

  • Funktionen skal returnere den nye liste med nedsatte priser.
  • Print resultatet ved hjælp af:
    Updated product prices: <$updated_prices>

Bemærk

Brug indeksbaseret iteration for at sikre, at listen ændres korrekt: for index in range(len(prices)): ændrer elementer direkte, i modsætning til for price in prices:.

Løsning

Switch to desktopSkift til skrivebord for at øve i den virkelige verdenFortsæt der, hvor du er, med en af nedenstående muligheder
Var alt klart?

Hvordan kan vi forbedre det?

Tak for dine kommentarer!

close

Awesome!

Completion rate improved to 2.17

Stryg for at vise menuen

some-alt