- Formations
- conversion_path Parcours & Formations
- science Projets
- data_object Exercices de code
- psychology Exercices IA
- quiz Quiz
- Articles
- rss_feed Blog
- sort_by_alpha Glossaire
- menu_book Guides
- help_center FAQ
- media_link Ressources
- Communauté
- groups La communauté
- forum Questions
- live_tv Mentorats
- science Projets mensuels
- Formations
- conversion_path Parcours & Formations
- science Projets
- data_object Exercices de code
- psychology Exercices IA
- quiz Quiz
- Articles
- rss_feed Blog
- sort_by_alpha Glossaire
- menu_book Guides
- help_center FAQ
- media_link Ressources
- Communauté
- groups La communauté
- forum Questions
- live_tv Mentorats
- science Projets mensuels
Inscris-toi
(c'est gratuit !)
Un compte est nécessaire pour participer aux discussions.
Créer un compte person00:00:00 :Alors dans cette partie on va voir une erreur qui est assez sournoise que j'aipersonnellement découvert à mes dépens et tous les personnes que je connais quiapprennent la programmation par eux-mêmes l'ont aussi découvert à leursdépens donc c'est vraiment une erreur assez assez sournoise que si on ne
00:00:14 :connaît pas bien Python, si on ne connaît pas bien ce qui se passe en arrière dePython et bien on peut chercher pendant longtemps pourquoi ça ne fonctionne pas.
00:00:21 :Donc là j'ai tout simplement importé le module random et ici j'ai une fonctiongénérateur liste à laquelle je passe ici en paramètre une liste vide etj'ajoute à la liste donc des nombres aléatoires entre 1 et 100 donc et à lafin je retourne cette liste. Donc ici je fais une boucle pour i dans 5 et je vais
00:00:42 :printer tout simplement ma liste ici pour que vous voyez ce que ça donne.Donc là j'exécute le script et vous voyez que plutôt que d'avoir une listequi à chaque fois est redéfinie avec cinq valeurs aléatoires de 1 à 100 on seretrouve avec une liste qui grandit de plus en plus à chaque itération.
00:00:58 :Donc qu'est ce qui se passe ici en fait et bien c'est tout simplement que ladéfinition de la fonction ici est exécutée une seule fois donc la listeici qu'on définit directement dans le paramètre comme vide elle existe uneseule fois en mémoire et donc à chaque fois qu'on fait un list.extend ici on va
00:01:14 :utiliser la même liste donc c'est pour ça que cette liste continue de grandirici on ne régénère pas une nouvelle liste à chaque fois on utilise toujoursla même en mémoire et donc c'est pour ça que à la deuxième itération et bienon a toujours les éléments de la première à la troisième on a les
00:01:28 :éléments des deux premières itérations etc etcdonc ça c'est très très dangereux puisque vous voyez que c'est vraiment pasce à quoi on s'attend en fait donc ce qu'on va faire c'est qu'on va à laplace ici ne pas mettre une liste vide mais mettre non et à l'intérieur de la
00:01:44 :fonction directement vérifier si la liste est non et si la liste est nonalors là on va initialiser une liste vide et donc cette liste ici qui va êtredéfinie à l'intérieur de notre fonction cette fois ci elle va être redéfinie àchaque fois qu'on va exécuter la fonction donc si j'exécute ce script
00:02:00 :cette fois ci vous allez voir que j'ai bien une liste différente à chaque foisavec uniquement cinq valeurs et avec des valeurs aléatoires ici à chaque foispour chaque itération de ma liste donc ça c'est vraiment comme je vous disaisquelque chose que si on ne sait pas et bien on fait très souvent l'erreur et on
00:02:15 :comprend pas ce qui se passe donc dès que vous voulez définir en faitune liste ici dans les paramètres d'une fonction vraiment ne jamais mettreune liste vide passez plutôt donc par cette astuce avec une liste qui estsetée à non et que vous définissez par la suite à l'intérieur de la fonction
Ce n'est pas fini...
✋
Tu as complété % du parcours 🔥
Termine l'intégralité de la formation pour pouvoir débloquer ton attestation de réussite.