Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Apprendre Comportement des Listes dans les Fonctions | Fonctions
Introduction à Python

Glissez pour afficher le menu

book
Comportement des Listes dans les Fonctions

Explorons le travail avec des listes à l'intérieur des fonctions. Bien que cela ressemble à la manipulation de nombres, il existe quelques détails importants à connaître.

Les listes sont mutables, ce qui signifie que toute modification apportée à une liste à l'intérieur d'une fonction affectera également la liste originale en dehors de la fonction si elle est transmise directement.

Pour éviter cela, il est possible d'utiliser la méthode copy() avec tout type de données mutable. Cela permet de créer une copie superficielle de la liste, afin de modifier un duplicata plutôt que l'original. Ainsi, les modifications effectuées dans la fonction n'affectent pas la liste originale.

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

Dans cet exemple, la liste fruits originale reste inchangée car copy() a été utilisée. Sans copy(), la modification de la liste à l'intérieur de la fonction aurait également modifié la liste fruits originale.

Tâche

Swipe to start coding

Créer une fonction pour appliquer une remise de 10 % aux prix des produits supérieurs à 2,00 $, sans modifier la liste d'origine.

  • Définir une fonction apply_discount(prices) qui prend une liste de prix.
  • À l'intérieur de la fonction, faire une copie de prices et l'assigner à prices_copy.
  • Utiliser une boucle for avec itération par index (range(len(prices_copy))) pour parcourir la liste copiée.
  • Si un prix est supérieur à 2.00, appliquer une remise de 10 %.
  • Retourner la liste prices_copy mise à jour.

Exigences de sortie

  • La fonction doit retourner la nouvelle liste avec les prix remisés.
  • Afficher le résultat en utilisant :
    Updated product prices: <$updated_prices>

Remarque

Utiliser une itération basée sur les index pour s'assurer que la liste est modifiée correctement : for index in range(len(prices)): modifie les éléments directement, contrairement à for price in prices:.

Solution

Switch to desktopPassez à un bureau pour une pratique réelleContinuez d'où vous êtes en utilisant l'une des options ci-dessous
Tout était clair ?

Comment pouvons-nous l'améliorer ?

Merci pour vos commentaires !

Section 6. Chapitre 4
Nous sommes désolés de vous informer que quelque chose s'est mal passé. Qu'est-il arrivé ?

Demandez à l'IA

expand
ChatGPT

Posez n'importe quelle question ou essayez l'une des questions suggérées pour commencer notre discussion

book
Comportement des Listes dans les Fonctions

Explorons le travail avec des listes à l'intérieur des fonctions. Bien que cela ressemble à la manipulation de nombres, il existe quelques détails importants à connaître.

Les listes sont mutables, ce qui signifie que toute modification apportée à une liste à l'intérieur d'une fonction affectera également la liste originale en dehors de la fonction si elle est transmise directement.

Pour éviter cela, il est possible d'utiliser la méthode copy() avec tout type de données mutable. Cela permet de créer une copie superficielle de la liste, afin de modifier un duplicata plutôt que l'original. Ainsi, les modifications effectuées dans la fonction n'affectent pas la liste originale.

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

Dans cet exemple, la liste fruits originale reste inchangée car copy() a été utilisée. Sans copy(), la modification de la liste à l'intérieur de la fonction aurait également modifié la liste fruits originale.

Tâche

Swipe to start coding

Créer une fonction pour appliquer une remise de 10 % aux prix des produits supérieurs à 2,00 $, sans modifier la liste d'origine.

  • Définir une fonction apply_discount(prices) qui prend une liste de prix.
  • À l'intérieur de la fonction, faire une copie de prices et l'assigner à prices_copy.
  • Utiliser une boucle for avec itération par index (range(len(prices_copy))) pour parcourir la liste copiée.
  • Si un prix est supérieur à 2.00, appliquer une remise de 10 %.
  • Retourner la liste prices_copy mise à jour.

Exigences de sortie

  • La fonction doit retourner la nouvelle liste avec les prix remisés.
  • Afficher le résultat en utilisant :
    Updated product prices: <$updated_prices>

Remarque

Utiliser une itération basée sur les index pour s'assurer que la liste est modifiée correctement : for index in range(len(prices)): modifie les éléments directement, contrairement à for price in prices:.

Solution

Switch to desktopPassez à un bureau pour une pratique réelleContinuez d'où vous êtes en utilisant l'une des options ci-dessous
Tout était clair ?

Comment pouvons-nous l'améliorer ?

Merci pour vos commentaires !

Section 6. Chapitre 4
Switch to desktopPassez à un bureau pour une pratique réelleContinuez d'où vous êtes en utilisant l'une des options ci-dessous
Nous sommes désolés de vous informer que quelque chose s'est mal passé. Qu'est-il arrivé ?
some-alt