Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Lernen Listenverhalten in Funktionen | Funktionen
Einführung in Python

Swipe um das Menü anzuzeigen

book
Listenverhalten in Funktionen

Untersuchen wir das Arbeiten mit Listen innerhalb von Funktionen. Obwohl es dem Arbeiten mit Zahlen ähnelt, gibt es einige wichtige Details zu beachten.

Listen sind veränderbar (mutable), was bedeutet, dass alle Änderungen an einer Liste innerhalb einer Funktion auch die ursprüngliche Liste außerhalb der Funktion beeinflussen, wenn sie direkt übergeben wird.

Um dies zu verhindern, kann die Methode copy() bei jedem veränderbaren Datentyp verwendet werden. Dadurch wird eine flache Kopie der Liste erstellt, sodass Sie eine Kopie statt des Originals ändern. Dies stellt sicher, dass Änderungen innerhalb der Funktion das Original nicht beeinflussen.

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

In diesem Beispiel bleibt die ursprüngliche Liste fruits unverändert, da copy() verwendet wurde. Ohne copy() hätte das Ändern der Liste innerhalb der Funktion auch die ursprüngliche Liste fruits verändert.

Aufgabe

Swipe to start coding

Eine Funktion erstellen, die einen 10% Rabatt auf Produktpreise über 2,00 $ anwendet, ohne die ursprüngliche Liste zu verändern.

  • Eine Funktion apply_discount(prices) definieren, die eine Liste von Preisen entgegennimmt.
  • Innerhalb der Funktion eine Kopie von prices erstellen und dieser prices_copy zuweisen.
  • Eine for-Schleife mit Index-Iteration (range(len(prices_copy))) verwenden, um die kopierte Liste zu durchlaufen.
  • Wenn ein Preis größer als 2.00 ist, einen 10% Rabatt anwenden.
  • Die aktualisierte Liste prices_copy zurückgeben.

Ausgabebedingungen

  • Die Funktion soll die neue Liste mit rabattierten Preisen zurückgeben.
  • Das Ergebnis ausgeben mit:
    Updated product prices: <$updated_prices>

Hinweis

Indexbasierte Iteration verwenden, um die Liste korrekt zu verändern: for index in range(len(prices)): verändert Elemente direkt, im Gegensatz zu for price in prices:.

Lösung

Switch to desktopWechseln Sie zum Desktop, um in der realen Welt zu übenFahren Sie dort fort, wo Sie sind, indem Sie eine der folgenden Optionen verwenden
War alles klar?

Wie können wir es verbessern?

Danke für Ihr Feedback!

Abschnitt 6. Kapitel 4
Wir sind enttäuscht, dass etwas schief gelaufen ist. Was ist passiert?

Fragen Sie AI

expand
ChatGPT

Fragen Sie alles oder probieren Sie eine der vorgeschlagenen Fragen, um unser Gespräch zu beginnen

book
Listenverhalten in Funktionen

Untersuchen wir das Arbeiten mit Listen innerhalb von Funktionen. Obwohl es dem Arbeiten mit Zahlen ähnelt, gibt es einige wichtige Details zu beachten.

Listen sind veränderbar (mutable), was bedeutet, dass alle Änderungen an einer Liste innerhalb einer Funktion auch die ursprüngliche Liste außerhalb der Funktion beeinflussen, wenn sie direkt übergeben wird.

Um dies zu verhindern, kann die Methode copy() bei jedem veränderbaren Datentyp verwendet werden. Dadurch wird eine flache Kopie der Liste erstellt, sodass Sie eine Kopie statt des Originals ändern. Dies stellt sicher, dass Änderungen innerhalb der Funktion das Original nicht beeinflussen.

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

In diesem Beispiel bleibt die ursprüngliche Liste fruits unverändert, da copy() verwendet wurde. Ohne copy() hätte das Ändern der Liste innerhalb der Funktion auch die ursprüngliche Liste fruits verändert.

Aufgabe

Swipe to start coding

Eine Funktion erstellen, die einen 10% Rabatt auf Produktpreise über 2,00 $ anwendet, ohne die ursprüngliche Liste zu verändern.

  • Eine Funktion apply_discount(prices) definieren, die eine Liste von Preisen entgegennimmt.
  • Innerhalb der Funktion eine Kopie von prices erstellen und dieser prices_copy zuweisen.
  • Eine for-Schleife mit Index-Iteration (range(len(prices_copy))) verwenden, um die kopierte Liste zu durchlaufen.
  • Wenn ein Preis größer als 2.00 ist, einen 10% Rabatt anwenden.
  • Die aktualisierte Liste prices_copy zurückgeben.

Ausgabebedingungen

  • Die Funktion soll die neue Liste mit rabattierten Preisen zurückgeben.
  • Das Ergebnis ausgeben mit:
    Updated product prices: <$updated_prices>

Hinweis

Indexbasierte Iteration verwenden, um die Liste korrekt zu verändern: for index in range(len(prices)): verändert Elemente direkt, im Gegensatz zu for price in prices:.

Lösung

Switch to desktopWechseln Sie zum Desktop, um in der realen Welt zu übenFahren Sie dort fort, wo Sie sind, indem Sie eine der folgenden Optionen verwenden
War alles klar?

Wie können wir es verbessern?

Danke für Ihr Feedback!

Abschnitt 6. Kapitel 4
Switch to desktopWechseln Sie zum Desktop, um in der realen Welt zu übenFahren Sie dort fort, wo Sie sind, indem Sie eine der folgenden Optionen verwenden
Wir sind enttäuscht, dass etwas schief gelaufen ist. Was ist passiert?
some-alt