bonjour et bienvenue dans cette vidéo de plus de sept heures dans laquelle je vais t'apprendre toutes les bases du langage python ces sept heures de formation elles proviennent de ma formation complète python qui est disponible sur eu d'ennemis c'est une formation de plus de 25 heures dans laquelle je t'apprends tout ce que tu as besoin de savoir pour créer tes projets avec python que ce soit pour faire des sites web avec django du traitement de données ou encore des applications de bureau les sept heures de formation que tu as devant toi elle constitue la première partie de cette formation du délit on va d'abord voir ensemble comment installer python que tu sois sur windows mac os ou linux à chaque fois je te montre toutes les étapes peu importe le système d'exploitation on va ensuite abordé les éléments de base du langage comme les variables les structures conditionnelle les listes ou encore les boucles je te montrerai également des outils de développeurs comme le terminal qu'il est très important de maîtriser si tu souhaites devenir développeur professionnel là encore à chaque fois tout est détaillé peu importe le système d'exploitation que tu utilises je te conseille donc fortement de t&d des chapitres de youtube pour aller directement au parti qui concerne ton système d'exploitation tout au long de cette vidéo tu trouvera également des exercices et plusieurs projets à la fin qui te permettront de mettre en pratique tout ce que je t'ai montré dans cette vidéo dans la formation sur une amy tu as encore plus de quiz et d'exercices qui sont disponibles après chaque vidéo pour que tu puisses t'assurer que tu as bien compris les notions que l'on voit ensemble donc si tu souhaites tu te former sur python avec la possibilité de t'entraîner et de tester tes connaissances et découvrir des notions avancées du langage je te conseille d'aller voir la formation sur eux d'amy qui dure plus de 25 heures et qui va beaucoup plus loin tu trouveras le lien dans la description pour obtenir la formation le prix varie généralement entre 10 et 20 euros en fonction des périodes de promotions sur une amy et si tu souhaites avoir accès à toutes mes formations tu peux abonnés sur doc strict c'est un abonnement mensuel qui coûte environ le prix d'un mac do et qui te permettra d'avoir accès à tout le contenu de toutes mes formations eu d'ennemis et tu as comme sur ruud émis la possibilité de résoudre des exercices de code des challenge des quizz pour t'assurer que tu maîtrises bien le lan cash donc voilà pour mon petit speech je te souhaite un bon apprentissage de python n'oublie pas de ta bonne et à la chaîne je poste toutes les semaines du nouveau contenu gratuit à propos de python et de la programmation en général aussi si tu as acheté la formation sur le déni et qu'elle te plaît n'oublie pas de mettre un 5 sur 5 ça aide énormément la formation à se faire connaître et ça me permet de continuer de vous proposer des formations à un prix très abordable également plus vous serez nombreux à mettre des pousses bleus à partager les vidéos a acheté la formation sur rodez millau à vous abonner sur doc string plus je pourrais vous proposer du contenu gratuit et des formations de qualité au prix le plus bas possible même si vous ne dépensez pas un centime pour vous former c'est vraiment parce que vous partagez les vidéos les podcasts les formations que vous mettez des pousses bleus et toutes ces petites actions du genre que je peux continuer de vous proposer tout ça donc merci à tous bon visionnement et je vous souhaite bon courage avec votre apprentissage de python dans la section qui va suivre je vais vous présenter cinq éditeurs de texte et environnement de développement qui vont nous permettre d'écrire et exécuter du code python chaque éditeur a ses avantages et ses inconvénients et on va les passer en revue un à un pour que vous puissiez vous faire une idée des différentes solutions qui s'offrent à nous pour la suite de la formation moi je vais utiliser l'éditeur visual studio code qui est développé par microsoft et qui a le gros avantage d'être léger gratuit et multiplateforme donc si vous souhaitez avoir exactement le même environnement de développement que moi je vous conseille de continuer avec cet éditeur de texte si vous avez déjà un éditeur de texte que vous utilisez et maîtriser pour écrire du code python vous pouvez passer les prochaines parties dans lesquelles on va passer en revue les différents éditeurs de texte que j'ai mentionné en début de vidéo si par contre vous êtes curieux et souhaitez en apprendre plus sur ces différents environnements de développement alors vous pouvez continuer avec la prochaine vidéo dans laquelle on va découvrir sublime texte sublime texte c'est un éditeur de texte très populaire que j'ai moi même utilisé pendant plusieurs années il gère très bien de nombreux langages de programmation dont python fait partie et il peut être amélioré grâce à de nombreux plugins gratuit au niveau de la licence sur l'une texte peut être téléchargé et utilisé gratuitement mais si vous l'utilisez de façon répétée vous devrez acheter une licence alors je dis de vrai mais c'est un peu comme une rare pour ceux qui connaissent à savoir que en fait vous allez juste avoir un petit message une fois de temps en temps qui vous dit qu'il faudrait acheter une licence mais si vous ne le faites pas vous pourrez quand même continuer d'utiliser le logiciel donc dans les fêtes je connais très peu de gens qui ont vraiment des bourses et les 80 dollars quand même que coûte sublime texte pour pouvoir continuer à l'utiliser vu qu'il n'ya aucune contrainte de temps ou de fonctionnalités si vous ne le faites pas vous aurez juste un petit message de temps à autre pour vous rappeler de le faire mais ce n'est vraiment pas contraignant sublime texte il reste encore très utilisé mais depuis quelques mois voire quelques années il se fait voler la place de numéro un par un autre éditeur de texte que l'on verra dans la prochaine partie à savoir les jours le studio code dans la prochaine partie je vais donc vous présenter jours le studio code et par la suite je vais revenir sur les avantages et inconvénients de chacun pour que vous puissiez vous faire une idée de ce qu'ils proposent vie jours le studio code c'est le petit dernier qui fait beaucoup de bruit en ce moment malgré son jeune âge puisqu'il n'a été lancée qu'en 2015 donc à peine plus de quatre ans au moment où j'enregistre cette formation tout comme sublime texte visual studio code gère de nombreux langages de programmation dont python comme sublime texte encore il dispose de nombreux plugins qui vous permettent d'ajouter de nombreuses fonctionnalités qui ne sont pas forcément présente de base alors à la différence de sublimes texte par contre vous vous n'avez pas besoin d'acheter de licence pour l'utiliser sur le long terme donc c'est quand même un gros avantage là où il est meilleur que sublime texte je trouve c'est dans l'exécution du code python sublime texte vous permet d'exécuter du code python directement à l'intérieur de l'éditeur mais c'est assez compliqué quand vous voulez par exemple passer rapidement de python 2 à python 3 il ya plusieurs fichiers à créer c'est pas forcément très intuitif alors qu avec visual studio code c'est plus simple et c'est donc une des raisons principales pour laquelle on va l'utiliser pour cette formation donc pour résumer on va utiliser pour la suite de la formation vais jouer le studio code car tout d'abord il est gratuit disponible sur toutes les plateformes donc windows mac os et linux il permet en plus d'exécuter facilement du code python que ce soit python 2.7 trois points qu'à 3 points 6 donc peu importe la version est aussi il est léger et rapide à ouvrir contrairement par exemple à un autre programme qui est aussi très utilisé dans la communauté python qui s'appelle pas y croire mais je vais vous présenter dans la prochaine partie byron c'est un peu plus qu'un éditeur de texte dans son cas on parle plutôt d'un environnement de développement puisqu'il propose beaucoup plus de fonctionnalités que par exemple un éditeur comme sublime texte alors ça a ses avantages et ses inconvénients le principal inconvénient c'est que de ce fait il est un peu plus lourd il ne va pas être aussi rapide à lancer qu'un programme comme sublime texte ou visual studio code et il est plus centrée autour de projets donc si vous voulez seulement édité rapidement à un petit fichier isolé sans pour autant avoir besoin de mettre en place un projet de lancer toute la machine eh bien ce n'est pas forcément la meilleure solution du coup moi j'utilise les deux dans mon travail de tous les jours j'utilise pas et rome car je travaille sur des projets qui contiennent des centaines de scripts python différents dans plein de dossiers et sous dossiers et j'ai besoin d'avoir un environnement de développement performant qui me permettent de rapidement me retrouver dans des milliers de lignes de codes avec différentes versions de python sur différents systèmes d'opération et c est quand je dois simplement faire un petit script de quelques lignes ou modifier un fichier unique pour un projet simple je passe souvent par un éditeur de texte plus rapide à lancer comme visual studio code ou sublime texte donc je ne dis pas que ce n'est pas possible de faire la même chose avec sublime texte ou visual studio code mais pas y croire mais vraiment fait pour python donc forcément il ya beaucoup de choses qui sont disponible nativement dans paichadze pour lesquelles il vous faudra passer par un plugin avec sublime texte ou visual studio code alors il faut savoir qu'il y a deux versions de paille churn souvent les gens pensent qu'il est payant nuls utilise donc pas mais il existe une version appelée community qui est entièrement gratuite alors elle est un peu plus limitée que la version payante qui dispose notamment l du support de langage comme html et javascript et si vous ne faites que du piton la version community est amplement suffisante jupiter notebooks et la star des développeurs qui travaillent dans la science des données que vous connaissez probablement plus sous son terme anglais de data size jupiter notebook il est un peu particulier car ça ressemble vraiment comme son nom l'indiqué à un bloc notes c'est pratique donc pour tester du code et avoir un aperçu assez sympa de ce qu'on a fait surtout là encore quand on travaille avec des données puisque jupiter notebook garde en mémoire tout ce que vous faites à l'intérieur d'un bloc notes c'est un programme qui également est gratuit donc c'est un gros avantage mais par contre ce n'est pas vraiment un environnement de développement comme on pourrait la voir avec visual studio code ou pitchouns donc les avantages de ça c'est qu'en fait on n'a déjà pas de modules pour déboguer le code donc si on veut faire des opérations assez avancé sur notre code pour le début gay ou même pour avoir ce qu'on appelle donc la détection d'erreur le linking en anglais eh bien ça non plus vous ne leur est pas donc vous n'aurez pas quelque chose qui vous dit qu'il ya un problème par exemple dans votre code et ça surtout quand on débute c'est vraiment très pratique puisque ça permet d'éviter pas mal d'erreurs quand on ne sait pas encore parfaitement à la syntaxe de python et même à mon niveau quand on la connaît depuis un certain nombre d'années il nous arrive de faire des erreurs d'inattention et bien jupiter notebook ne vous sur ligne pas ses erreurs et pour finir et bien tout simplement ça nécessite à chaque fois de lancer l'environnement jupiter notebook pour exécuter un script python généralement quand on va avoir noscript on va vouloir les exécuté directement à partir d'un terminal sur notre système d'exploitation là avec jupiter notebook il va falloir à chaque fois lancé l'environnement jupiter notebook pour pouvoir accéder à nos script et les lancer à l'intérieur de cet environnement donc ce n'est pas non plus très pratique alors ça a beaucoup davantage si vous êtes habitué à cet environnement vous pouvez l'utiliser moi je ne l'utiliserai pas dans ce cas ci puisque on va pas faire uniquement de la gestion de data donc on va pas faire que du data sayan c'est un cours complet qui parle de deux pitons en général et donc je ne voulais pas me restreindre à une partie de python en utilisant jupiter notebook même si je sais que c'est un éditeur très très populaire parmi la communauté python-1 dernier environnement qui est très utilisé ces anaconda alors je vous le présentez là encore on ne va pas l'utiliser dans cette formation puisque c'est un éditeur en fait c'est une distribution même plus qu'un éditeur puisque ça regroupe et énormément de choses vous remarqué d'ailleurs qu'on a ici jupiter donkey et jupiter notebook donc à l'intérieur d'un combat on a également jupiter notebook d'installer alors c'est bien à condat mais c'est très lourd vous avez vous voyez ici 637 méga bits pour la version graphique et 542 pour la version en commande lines donc en fait anaconda ça rassemble énormément de librairie vous voyez plus de 1500 librairie python et même d'un autre langage qui est le langage r qui est aussi beaucoup utilisé pour tout ce qui touche à la date à sirjan ce donc là encore un anaconda s'éteint c'est un environnement qui est très utilisé pour la science des données mais qui est beaucoup trop lourd je trouve pour nous ce qu'on va faire ça nécessite d'installer un truc vraiment gigantesque pour au final n'utilisait que la partie python donc je trouve que ça n'a pas vraiment d'intérêt après si vous vous passez par un à condat si vous êtes habitué à un anaconda vous pouvez utiliser cette solution pour la suite de la formation sans problème mais nous on passera par une solution donc plus simple avec visual studio code avant de pouvoir commencer à écrire tes premières lignes de code il ya pas mal de choses que l'on doit installer sur notre ordinateur dans les prochaines parties je vais te montrer comment installer python et visual studio code sur windows mac os et linux je te conseille donc d'aller directement à la partie qui te concerne selon le système d'exploitation que tu utilises situé sur windows alors tu peux continuer avec la prochaine vidéo sinon rendez vous quelques parties plus loin pour les étapes de configuration avec mac os et linux je te conseille vivement de ne pas aller trop vite dans cette partie je sais qu'on a envie de commencer à programmer tout de suite eu malheureusement on est obligés de passer par ces étapes de configuration c'est important que tu maîtrises ton environnement de développement et une fois que tu leur as mis en place tu n'aura de toute façon pas besoin de le refaire tous les jours pour installer python sur windows vous avez plusieurs options la première c'est de passer par le store de microsoft donc vous pouvez chercher python est installé python via le store de microsoft mais je vous déconseille de passer par cette façon de faire à la place je vous conseille d'aller directement sur le site python point org dans votre navigateur favori et on va installer python de la façon la plus classique en allant télécharger l'exécutable qui nous permet d'installer python sur notre disque dur donc sur python point org je vais aller dans darmody ici alors vous pouvez directement cliquer ici pour lancer le téléchargement de l'exécutable de la dernière version de python si vous souhaitez installer une version précise vous pouvez vous rendre donc dans l'onglet d'un l'ofc donc vous cliquez ici sur download et vous allez avoir une page qui va lister toutes les versions de python avec leurs numéros ici donc on a par exemple la 3 points 8 points 7 3 points 9 points et c est là on a donc toutes les versions dans l'ordre de leur date de sortie si vous cherchez une version spécifique il vous suffit de faire contrôler f donc pour rechercher sur votre navigateur et on peut rechercher par exemple ici la version 3.6.8 qui est une version assez stable de la version 3.6 deux pitons donc si on veut par exemple installer cette version 3.6.8 on peut cliquer directement ici juste avant de faire ça je vous montre ici lancar au début qui nous indique toutes les versions de python qui sont actives pour les versions donc deux points 7 à trois points 9 on a ici une indication sur le statut actuel donc par exemple pour la 3 points 9 on voit qu actuellement la dernière version c'est un bug fix on a par contre pour la 2.7 end of life donc qui indique que le statut de cette version arrive bientôt en fin de vie et on peut le voir ici grâce au support est en effet le support de la version 2.7 de python s'est arrêtée au 1er janvier 2020 si on regarde pour la 3.6 les dernières maintenance qui ont été effectués sur cette version sont des maintenances de sécurité et cette version sera supporté jusqu'au 23 décembre 2021 donc on a encore une année complète de support au moment où j'enregistre cette vidéo et vous voyez par exemple pour la dernière version la 3.9 on va jusqu'à 2025 donc si on veut par exemple installer la version 3.6.8 ici il vous suffit de cliquer sur le numéro de cette version et après les pages de chaque version vont être assez similaire vous allez déjà avoir tout ce qui a été rajoutée dans cette version qui va être indiqué au début nous ce qui nous intéresse c'est tout à la fin ici dans files d'aller chercher le fichier qui correspond à l'exécutable pour windows alors au début on a plusieurs choses ici on a les exécutables pour mac os nous ce qui nous intéresse c'est pour windows et sur windows vous voyez que à chaque fois donc dans toutes ses lignes ici où le operating system m windows on a différentes options on a un mba 'double-dip' on a également un web based in stores l'heure nous ce qui nous intéresse c'est l'exécutable donc vous avez deux exécutable le x86 64 et le x86 donc nous ce qu'on va utiliser c'est le x86 64 puisqu'il est plus que probable en fait que votre ordinateur soit un ordinateur 64 bits alors que le x86 ici serait plus pour un ordinateur 32 bits au final ça ne change pas grand chose on peut utiliser l'un ou l'autre vous n'allez pas avoir des différences de performances énormes entre les deux mais si vous êtes assurés d'avoir un ordinateur 64 bits ce qui est plus que probable en 2021 et bien je vous conseille donc de cliquer ici pour lancer le téléchargement de cet exécutable une fois que le téléchargement est terminée donc c'est le cas ici on va pouvoir afficher ce fichier est double cliquer dessus pour lancer l'installation deux pitons alors attention il ya beaucoup de petites choses sur lesquelles il faut faire très attention je vous conseille de cocher exactement les même case que moi donc là on à la fenêtre de l'installation de python remarque ici qu'il est indiqué 64 bits donc ça c'est vraiment parce que on a sélectionné cet exécutable si vous aviez utilisé cet exécutable à la place le x86 vous auriez indiqué ici 32 bits donc là on va passer à travers les étapes de l'installation la première chose à faire qui est peut-être la case la plus importante à cocher c'est cette case had peyton 3.6 tout pâte donc pas c'est une variable d'environnement et le fait d'ajouter python 3.6 à cette variable environnement ça va nous permettre d'utiliser la commande python dans une invite de commandes donc bien important de cocher cette case ici ensuite on va devoir cliquer sur customization ne cliquez pas ici puisque là par défaut ça va l'installer dans appdata local programs et en fait j'ai très souvent vu des problèmes de permission pour les gens qui installe python directement ici donc nous on va l'installer ailleurs et on va cliquez donc sur customize installations pour choisir où on souhaite l'installer là j'ai plusieurs options alors je vais tout laisser cocher les seules choses que vous pourriez vouloir potentiellement décoché et qui vous sauvera un petit peu de place sur votre ordinateur mais vraiment très peu c'est la documentation tcl tk qui est donc une librairie d'interfaces graphiques et à dole et le peleton test suite donc je vous déconseille quand même de l'aider cochet si des outils qui sont assez utile donc je vous conseille de laisser tous à cocher ici le plus important ici c'est de laisser que chez pipe qui est un utilitaire qui nous permet d'installer des paquets du python et qui est indispensable pour utiliser python on a également une case ici qui dans mon cas est grisé mais vous voyez qu'elle est bien cocher donc ça c'est le pai launcher si vous cette case et décoché et bien cocher là puisque c'est une case très importante qui va nous permettre d'utiliser la commande de paix y qui permet si vous avez plusieurs versions de python d'installer sur votre système de choisir quelle version vous voulez lancer très facilement sans avoir besoin de changer la variable d'environnement pattes que l'on a vue dans l'écran précédent donc assurez vous que tout ça ici c'est cochez ensuite on clique sur next ici la seule chose qu'on va changer c'est la première case qui pour l'instant n'est pas cochée et on va cliquer dessus donc installed for all users là encore ça va résoudre pas mal de problèmes de permission si on décolle c'est ici vous voyez que ça va le mettre dans appdata locaux et on a également cette phrase qui nous indique qu' on va avoir besoin de permission supplémentaires si on installe à cet endroit donc pour éviter là encore des problèmes de permission sur windows n'oubliez pas de cocher cette première case ici tout le reste on peut laisser comme c'est actuellement donc les 4 case suivante de cocher et les deux dernières de décocher et ensuite vous pouvez choisir de où vous aller l'installer je vous conseille de ne pas le changer vous pouvez le laisser dans les programmes files personnellement il m'arrive de le mettre directement dans le c'est donc non pas dans les programmes faille d'ici mais directement dans ces deux points slash et ensuite python 3 6 donc 3 si si si puisqu'on installe la version 3 6 si vous installiez la version 3 9 on pourrait mettre python 3 9 comme ceci dans mon cas je préfère le laisser donc dans program files et je vais ensuite pouvoir cliquer sur nice taule pour lancer l'installation vous allez avoir cette demande de permission très probablement donc il vous suffit de cliquer sur oui ici pour autoriser le programme à installer python sur votre disque dur ça ne devrait prendre pas plus qu'une minute en moyenne et une fois que ça va être installé on va pouvoir tester si python fonctionne correctement l'installation est maintenant terminée donc si vous avez cette même page ici avec indiqué cet apport aux succès ce faux c'est que l'installation s'est bien déroulé dernière chose avant de fermer cette fenêtre vous avez probablement cette petite case ici disait ball pat lynch limites et je vous conseille de cliquer dessus pour désactiver cette limite sur les chemins de fichiers puisque ça pourrait poser problème avec python si jamais vous faites des scripts avec des chemins vers des fichiers qui font plus que 2 160 caractères donc cliquer là dessus ça va vous re demandé une confirmation puisque vous avez besoin des droits d'administrateur donc vous cliquez sur wii et une fois que c'est fait vous pouvez cliquer sur klose pour terminer le processus donc on va vérifier que python est bien installée pour ça vous pouvez aller tout en bas à gauche dans le menu démarrer si vous avez coché la case pour installer idol dans le processus d'installation vous devriez voir idol ici tout en haut dans l'onglet récemment ajouté si ce n'est pas le cas vous pouvez tout simplement taper idol et vous devriez voir ce programme qui va vous permettre d'exécuter des lignes de code python si je clique dessus ça va mourir idol dans lequel voilà je peux écrire des lignes de code on peut également vérifier que python est bien installé en ouvrant une invite de commandes donc je vais aller dans le menu démarrer tapez invite et lancer l'outil invite de commande à l'intérieur de cet outil j'ai plusieurs façons de lancer python la première c'est tout simplement décrire python et d'appuyer sur entrée et vous voyez que je rentre automatiquement dans un interpréteur python interactif pour en sortir je peux taper exit suivi des parenthèses ça c'est la première façon de faire qui est possible uniquement parce qu'on a coché la case tout au début dans le processus d'installation dans laquelle on indiquait qu'on voulait ajouter python 3.6 à la variable d'environnement pattes donc si vous n'avez pas cocher cette case cette commande ne fonctionnera pas vous pouvez aller voir vos variables d'environnement en allant dans le menu démarrer et en tapant enviro vous allez cliquer ici sur modifier les variables d'environnement système et ensuite sur variables d'environnement ici et à l'intérieur de cette fenêtre qui s'ouvre si on va voir dans la variable d'environnement pattes ici donc dans les variables système si je double cliquer dessus pour le modifier vous voyez qu'on a bien le chemin vers python 3 prince is donc là où on avait installé python 3.6 danser program files qui a été ajoutée dans la variable d'environnement pâte donc c'est vraiment parce que ce chemin ici et dans cette variable d'environnement on peut taper python directement dans la vie tu de commande également dans l'installation si vous avez coché la case pour installer le launcher paille donc pays y vous pouvez lancer python en tapant tout simplement paix y ait en appuyant sur entrez donc là encore on rentre à l'intérieur d'un interpréteur python dans lequel je peux sortir avec exit et la commande paye donc ce qui est très pratique c'est que on va pouvoir lui indiquer également la version de python qu'on veut lancer en indiquant tirait et le numéro de version donc là j'ai uniquement la version 3.6 qui est installée actuellement sur mon ordinateur donc je peux taper p y espace tirer 3.6 appuyez sur entrée et là encore je vais rentrer dans un interpréteur python si j'avais d'autres versions de python d'installer ça me permettrait comme ceux ci de faire par exemple p y espace tirer 3.8 pour lancer à la place la version 3.8 deux pitons donc ça c'est la façon privilégiée que je vous recommande d'utiliser pour lancer python puisque ça vous permet de choisir la version de python que vous souhaitez utiliser si vous en avez plusieurs sur votre disque sinon vous pouvez tout simplement utiliser python et dans ce cas ci c'est la version qui est indiqué dans le dossier que vous avez mis dans les variables d'environnement dont qui a été mis automatiquement quand on a coché la case lors du processus d'installation donc c'est cette version qui va être lancée si vous mettez uniquement python donc voilà comment installer et python sur windows peu importe la version que ce soit la version de la version 3 3 points 63.9 le processus est le même à chaque fois assurez-vous de bien cocher les quelques cases dont je vous ai parlé et vous avez vu également comment vous assurer que python est bien installé que ce soit en lançant à et drôles ou alors directement avec l'invité de commande en utilisant soit la commande python ou alors le launcher pays grec qui lui nous permet de spécifier la version que l'on souhaite utiliser pour lancer un script python ou rentrer dans un interpréteur python interactif vous pouvez aller dans l'ain vite de commandes donc dans le menu démarrer vous tapez 1 vite et vous avez l'application ici invite de commande et à l'intérieur de cette application vous pouvez taper python pour lancer un interpréteur python interactif donc si j'appuie sur entrée je rentre ici dans un interpréteur python pour la version 3.1 9.1 puisque j'ai deux versions d'installer actuellement sur mon système d'exploitation gélas 3.6.8 et la trois points 9 points donc actuellement celle à trois points 9 points qui est exécuté si je veux lancer la version 3.6 je peux faire p y à la place est indiqué avec le tir est la version que je veux lancer donc pays y espace tirait 3.6 et là ça va lancer la version 3.6 si je fais à la place et y espace tir et 3.9 là je vais lancer la 3.9 et si je fais python ça va lancer la version qui est contenu dans le dossier qui dans ma variables d'environnement pâte donc je vais vous montrer ces variables d'environnement parce qu'elles sont assez importantes il se peut si vous n'avez pas coché les bonnes cases lors de l'installation que vous ayez une erreur lorsque vous lancez la commande python donc je sors de mon interpréteur python ici avec la commande et exit et on va aller dans le menu démarrer tapez enviro et cliquez sur modifier les variables d'environnement système je clique ensuite ici sur variables d'environnement et dans la variable pattes je vais double cliquez donc sur cette ligne pour enlever les quatre premières lignes ici donc le dossier d'installation de python 3 9 et de python 3 6 ainsi que les sous dossiers script donc je vais supprimer tout ça je valide avec ok je valide une deuxième fois et une troisième fois avec cette fenêtre et je vais relancer une invite de commande pour vous montrer maintenant l'erreur que j'obtiens et que vous avez peut-être vous aussi donc je lance l'invite de commande si je refais p y là ça va quand même marché puisque pays y c'est un launcher spécial que vous avez installé lors de l'installation d'hôpitaux ont clos si c'était en option qu'il faut bien avoir coché cette case mais avec ce liner même si on n'a pas les dossiers dans l'eau variables d'environnement comme je viens de vous montrer eh bien ça va quand même fonctionné par contre si je sors de cette interpréteur et que cette fois j'utilise la commande python là ça ne fonctionne pas et alors soit vous allez avoir le store de microsoft qui va s'ouvrir pour vous proposer de télécharger une version de python soit vous allez avoir une erreur ici qui va vous dire que la commande python n'est pas reconnu donc ça c'est vraiment parce que je vient d'enlever les dossiers qu'on avait dans les variables d'environnement donc si je veux retrouver l'usagé de cette commande je peux retourner dans les variables d'environnement donc tapé environ ici cliquez sur modifier les variables d'environnement système variable d'environnement est ici dans la variable d'environnement pattes je vais ajoutez cette fois ci le dossier que j'ai enlevé donc je vais faire nouveau et là on va aller chercher le dossier de l'installation de python donc moi je l'avais mis dans le cédant program files et on a ici les deux dossiers donc pour python 3 6 et python 3 9 donc je vais mettre juste le 3,6 vous allez voir ce que ça fait donc je prends ce chemin ici je le copie et je vais le coller dans mes variables d'environnement donc dans une nouvelle variable ici je colle le chemin à noter qu'il faudrait également rajouté le dossier scripps à l'intérieur du dossier pitons 3,6 puisque ce dossier contient des exécutables comme pipe qui permettent d'installer dix bibliothèques supplémentaires donc si on voulait bien remettre tous les chemins il faudrait mettre le dossier pitons 3,6 et le dossier pitons 3,6 slash script donc le dossier scripps à l'intérieur du dossier de python donc je valide une première fois je valide une seconde fois et une troisième fois ici la fenêtre de propriété système et je vais relancer mon invite de commandes donc je relance l'invite de commandes et cette fois ci si j'utilise la commande python vous allez voir qu'on va rentrer dans un interpréteur python et dans l'interpréteur quittons 3.6 puisque c'est le chemin vers la version 3.6 que j'ai mis dans mes variables d'environnement donc c'est ce python qui sera exécuté donc voilà pour les variables d'environnement voilà pourquoi elles sont importantes et pourquoi peut-être chez vous la commande python ne fonctionne pas donc si c'est le cas c'est vraiment ces variables d'environnement qu'il faut changer il faut faire bien attention si vous avez plusieurs versions de python de mettre le chemin du dossier vers la version de python que vous souhaitez utiliser si vous voulez tomber sur la bonne version en utilisant cette commande python il ne faut pas également avec cette commande indiqué le numéro de la version donc si vous mettez par exemple python 3.6 vous allez voir que ça ne fonctionne pas et on a cette fameuse erreur donc python 3 points si ce n'est pas reconnu et pourquoi et bien parce que tout simplement quand on met un chemin dans la variable pattes ce que ça fait c'est que ça nous permet d'utiliser tous les exécutables qui sont dans ce dossier donc le dossier c program files python 3 6 ça nous permet de les utiliser directement sans avoir besoin de rentrer le chemin complet vers cet exécutable et si on regarde ici ce qu'on a à notre disposition on à piton et python ewc les deux seules applications ici qui sont disponibles et on n'a pas pu ton 3 donc c'est pour ça que quand on met python 3.6 ça nous indique que cette commande n'est pas reconnu si par contre je renommée fichier ici pour m python trois fois 6 à la place est bien là ça fonctionnerait on pourrait utiliser python 3.6 mais pour l'instant comme ils s'appellent python et bien il faut utiliser le nom de l'exécutable donc juste python également vous pouvez lancer python sans avoir besoin de mettre le chemin complet dans la variable d'environnement mais dans ce cas ci il faudra mettre le chemin complet vers cet exécutable le fait de mettre le chemin du dossier dans la varenne environnement ça nous permet d'utiliser uniquement le nom de l'exécutable mais si on n'a pas ce chemin dans les variables d'environnement on peut quand même s'en sortir est lancé python en glissant par exemple l'exécutable dans la ville de commandes ce qui a pour effet de mettre le chemin complet vers l'exécutable donc c program files python 3 6 python points ex et là de la même façon je peux donc appuyez sur entrée pour valider et je rentre encore une fois dans un interpréteur python interactif donc vous voyez qu'il n'y a rien de magique c'est vraiment le système des variables d'environnement qui vous permet d'utiliser la commande python qui en fait juste un raccourci vers cet exécutable que vous pouvez également lancé en mettant le chemin complet vers l'exécutable et également si vous avez installé le launcher p y vous n'avez pas besoin de faire tout ça et vous pouvez directement sans avoir besoin de manipuler ces variables d'environnement choisir quelle version vous voulez lancer avec le tiret et le numéro de la version donc par exemple ici pour lancer la version 3.9 à la place de la version 3.6 l'autre programme qu'on va installer pour la formation s'appelle visual studio code alors c'est un éditeur de texte qui a beaucoup gagné en popularité ces derniers temps vous avez probablement entendu parler de cet éditeur de texte notamment si vous faites du web il est très très populaire pour le web est également de plus en plus pour python donc on va se rendre sur le site code point visual studio points comme pour lancer l'installation là encore normalement vous devriez avoir un lien sur la page d'accueil qui vous fournit le lien de téléchargement vers votre système d'opération donc là on voit que c'est bien marqué download for windows alors on va cliquer sur le lien normalement le téléchargement va se lancer vous voyez ici que c'est le cas donc si on va dans notre dossier téléchargement ici vous devriez avoir un fichier exécutable que vous allez pouvoir lancer pour démarrer l'installation donc une fois le fichier téléchargé en double clic sur l'installeur ici et rien de bien compliqué là encore il suffit la plupart du temps de suivre les indications donc on accepte ce qu'il nous propose si vous voulez lire libre à vous de le faire il ya pas mal de blabla et de textes ça peut être important de le faire tout de même vous voyez ici qu'il va l'installer dans le abdat alcool programme vous pouvez là encore changer le dossier dans lequel il va l'installer moi je vais le laisser ici je vais cliquez sur suivant là encore suivant et on va changer quelques petites options ici donc la première c'est que on va ajouter une action ouvrir avec code au menu contextuel de fichiers l'explorateur windows donc ça ça va nous permettre en fait d'ouvrir un fichier directement en faisant un clic droit dessus et on va faire pareil avec la deuxième option qui va nous permettre d'ouvrir un dossier de la même façon on va cliquer sur cette troisième option également et la dernière qui est la même que celle que je vous ai indiqué pour l'installation de python qui va ajouter à la variable d'environnement pattes le chemin vers le dossier qui contient l'exécutable de viol suis au code donc là encore ça va nous permettre avec un terminal de faire des opérations beaucoup plus facilement que si on n'avait pas le dossier a ajouté à la variable d'environnement pattes donc là encore vous voyez qu'il est cochée par défaut alors laissez le cocher c'est bien important et vous allez cliquez sur suivant et sur installer pour lancer l'installation donc là encore c'est pas très très long il n'y a pas grand chose j'allais dire y'a pas grand chose installés ici il ya beaucoup de choses mais ça va assez rapidement heureusement donc là tout à l'air de bien fonctionner on va laisser cochet ça ici pour qu'ils exécutent visual studio code pour qu'on voit si ça a bien fonctionné donc ça a l'air d'être le cas si vous avez cette vue ici c'est que l'éditeur a bien été installé donc voilà pour l'installation de vieux jours le studio code sur windows sur windows on va devoir installer un programme en plus qui va vous permettre d'avoir accès exactement au même commando que moi sur mac os ou que quelqu'un d'autre sur linux sur windows il n'y a pas de terminal bâche par défaut vous avez ce qu'on appelle lé invite de commandes donc si je vais dans le menu démarrer et que je tape invite je peux lancer l'invite de commandes mais cette invite de commande ne dispose pas d'un shell bash uzi shell qui sont des celle qu'on retrouve par défaut sur mac et linux donc là par exemple si j'essaie d'utiliser la commande pwd vous voyez que cette commande n'est pas reconnue sur l'invite de commandes vous avez un autre terminal sur windows qui s'appelle pawar shell qui est là encore un autre type de terminal avec un chef différent et là encore les commandes ne seront pas les mêmes que sur mac et linux donc nous ce qu'on va faire c'est qu'on va installer un programme qui s'appelle guide bâches et qui va nous permettre d'avoir accès à un terminal bâches et donc aux mêmes commandes que celle que j'utilise pour le reste de la formation donc sur google vous allez tout simplement taper guide bâches et vous allez prendre le deuxième lien ici dans ce cas si donc ces guides tirer scm point com donc on clique ici sur le deuxième lien on arrive sur cette page donc il guide tiré scm points comme slash dans l'autre et on va cliquer sur d'un lot de for windows donc là au moment où j'enregistre c'est la version 2.30 point zéro si vous voulez avoir un détail des versions vous pouvez aller cliquer ici sur holder releases donc comme ça ça vous permet d'avoir accès à toutes les versions donc là on va retrouver la dernière version en date qui est la 2.3 points 0 donc qui est par ici voilà donc ça c'est si vraiment vous voulez avoir exactement la même version que celle que je télécharge puisque bien entendu ces versions elles vont évoluer donc ça c'est la version qui date du 27 décembre 2020 normalement vous devriez pouvoir utiliser n'importe quelle version la dernière en date devrait fonctionner exactement comme la mienne si au moment où vous regardez cette vidéo par exemple c'est la 2.4 qui est disponible normalement vous devriez pouvoir télécharger la dernière version et ça devrait fonctionner de la même façon donc si vous voulez exactement la même que moi téléchargez-la 2.30 point zéro donc je lance ici le téléchargement en cliquant sur dans l'aude le téléchargement va se lancer et une fois que le fichier est téléchargé je peux cliquer dessus donc pour lancer le processus d'installation je vais valider ici pour autoriser le processus à se lancer et on va voir ensemble toutes les options à cocher pour installer git sur windows donc on va cliquez sur next vous allez voir qu'il ya beaucoup d'options et on va tous laissés par défaut donc je vais laisser ici dans program files slash git je clique sur next il me dit que le dossier existe déjà donc là je vais juste validé en disant que oui je veux bien l'écrire ici là vous pouvez changer quelques options on peut par exemple décocher le windows explorer integration parce que par défaut en fait ça va rajouter un élément dans votre clic droit qui va vous permettre de lancer guide bâches ou guide gault ihs dans le dossier dans lequel vous vous trouvez donc ça peut être très pratique mais je sais qu'il ya des personnes qui n'aiment pas avoir plein d'éléments dans leur menu du clic droit donc si c'est votre cas vous pouvez et bien décoché cette case ici pour ne pas avoir l'intégration dans le clic droit de windows moi je vais le laisser et cochez donc je reproche c'est quasi si je clique sur next là on va encore cliquez sur next on ne change rien et là vous allez voir on a une dizaine de pages comme ça où je vais laisser toutes les options par défaut donc vous pouvez les lire ou l'échangé ici vous le souhaitez mais moi je vous conseille de tous laissés par défaut donc je clique sur next sur next encore une fois sur next encore sur next comme je vous l'avais dit il ya beaucoup d'options donc on laisse tout ça on laisse tout ça on laisse tout ça et une fois qu'on arrive voilà au processus d'installation on attend que tout s'installe ça ne devrait pas être très longue probablement autour d'une minute et une fois que l'installation est terminée on va pouvoir lancer guide bâches pour vérifier que tout fonctionne bien donc l'installation s'est déroulée avec succès je ne veux pas voir les willis nos donc je décoche c'est ici est par contre je vais vouloir lancer directement guide bâches donc je clique sur launch guide beh je clique sur finish et ça va lancer guide bâches alors vous voyez que moi j'ai une police d'écriture qui est un peu plus grande pour accéder aux préférences de kits bâches vous faites un clic droit sur la barre de menu et dans options ici vous allez pouvoir changer des options donc par exemple le thème pour la couleur et par exemple dans texte ici vous pouvez changer la police d'écriture donc vous voyez que moi pour la formation je l'échangé par défaut je crois qu'elle est à 9 mois je les ai mis à 28 pour que vous puisqu'il est bien voir ce que j'écris donc ça vous pouvez le changer pour avoir quelque chose d'un peu plus lisible également de votre côté si vous le souhaitez donc je ferme ça et là on a bien guide bâche qui s'est lancé et si je re test la commande du début donc pwd là vous voyez que ça fonctionne et qu'on a bien les mêmes commandes que celle que je vais utiliser sur mac os ou qu'on pourrait utiliser également sur un système d'exploitation linux vous remarqué également que les chemins de dossiers sont un peu différents donc on a un chemin du dossier qui ressemble plus à ce qu'on retrouve là encore sur mac et linux sur windows normalement on assez de points slash et les slash sont dans le sens inverse là vous voyez qu'on a ce lhc slash donc ces guides bâche qui fait une manipulation si vous voulez de l'affichage donc comme ça ça nous permet d'avoir des chemins qui ressemble là encore à ce qu'on retrouve sur mac et linux mais ne vous inquiétez pas ça reste les mêmes dossiers donc si je vais par exemple voir dans un explorateur de fichiers que je vais dans les documents vous voyez que dans mes documents ici j'ai un fichier mail qui est un fichier python et bien ce fichier je vais le retrouver également dans guide bâche donc si je me déplace dans le dossier documents avec la commande cd donc je fais c'est des documents j'appuie sur entrée et si je veux lister les fichiers qui sont à l'intérieur je peux utiliser la commande ls et là vous voyez qu'on a bien le fichier même point p y qui est à l'intérieur de mes documents donc ça prouve qu'on a bien le même système d'exploitation ce n'est pas comme par exemple ce que vous pourriez avoir avec le windows phone system for linux ou là vous avez vraiment un système linux en plus qui est installée sur votre windows là c'est vraiment juste un terminal qui vous permet d'avoir les mêmes commandes que moi est d'avoir un affichage différents comme vous le voyez sur les chemins de dossiers mais en arrière plan c'est exactement la même chose on retrouve les mêmes dossiers que ce soit via l'explorateur de fichiers ici ou alors via guide bâches donc voilà pour l'installation de guides beh si vous avez le moindre souci n'hésitez pas à le poster dans les questions réponses de la formation ou à nous rejoindre sur le discorde pour vous poser nos questions je sais que sur windows il ya beaucoup de petites choses comme ça à installer c'est un petit peu pénible mais on arrive au bout on a maintenant tout qui installé comme il faut et on va bientôt pouvoir commencer à écrire nos premières lignes de code à avec python sur windows avec guide bâches il y à certaines choses qu'il va falloir prendre en compte et des erreurs qui peuvent arriver et dans cette vidéo je vais vous montrer comment les régler alors la première chose que vous pouvez avoir c'est une erreur de permission donc si jamais quand vous utilisez une commande ou guide bâche en général vous avez un message qui vous indiquent des problèmes de permission il faut lancer guide bâche en mode administrateur donc je vais aller dans le menu démarrer je vais taper guide bâches et pour lancer guide bâche en mode administrateur vous pouvez cliquer avec le clic droit de votre souris sur l'icône ici ou directement ici vous voyez vous avez exécuté en tant qu'administrateur donc on peut faire un clic droit ici et on retrouve exactement la même option donc je vais faire clic droit exécuter en tant qu'administrateur on va me demander de confirmer que je veux bien lancé ce programme en tant qu'administrateur puisqu'avec cette option on va avoir des droits élevés donc il y à une vérification de windows et une fois qu'on a lancé donc guide bachand en mode administrateur cela devrait résoudre 99% des problèmes de permission que les étudiants généralement on dans ce court je profite également de cette vidéo pour vous rassurer sur quelques petits détails qui apparaissent ici le premier c'est ce tilde qu'on voit apparaître qu'ils représentent en fait votre dossier d'utilisateurs donc ne vous en faites pas c'est normal ici en jaune on a un tilde et s'ils utilisent la commande pwd pour afficher le dossier courant on voit bien que le dossier dans lequel je me trouve et le dossier d'utilisateurs donc mon dossier ici thibault dans le disque c qui est le disque principal sur mon ordinateur si je me déplace avec la commande cd par exemple dans mes documents là on voit que cette fois ci le chemin affiche le til death lâche documents donc ça veut dire qu'on se trouve dans le dossier c'est slash village qui bosse lâche document donc ne vous en faites pas ici c'est juste un raccourci d'affichage également vous avez le symbole dollars qui peut être différent selon les systèmes d'exploitation selon les terminaux que vous utilisez le symbole ici dollar signifie uniquement que c'est le début de ce qu'on appelle donc l'invité de commande qui est l'endroit où vous allez rentrer vos commandes donc après ce symbole dollars on peut utiliser des commandes comme cd ou pwd par exemple donc ce dollars ici ne fait pas partie des commandes donc vous ne pouvez pas à l'effacer et ne vous en faites pas il va être là à chaque fois sur chaque ligne que vous allez taper donc là encore ne vous inquiétez pas autre chose avec python et guides beh si vous utilisez la commande python ou le pai launcher donc en faisant payer y espace tirait et le numéro de la version que vous souhaitez lancer donc par exemple la 3.6 oula 3.9 eh bien il va falloir rajouter une option en plus pour pouvoir rentrer dans un interpréteur interactif si actuellement j'utilise par exemple la commande python vous voyez que rien ne se passe donc j'ai le curseur ici qui clignote mais je ne suis pas à l'intérieur d'un interpréteur python pourtant si je ferme guide bâches ici vous allez voir qu'il me dit qu attention il y à un processus qui est en train de rouler sur le terminal donc là je peux dire que je veux quand même fermé le terminal donc je clique sur ok et ça va terminer le processus est fermée guide bâche mais en fait on voit bien qu'ils avaient donc quelque chose qui roulait en arrière-plan sur notre guide bâche donc là je vais relancer guide bâche en tant qu'administrateur je valide de nouveau et donc cette option qu'il va falloir rajouter si tout simplement tirer donc la fête bien l'intention j'ai mis un espace également donc python espace thiery qui marchent également avec le punisher donc si je lance python tirait 3.6 et je rajoute à la suite avec un espace tirer i cette fois-ci vous voyez que je vais bien rentrés dans un interpréteur python interactif dans ce cas ci le 3.6 puisque c'est ce que j'ai spécifié après p y si je sors avec la fonction exit donc exit suivi des parenthèses je peux faire la même chose avec la commande python je mets un espace et ensuite tirer y est là cette fois ci vous voyez qu'on rentre bien à l'intérieur de l'interpréteur python interactif je peux ressortir de nouveau et maintenant quand je reviens donc au niveau du terminal je peux faire me dit bâches il n'y aura plus de processus en cours d'exécution puisqu'on était sorti avec la commande exit de l'interpréteur python interactif donc voilà pour ces petites précisions le mode administrateur si jamais vous avez des problèmes deux permissions et également donc cette option que vous devez rajouter pour pouvoir rentrer à l'intérieur d'un interpréteur python donc souvenez vous bien de tous ces petits détails quand vous allez c'est un script avec python ou rentrer dans un interpréteur python interactif utiliser les bonnes commandes adaptées les pour windows et pour guide bâches moi je suis sur mac os pour le reste de la formation donc les commandes seront légèrement différente mais avec tout ce que je vous ai montré jusque-là donc comment lancer et python avec les commandes donc que ce soit avec la commande python ou avec le pylône chuck et l'option ici qui vous permettent de rentrer dans un interpréteur python interactif vous ne devriez pas avoir de problèmes pour la suite de la formation avant d'installer python sur mac os on va déjà vérifier quelles versions sont disponibles sur notre système d'exploitation donc dans un terminal on va taper python et on va puis deux fois sur table et ça va nous montrer ici tout ce qu'on peut faire avec la commande python donc on voit que actuellement je n'ai que la version 2.7 d'installer cette version est installé par défaut normalement sur les mac donc si je tape python 2.7 et que j'appuie suis rentré je peux exécuter quittons et je me retrouve à l'intérieur d'un interpréteur python donc si je veux sortir je fais exit suivi de parenthèses donc on à piton d'installer mais c'est la version 2.7 nous on va vouloir installer la version 3.7 donc je vais vous montrer comment faire tout de suite si jamais quand vous tapez python et que vous appuyez deux fois sur table vous avez déjà la version 3.7 et bien elle est déjà installée et donc vous pouvez l'utiliser directement sans avoir besoin d'installer quoi que ce soit 2 supplémentaires si vous n'avez pas la version 3.7 et bien continuer cette vidéo et on va voir comment l'installer pour installer python sur mac on va aller sur le site officiel de python donc python point org / d'arnaudy ici vous allez mettre votre curseur et ça va faire apparaître ce petit onglet normalement vous devriez avoir automatiquement la dernière version de python qui est affichée ici donc dans notre cas la version 3.7 points 3 si jamais ce n'est pas le cas vous pouvez aller sur la page mac os ici sur laquelle vous allez retrouver toutes les versions de python que vous pouvez installer on a ici en eau les deux dernières versions de python pour la version 2 est la version 3 et on retrouve ici la version 3.7 points 3 que l'on avait sur la page d'accueil donc vous pouvez cliquer également sur cette page vous rendre à la fin de la page et aller chercher ici l'installeur pour mac os 64bits donc on peut cliquer ici pour le lancer ou sinon directement sur la page d'accueil aller chercher le lien qu'on ne donne par défaut donc je clique ici et ça va me permettre de lancer le téléchargement de l'installeur python donc je vais le mettre dans mes d'un autre ici je fais save et une fois que le fichier est enregistrée je peux cliquer dessus pour lancer l'installation du package python une fois que j'ai lancé l'installeur je vais pouvoir donc passé avec vous à travers l'installation donc on va cliquer sur kant signaux ici là encore si vous voulez lire vous pouvez sinon on clique sur continued là encore quand tu signes ou on accepte on choisit ensuite où on veut installer python donc moi je vais laisser l'installation par défaut sur mon disque dur je vais cliquez sur cantine où là encore on peut changer l'installation sur le disque dur donc dans la partie précédente on avait sélectionné en fait le disque sur lequel on voulait l'installer au cas où on aurait plusieurs disques durs et après sur cette page ici on peut choisir sur le disque ou est-ce qu'on veut l'installer là par défaut moi je vais tout laisser comme c'est ça va bien l'installer dans les applications donc je n'ai pas besoin de toucher quoi que ce soit et je vais cliquez donc sur installed ici je ne clique pas sûr que ce tome eyes on peut customiser certaines choses mais par défaut tout eh bien on à la documentation python si jamais on veut y avoir accès et peep aussi qui va être installé qu'on va utiliser plus vers la fin de la formation pour installer des package donc tout est cochée par défaut et c'est parfait comme ça donc on va laisser comme ça pas besoin d'aller cost a misé quoi que ce soit et on va cliquer sur in store il va vous demander d'entrer votre mot de passe et par la suite il va lancer donc l'installation des fichiers donc ça ne devrait pas être très long et je vous retrouve tout de suite après l'installation donc voilà l'installation qui est terminé il va m'afficher ici tous les fichiers qu'il a installée et vous voyez qu'il les a mis automatiquement donc dans applications dans un dossier qui s'appelle python 3 points 7 donc je retrouve tous les fichiers de python ici on a notamment idol points à ce qu'on va utiliser bientôt pour créer notre première ligne de code est ici il me demande donc si je veux fermer l'installeur donc oui je fais close il me demande si je veux en fait supprimer le fichier d'installation donc le fichier qu'on a téléchargé il ya quelques instants pour l'ancienne installation moi oui je n'en ai plus besoin donc je vais cliquez sur move tout chaud ici pour l'envoyer dans ma corbeille donc python maintenant est installé et si je relance un terminal je vais maintenant avoir un nouvel alias donc si j'appuie deux fois sur table vous voyez qu'on a maintenant quittons 3.7 qui est disponible donc je peux faire python 3.7 appuyez sur entrée et je suis bien à l'intérieur d'un interpréteur python 3 points 7 points 3 donc voilà comment installer la dernière version de python sur le système mac os maintenant qu'on a installé python 3 points 7 on va installer l'éditeur de texte visual studio code donc on va se rendre sur le site co 2 points bijoux au studio point com et vous allez cliquer ici sur download forums mac on clique et ça va lancer voilà le téléchargement d'un fichier zip je vais le mettre dans mes téléchargements et ça va lancer l'installation c'est assez rapide à télécharger est donc en cliquant dessus automatiquement en fait mon système va extraire ceux qui se trouvent à l'intérieur du point dip donc là on retrouve en fait l'application directement c'est tout ce que contient ce point vite donc on n'a pas besoin de lancer quelques installations que ce soit on a directement l'application et si je double cliquer dessus et bien ça va ouvrir l'application visual studio code là il me demande si je veux ouvrir cette application puisqu'elle vient d'internet donc je fais confiance je clique sur open et voilà visual studio code se lance et a été en quelque sorte installé sur mon système donc la seule chose que je vais faire en fait moi c'est le déplacer puisque pour l'instant il est dans mes téléchargements donc je vais le déplacer dans mes applications ici et maintenant voilà il va être à l'intérieur de mes applications et je vais pouvoir le lancer de la même façon ou avec spotlight directement en tapant visual studio code et je retrouve ici donc l'application je peux cliquer dessus et ça va ouvrir cette application donc pas besoin d'installations compliqué pour visual studio code sur mac il suffit de télécharger le fichier zip de l'extraire et de déplacer donc cette application si vous voulez pour ne pas qu'elle reste dans vos téléchargements et qu'elle se retrouve à l'intérieur de vos applications alors pour commencer on va installer python donc je vais aller tout en bas dans soho l'application et je vais ouvrir un terminal donc par défaut normalement vous devriez avoir une version de python d'installer si j'appuie sur python là vous voyez que ça me dit que python n'est pas trouvée puisque par défaut maintenant sur ubuntu c python 3 qui est installée et non pas python 2 donc pour ouvrir python 3 on va taper python suivi du nombreux 3 on appuie sur entrée et là on rentre bien dans un interpréteur pitt sauf que vous voyez ici ce n'est pas la dernière version en date la 3.7 mais là 3.6.5 donc nous on veut installer la dernière version donc je vais faire contrôler l'aide pour sortir de cette interpréteur python un petit clip pour nettoyer mon terminal et je vais vous montrer donc comment installer la dernière version de python sur ubuntu alors à partir de maintenant toutes les commandes que je vais taper dans ce terminal vous allez voir qu'elles sont un petit peu complexe moi je fais des copier-coller donc que vous inquiétez pas là je vais coller la commande et si vous voulez retrouver toutes ses commandes rendez vous dans la prochaine partie vous allez avoir tous ses commandes sous format texte pour que vous aussi vous puissiez faire des copier-coller donc la première commande qu'on va faire c'est sud aux apps hop dayz ça va nous permettre de mettre à jour apd qui nous permet ensuite d'installer python donc j'appuie sur entrée à chaque fois qu'on veut utiliser la commande dessus dos ça veut dire que l'on veut utiliser les droits d'administrateur dont vous allez devoir entrer votre mot de passe d'administrateur donc je l'antre j'appuie sur rentrée ne vous inquiétez pas ça n'affiche rien c'est normal quand vous tapez un mot de passe sur linux vous ne voyez pas le nombre de caractères que vous tapez donc faites bien attention donc apte à bienne était abritée on voit qu'il n'ya pas d'erreurs et je vais pouvoir continuer avec la deuxième commande alors avant d'installer python il y à quelques package qui sont nécessaire d'installer donc je vais copier la deuxième ligne j'appuie sur entrée là encore ça devrait marcher tout seul donc là une demande si je veux continuer puisque il faut une confirmation donc je mets y j'appuie sur entrée pour confirmer et là il va faire son travail donc il installe toutes les dépendances dont il a besoin pour pouvoir par la suite installé python et là encore vous voyez que ça a bien fonctionné qu'on n'a pas eu d'erreur donc on peut continuer avec la troisième commande cette troisième commande qu'on va exécuter elle va nous permettre d'ajouter un repositories donc c'est un endroit en fait qui contient le fichier qui va nous permettre d'installer python donc on lance cette troisième commande vous voyez que à partir de maintenant j'ai plus besoin de rentrer mon mot de passe dès qu'on l'a fait la première fois ça suffit là il va me demander donc d'appuyer sur entrée pour continuer donc je confirme j'appuie sur entrée et il va continuer avec l'installation donc là encore normalement ça ne devrait pas poser de problème si jamais vous avez la moindre erreur lors de cette installation n'hésitez pas à poster cette erreur dans les questions et réponses de la formation pour qu'on puisse vous aider à passer à travers cette installation de python 3.7 donc maintenant qu'on a mis à jour apte qu'on a ajouté le repositories et installer les dépendances on va pouvoir lancer l'installation de python 3.7 donc sud au app store le piton 3.7 on appuyez sur entrée hélas cette fois ci il va nous demander de confirmer qu'on veut bien installés les package est nécessaire à piton 3.7 donc je mets un y j'appuie sur entrée et il va installer python 3 sur la machine donc on attend que l'installation se termine et on va vérifier tout de suite après si l'installation s'est bien déroulé en essayant de rentrer dans un interpréteur python mais cette fois ci dans python 3 points 7 donc vous voyez qu'il m'indique le temps restant donc là on a quinze secondes à peu près qui reste donc ça va assez vite et une fois qu'il va arriver à 100% il va pouvoir lancer l'installation de python donc voilà à piton qui a été installé donc normalement ça a l'air bon on a pas eu d'erreur alors je vais fermer ce terminal est en rouvrir un nouveau pour être sûr que tout soit bien mis à jour donc je clique sur terminal ici et cette fois ci si je tape python 3 donc par défaut je suis encore avec python 3.6 mais vous allez voir que je vais pouvoir spécifier la version que je veux donc si je tape 3.7 à la place vous voyez que je suis bien cette fois ci avec python 3 points 7 donc voilà pour l'installation de la dernière version de python donc la version 3.7 sur ubuntu donc si jamais là encore vous avez des problèmes lors de l'installation n'hésitez pas à poster dans les questions et réponses de la formation avec l'erreur que vous avez et si possible des captures d'écran pour qu'on est toutes les clés en main pour pouvoir vous aider donc il ya beaucoup de distribution de linux donc ça demande beaucoup de set-up différents alors je ne peux pas tous les faire malheureusement moi j'ai pris la version la plus populaire de linux ubuntu si vous jamais vous avez une autre une autre version notre distribution de linux n'hésitez pas là encore à nous poser la question si vous avez des problèmes pour l'installation alors pour installer visual studio côte sur ubuntu on a de la chance c'est assez simple on n'a pas besoin d'utiliser le terminal on va pouvoir aller directement dans ubuntu software donc moi vous voyez que je lis ici dans les raccourcis à gauche sinon vous pouvez aller dans un show applications' et vous devriez trouver ubuntu software dans la liste des applications donc en haut on va cliquer sur la petite loupe et on va rentrer dans huit jours au studio code pour chercher l'application donc elle est là je clique dessus et il ne me reste qu'à cliquer sur install pour installer l'application donc il me demande mon mot de passe je le rentre et je continue avec l'installation donc vous voyez que c'est assez rapide le programme est installé ça va très vite je clique sur launch pour vérifier que ça fonctionne et normalement il devrait donc m'ouvrir visual studio code si je vais voir en plus dans les applications donc chaud application ici je devrais me retrouver avec une entrée pour visual studio code qui a été ajouté à la fin donc vous voyez ici donc vous pouvez cliquer dessus à partir de ce menu pour le lancer également 2 voilà arrivés au début de la première partie de cette formation qui en compte trois pour l'instant je te la corde on n'a pas fait encore grand chose mais comme toujours avec la programmation il ya pas mal de choses à installer avant de pouvoir se mettre au travail si tu as eu le moindre problème pour l'installation de python ou pour les partis qui vont suivre n'hésite pas à nous rejoindre sur le serveur discorde pour nous demander de l'aide à partir d'ici il va rentrer dans le vif du sujet avec la création de notre premier script je vais ensuite te présenter le terminal qui n'est pas directement relié à python mais qui est un outil très important à connaître pour tout développeur qui se respecte ensuite on va voir comment utiliser vie jolies filles aux codes pour exécuter no script python sur windows mac et linux bien entendu à chaque fois tu n'as besoin de regarder que la vidéo qui concerne ton système d'exploitation ensuite on va s'attaquer à toutes les notions de bases du langage on va voir les variables comment interagir avec un utilisateur manipuler les différents types natif de python et les bases de l'algorithmie avec les boucles et les structures conditionnelle tout au long de ces différentes parties tu retrouveras des quizz et des exercices qui te permettront de tester tes connaissances à la fin de cette première partie on va également réaliser plusieurs projets comme une calculatrice un programme pour gérer une liste de courses ou encore des mini jeux avec le jeu du nombreux mystères est un jeu de rôle pour l'instant ça reste des programmes assez simple qui ne sont pas super utile dans un cadre professionnel mais ça te permettra de mettre en pratique et toutes les connaissances que tu auras vu dans cette première partie et pour finir tu retrouveras à la fin de cette première partie un résumé complet de toutes les notions qu'on a vu et un examen avec plus de 80 questions je te conseille fortement de t'assurer que tu as bien réussi cet examen avant de passer à la suite si jamais il ya des notions qui t'échappe encore n'hésite pas à revenir sur cette première partie c'est vraiment important pour passer à la suite que tu maîtrises un minimum ses concepts qui sont à la base de la plupart des langages de programmation la première ligne de code que n'importe quel étudiant en programmation exécute c'est une ligne de code qui permet d'afficher le fameux texte hello world qui veut dire bonjour le monde en anglais pour exécuter cette ligne de code on va ouvrir python à l'intérieur d'un terminal donc je vais lancer un terminal donc terminal sur mac et linux et sur windows vous pouvez utiliser guide bâche qu'on a installé dans la partie de configuration de windows donc à l'intérieur de ce terminal je vais tout simplement taper python 3.7 appuyez sur entrée et vous voyez qu'automatiquement je rentre dans un interpréteur python qui est en tout point similaire au programme idol qu'on peut également lancer pour exécuter des lignes de code python moi je préfère tout le temps lancé à l'intérieur d'un terminal donc là c'est à vous de voir ce que vous préférez on pourrait aussi lancer directement le programme idol donc que vous pouvez trouver dans la barre de recherche de windows ou sur mac vous pouvez lancer à l'intérieur d'un terminal en mettant la commande idol 3.7 en appuyant sur rentrée et vous voyez que de cette façon on a aussi accès à un interpréteur python qui nous permet de taper des lignes de cotes donc c'est exactement la même chose donc vous pouvez utiliser idol si vous le souhaitez moi je vais tout le temps utilisé est bien un interpréteur python directement à l'intérieur d'un terminal donc pour ce faire on tape python 3.7 on appuyez sur entrée et on se retrouve directement à l'intérieur d'un interpréteur python donc à la suite de ces trois crochets ici on va pouvoir taper une ligne de code donc la ligne de code qu'on va exécuter et bien c'est un print donc un print qui nous permet d'afficher du texte donc c'est la première fonction qu'on voit ensemble première d'une longue série vous allez voir et à l'intérieur de ce prix on va spécifier ce qu'on veut afficher donc pour spécifier un élément qu'on veut afficher on va mettre des parenthèses et c'est à l'intérieur de ces parenthèses qu'on va dire ce qu'on veut afficher comment on affiche une phrase est bien en mettant des guillemets donc les guillemets ils peuvent être simples comme ceci ou double ça n'a pas vraiment d'importance la seule importance c'est de ne pas les mélanger de ne pas par exemple commencé avec un guillemets double et finir avec un guillemets simple donc moi je vais utiliser la plupart du temps des guillemets double mais vous pourriez aussi utiliser des guillemets simple c'est à vous de voir ce que vous préférez donc j'utilise des guillemets double pour spécifier une phrase a affiché donc la phrase que je vais afficher ses hello world et je vais mettre un petit point d'exclamation à la fin je vais exécuter ensuite cette ligne de code en appuyant sur la touche entrée et vous voyez qu'on a bien le fameux texte l award qui est affiché écran donc voilà comment utiliser la fonction print pour afficher du texte donc pour afficher du texte il faut obligatoirement l'entourer de guillemets simple ou double pour spécifier qu'on veut afficher une phrase et non pas une variable alors une variable on n'a pas encore vu ce que c'était et on va le voir tout de suite dans les prochaines parties mais voilà vous voyez que très rapidement avec python on peut commencer à écrire des lignes de code pour effectuer certaines opérations et dans ce cas-ci pour afficher du texte comme ici avec le hello world donc on pourra mettre n'importe quoi ici si à la place on veut afficher bonjour eh bien on met bonjour entouré de guillemets on appuyez sur entrée et on a bon jour qui est affiché à l'écran donc voilà comment afficher du texte avec la fonction print à l'intérieur de python 3.7 donc votre première ligne de code une félicitation c'est votre première ligne de code et c'est la première je l'espère d'une longue série dans les prochaines parties je vais te présenter plusieurs commandes que l'on peut utiliser dans un terminal pour réaliser des opérations de base comme créer ou supprimer des fichiers et des dossiers ce n'est pas une partie essentielle de la formation car elle n'est pas directement relié à piton mais je considère que tous vont développeurs qui se respecte se doit de savoir utiliser un terminal c'est un atout vraiment important quand tu arrives dans une entreprise et je te conseille donc de passer à travers les prochaines parties de la formation alors sur windows on l'a évoqué dans les parties sur l'installation et la mise en place de notre environnement windows on ne va pas utiliser le terminal par défaut le terminal par défaut c'est ce qu'on appelle sur windows l'invite de commandes donc si dans le menu démarrer vous tapez invite vous devriez avoir ici l'invité de commande est en fait cette invite de commande elle ne permet pas d'utiliser les mêmes commandes que sur mac ou sur linux donc on ne va pas l'utiliser on va utiliser à la place guide bâche qu'on a installé avec king it dans la partie sur la mise en place de notre environnement de travail avec windows donc si là encore dans le menu démarrer vous tapez cette fois-ci guide bâche vous pouvez l'ouvrir et vous allez avoir un terminal qui va vous permettre d'exécuter les mêmes commandes que sur mac et sur linux par exemple la commande elle est ce qui permet de lister les fichiers et les dossiers à l'intérieur du dossier courant donc voilà pour le terminal dans windows on va vraiment utiliser uniquement guide bâche vous pouvez en utiliser un autre si vous êtes habile avec un autre émulateur de terminale mais ça se peut que vous ayez pas forcément les mêmes commandes que moi vous pouvez aussi passer par exemple pas vos chers ou directement par l'invité de commande mais là ce sont des commandes qui vont être différentes donc ça va peut-être être difficile pour vous de suivre si vous êtes vraiment habitué à travailler avec un terminal vous allez probablement vous retrouver là-dedans avec votre terminal à vous mais pour la formation si vous n'avez vraiment jamais utiliser de terminale moi je vous conseille d'utiliser guide bâches donc voilà pour la partie sur windows sur comment ouvrir un terminal et comment suivre du coup la formation avec les mêmes commandes que moi pour ouvrir un terminal sur mac os c'est très simple vous pouvez passer directement par spotlight qu'on peut ouvrir avec le raccourci clavier pomme barde espace vous allez taper dans la barre de recherche qui s'ouvre devant vous terminal point ap et vous assurer que ici l'application est bien trouvé ça devrait être le cas puisque le terminal vient de base avec mac os donc vous cliquez dessus et et ça va vous ouvrir devant vous un terminal dans lequel vous allez pouvoir commencer à taper des commandes pour linux moi j'utilise ici centos 7 donc ça se peut que vous ayez une distribution un peu différente il ya beaucoup de distribution avec linux mais la procédure devrait tout de même être assez similaire donc vous allez aller dans les applications qui sont installés avec votre distribution de linux vous voyez que moi directement ici je retrouve le terminal alors ça se peut qu'il ne soit pas visible directement quand vous cliquez sur application si ce n'est pas le cas vous pouvez vous rendre dans les sous menus ici et vous allez finir par le trouver donc moi par exemple ils se retrouvent dans system tools et j'ai bien le terminal ici qui apparaît donc je peux cliquer dessus tout simplement pour l'ouvrir et vous voyez que j'ai le terminal qui s'ouvre et je vais donc pouvoir commencer à taper des lignes de commande dans ce terminal la première commande qu'on va utiliser c'est la commande elle sls ça nous permet de lister les fichiers et les dossiers qui sont présents à l'intérieur du dossier courant donc comme ça on va savoir quel fichier on peut ouvrir ou dans quel dossier on peut naviguer vous voyez par exemple ici que j'ai un dossier qui s'appelle formation développeurs python qui est le dossier qui contient toutes les sources de la formation donc je sais que ce dossier est présent dans le dossier courant dans lequel je me trouve et que je vais pouvoir naviguer à l'intérieur de ce dossier on a aussi le moyen de spécifier avait les flag donc elle a donc on met irait là ça nous permet de spécifier en fait ce qu'on appelle des flag ou des paramètres qui vont permettre d'avoir une vue un peu différente donc si je fais elle est tirée est là et que j'appuie sur entrée vous voyez que cette fois ci on a une vue en liste donc avec non pas des colonnes comme on avait précédemment mais uniquement une liste et on a également tous les fichiers cachés donc le à nous permet d'avoir accès à tous les fichiers cachés qui sont représentées sur un mac avec un point donc vous voyez qu'il ya beaucoup de choses ici qui qui sont cachés auxquelles on n'a pas accès quand on fait tout simplement et laisse donc ça peut être intéressant il ya pas mal de fichiers comme par exemple bâche profile qui sont intéressants qui nous permettent de spécifier certaines choses sur un mac donc c'est intéressant de savoir où il se trouve et donc le flag à va nous permettre d'avoir accès à tous les fichiers et tous les dossiers même s'ils sont cachés avec le flag elle vous avez donc une vue en liste comme ceux ci et vous avez aussi pas mal d'autres informations par exemple la date à laquelle on y accéder en dernier les modes d'écriture et de lecture qui a créé le fichier etc et c'est donc plein d'autres informations avec ses 2 flac donc la commande de base cls pour avoir juste une vue simple et épuré de ce dans quoi on peut naviguer ou les fichiers qu'on peut ouvrir et elle est irréel à qui va vous permettre d'avoir une vue un peu plus avancé donc comme on vient de le voir avec la commande ls on va pouvoir lister les fichiers et les dossiers qui sont dans le dossier courant mais des fois ça peut être bon de savoir en fait dans quel dossier on se trouve vous voyez ici qu'on a juste ce qu'on appelle en tilde et qu'on ne sait pas forcément du coup dans quel dossier on est le tilt ça veut dire en fait qu'on est dans le dossier d'utilisateurs et pour afficher le chemin complet de ce dossier je vais utiliser la commande pwd qui veut dire print working directory working directrice est en fait le dossier de travail donc le dossier courant dans lequel on est et print donc c'est comme la fonction print en python ça nous permet d'afficher donc on va afficher le dossier de travail j'appuie sur rentrée est là vous voyez que automatiquement j'ai le chemin complet du dossier dans lequel je me trouve qui s'affiche donc si jamais vous êtes perdus vous ne savez pas dans quel dossier vous êtes vous pouvez utiliser cette commande pour vous afficher le chemin du dossier dans lequel vous vous trouvez pour pouvoir ensuite par exemple avec elle s afficher les dossiers qu'ils sont intérieur de ce dossier dans lequel vous vous trouvez pour continuer à naviguer dans votre structure de dossiers donc jusqu'à présent on a vu comment lister les dossiers on a vu comment savoir dans quel dossier on se trouvait et avec tout ça on va maintenant pouvoir se déplacer d'un dossier à un autre donc pour ce faire on va utiliser la commande cd qui signifie challenge directory donc ça veut dire qu'on va changer de dossiers alors céder on va lui donner un nom de dossier dans lequel on veut naviguer donc si je ne sais pas quel dossier j'ai deux disponibles et bien je vais tout simplement faire un et laisse donc là ça me liste tous les dossiers dans lesquels je peux naviguer donc j'ai par exemple comme je vous disais le dossier formation développeurs python donc je vais le sélectionner je vais utiliser céder ici et si je les sélectionne on a quelque chose alors c'est pas obligé que ça marche sur tous les systèmes d'exploitation mais normalement en tout cas sur mac et sur linux ça devrait marcher pour faire un copier-coller vous pouvez appuyer avec la molette de votre souris donc un clic de la molette de la souris vous voyez qu'automatiquement ça va faire un call et de ce que j'avais sélectionné sinon si vous n'avez pas cette façon de faire si ça ne marche pas pour vous et bien vous pouvez tout simplement commencer à taper les premières lettres du dossier donc par exemple ici format j'appuie sur table et automatiquement vous voyez qu'il va me compléter l'intégralité du dossier qu'il trouve qui correspond à ce que j'avais commencé à taper donc là on avait juste un dossier qui commençait par format donc automatiquement il n'a complété l'intégralité du nom du dossier donc avec cd on va pouvoir naviguer à l'intérieur de ce dossier vous n'êtes pas obligé de mettre le slash à la fin même sens le scratch ça va marcher on appuie sur entrée et là vous voyez que je suis bien à l'intérieur de ce dossier si on veut avoir le chemin complet du dossier on peut refaire un pwd j'appuie sur rentrée est là vous voyez bien que je suis dans users seebach formation développeurs python si on veut revenir d'un dossier donc revenir dans le dossier parent on peut utiliser ces des maîtres deux points comme ça et ça ça va nous permettre de remonter dans les dossiers donc là si je refais un pwd vous voyez qu'on est de retour dans usual seebach si je refais un cd formation comme ça j'appuie sur table pour auto compléter le chemin complet j'appuie sur entrée et là je suis de retour dans ce dossier si je veux savoir ce qu'il ya à l'intérieur de ce dossier je refais un hells et là ça me permet de voir que par exemple j'ai un dossier exercice dans lequel je vais pouvoir donc naviguer avec cd je me retrouve donc dans le dossier user seebach formation développeurs python exercice et si jamais je veux revenir je peux faire c'est des deux poings mettre un slash encore deux points et là ça va me permettre de remonter de deux dossiers directement donc j'appuie sur entrée et là vous voyez que on était dans le dossier formation développeurs python exercice et avec cette syntaxe ici deux points slash de points on est directement remonté de deux dossiers directement dans news of this page donc voilà comment naviguer avec la commande challenge directory donc cédé qui nous permet de naviguer à l'intérieur de dossiers on peut mettre plusieurs dossiers à la suite d'un coup imaginons que à partir de usual seebach je veux aller directement dans le dossier exercice je peux très bien faire c'est des formations développeurs python exercice donc directement le chemin complet j'appuie sur rentrée est là vous voyez que avec une seule ligne de commande ici avec cd et le nom du dossier je suis rentré directement à l'intérieur du dossier exercice qui était lui même à l'intérieur du dossier formation développeurs python si jamais aussi on veut revenir dans notre dossier utilisateur on peut utiliser ce symbole dont clotilde qui nous permet de revenir à ce dossier donc ça c'est juste un raccourci si vous voulez c'est une façon en fait de spécifier le dossier utilisateur donc peu importe où vous êtes à l'intérieur de votre terminal vous pourrez toujours utiliser ce symbole le tilde pour vous ramener dans votre dossier d'utilisateurs donc voilà pour cette commande céder donc c'est vraiment une commande qu'on utilise constamment qui nous permet de naviguer à l'intérieur de notre structure de dossiers sur notre disque dur plus vous allez travailler dans votre terminal plus vous allez avoir plein de ligne comme ça qu'ils commencent à s'accumuler pour nettoyer en fait de notre terminal on a accès à une fonction qui s'appelle clear et qui va nous permettre de supprimer toutes les lignes qu'on a dans notre terminal donc j'appuie sur entrée et là vous voyez que automatiquement ça nettoie mon terminal et je me retrouve avec quelque chose de plus agréable donc quand je dis ça va effacer les lignes en fait ça ne les efface pas totalement si vous remontez dans votre terminal vous voyez quels sont toujours ici donc ne vous inquiétez pas si jamais vous avoir un historique de ce que vous avez fait avec les airs vous n'allez pas effacé sellini c'est juste en fait qui va vous voyez ici vous remettre le curseur en eau et vous faire un petit saut de ligne pour vous assurer que en fait vous n'avez pu en visuels tous les lignes qu'on avait précédemment donc si je commence à retaper des lignes comme ça pour naviguer dans mon dossier revenir et c est que je veux rapidement nettoyer tout ça je fais un client j'appuie sur rentrer et me voilà revenu en haut de mon terminal mais si je reviens comme ceci vous voyez que là il a fait plusieurs sauts de ligne et il m'a déplacer mon terminal pour que j'aie une visibilité plus claire sur ce que je suis en train de faire donc voilà pour cette commande qui est très pratique et très utilisés aussi moi personnellement j'utilise tellement souvent que en fait j'ai fait un alias qui me permet d'utiliser ces à la place de clear donc si par exemple je refais voilà quelques navigation dans mes dossiers et que j'appuie sur ces vous voyez qu'automatiquement ça va me permettre de nettoyer mon terminal jusqu'à présent on a vu comment afficher les dossiers comment naviguer à l'intérieur de ces dossiers maintenant on va voir comment créer un dossier pour ça on va utiliser la commande est mme kadeer qui veut dire donc mais qui dieu en français créé un dossier cette commande on va lui passer le nom du dossier qu'on veut créer tout simplement donc m khadir espace dossier test j'appuie sur entrée ça me permet de créer un dossier qui s'appelle dossier test pour vérifier je fais un ls je vois ici que j'ai bien dans la liste de mes dossiers le dossier tests que j'ai créée si je fais un cd je peux maintenant naviguer à l'intérieur de ce dossier sans problème on peut créer d'autres dossiers à l'intérieur ici comme par exemple un autre dossier test je fais un hells et je vois bien que j'ai ce dossier test qui a été lui aussi créé à l'intérieur de ce dossier donc mk dire ça va vraiment nous permettre de créer un dossier par rapport à là où on est actuellement donc là je suis dans dossier test si je fais un pwd vous voyez que le chemin complet c'est user seebach dossier test donc si je fais mk dire d'un nouveau dossier ici ce nouveau dossier sera bien créée à l'intérieur du dossier dans lequel je me trouve actuellement vous pouvez toujours modifier ce chemin en mettant par exemple là encore deux points slash ce qui va me permettre d'indiquer que je ne veux pas créer ce dossier directement dans le dossier courant mais au niveau supérieur à chaque fois qu'on a deux points et un slash ça nous permet d'indiquer que l'on veut avoir un chemin relative donc relatifs à la on est et les deux points se lâche ça va être donc le dossier supérieur donc si je fais mk dire deux points slash nouveau dossier et que j'appuie sur entrée je fais un hells vous voyez que mon nouveau dossier n'est pas présent dans le dossier courant par contre si je reviens dans le dossier par an et que je fais 1 et laisse cette fois ci on voit bien que mon dossier a été créé au dossier supérieur donc au niveau par an directement dans users tib h donc c'est peut-être un peu flou encore pour l'instant mais plus vous allez pratique et plus vous allez vous rendre compte que finalement ce n'est pas si compliqué que ça et tout de suite on va voir comment supprimer cette fois ci les dossiers qu'on vient de créer pour supprimer un fichier ou un dossier on utilise la commande rmr aime ça veut dire we move qui veut dire supprime en français donc on va dire rm et on va entrer le nom du dossier qu'on veut supprimer donc par exemple dossier test si je fais ça vous allez voir qu'on a une erreur il nous dit que dossier test c'est un répertoire donc à un dossier et qu'on ne peut pas le supprimer donc pour ce faire pour supprimer un dossier il faut spécifier le paramètre air donc on va dire tirez r et après ça on va mettre le nom du dossier on appuie sur rentrée est là vous voyez que ça fonctionne bien donc ça c'est juste une petite particularité si vous voulez supprimer un fichier vous pouvez le faire directement avec rm donc on pourrait par exemple faire rm mon fichier point txt et ça le supprimerait sans qu'on ait besoin de spécifier le flag par contre avec un dossier il faut obligatoirement spécifié le flag tirèrent pour pouvoir le supprimer la dernière commande qu'on va voir c'est la commande touch qui cette fois ci nous permet de créer un fichier donc si je fais touch mon fichier point p y j'appuie sur rentrée si je refais un hells vous voyez que mon fichier point.p y a bien été créé et existe dans mon dossier courant donc je vais pouvoir ensuite l'ouvrir par exemple dans les geôles studio code pour écrire du code python à l'intérieur donc c'était vraiment la dernière pièce de l'édifice on a vu comment naviguer dans les dossiers comment créer des dossiers comment les supprimer comment afficher les dossiers et les fichiers qu'on avait dans le dossier courant et donc avec cette commande touch qui nous permet de créer un fichier maintenant vous avez tous les éléments nécessaires pour soi à naviguer dans les structures de dossiers existantes soit en créer de nouvelles donc voilà pour ces commandes de base donc n'hésitez pas à pratiquer un peu pour vous familiariser avec toutes ses commandes dans les prochaines parties vous allez avoir des quizz qui vont vous permettre de vérifier vos connaissances sur ces commandes est petit à petit au fur et à mesure vous allez voir si vous utilisez le terminal pour cette formation que vous allez devenir assez habile avec ces quelques commandes y en a 5 6 lui c'est vraiment les commandes qu'on utilise en fait à 90% du temps donc voilà une fois que vous les connaissez ça vous permet de faire vraiment pas mal tout ce que vous avez besoin de faire sur votre système d'exploitation tout au long de cette formation on va utiliser visual studio code pour écrire et exécuter no script python dans les prochaines parties je vais te présenter quelques astuces et extensions que l'on peut utiliser dans visual studio code afin de faciliter notre utilisation de python là encore certaines parties sont consacrés à windows d'autres hamac ou à linux je te conseille donc de passer directement à la partie qui concerne ton système d'exploitation situées sur windows tu peux continuer directement avec la prochaine partie dans laquelle on va vérifier l'intégration de visual studio code avec windows sur windows normalement quand vous avez effectué l'installation de visual studio code automatiquement il doit avoir ajouté les bonnes variables d'environnement pour vous permettre de lancer vais jouer le studio code depuis un terminal donc je vais ouvrir guide bâche j'appuie sur le menu démarrer je rentre guide bâches donc ça me permet de lancer l'application est normalement si vous tapez code tout simplement et que vous appuyez sur entrée vous allez voir qu'automatiquement ça va ouvrir visual studio code alors si ce n'est pas le cas c'est qu'il y a eu soit un problème lors de l'installation soit vous avez oublié de cocher quelque chose et donc je vais vous montrer comment remédier à ce problème alors dans le menu démarrer on va taper environnement donc là j'ai juste taper envies et vous voyez qu'elle a trouvé le résultat que je voulais donc modifier les variables d'environnement système on va cliquer sur cette entrée et en valais dans les variables d'environnement on a une variable ici qui s'appelle pattes qui contient plusieurs valeurs je vais cliquez sur modifier pour voir les différentes valeurs et vous voyez qu'on a le chemin ici vers microsoft vs code donc c'est ce chemin dans les variables d'environnement de pâte qui nous permet de taper tout simplement code dans un terminal pour pouvoir ouvrir visual studio code si je supprime ce chemin donc c'est peut-être ça qui qui est arrivé avec vous en faites le chemin n'est pas ici dans la variable d'environnement pattes donc je vais vous montrer si je le supprime ce que ça fait si je ferme le terminal et que je rouvre un nouveau terminal alors quitte beh si j'arrive à bien me taper guide bâches et donc si je fais code j'appuie sur entrée là vous voyez que cette fois ci il me dit que la commande n'a pas été trouvé donc ce qu'il faut faire si c'est le cas si c'est ça que vous avez devant vous il faut rajouter le chemin vers l'installation de visual studio code dans les variables d'environnement donc on va déjà allé chercher le chemin un derby jolies filles aux codes donc là je cherche tout simplement visual studio code je fais un clic droit et je dis ouvrir l'emplacement du fichier là vous voyez que on est dans les fichiers du menu démarrer si on regarde ici le type on voit que c'est un raccourci donc ce n'est pas encore le vrai dossier qui contient le fichier visual studio code donc on va faire un clic droit encore et on va dire ouvrir l'emplacement du fichier et là on se retrouve bien dans le dossier qui contient code points ex qui est donc le nom de l'application visual studio code donc on va copier ce chemin ici donc contrôler ces et on va retourner dans les variables d'environnement donc modifier les variables d'environnement système variable d'environnement ici on revient sur pattes ont fait modifier on double clic sur une ligne vide et en colle tout simplement le chemin du dossier qui contient un code point x donc je valide ok une fois ok deux fois ok trois fois je relance tout je cherche kit bâche dans le menu démarrer et j'appuie sur entrée et là vous voyez que si je tape code et que j'appuie sur entrée ça fonctionne parfaitement j'ai bien vu où le studio code qui s'ouvre donc voilà si jamais vous n'avez pas cette variable d'environnement voilà comment trouver le chemin vers visual studio code et comment l'ajouter dans libre et d'environnement pâte pour pouvoir taper tout simplement code dans un terminal donc que ce soit l'invité de commande ou guide bâches pour pouvoir ensuite ouvrir facilement le programme sur mac pour lancer les jeux audiocodes on va ouvrir un terminal et on va taper tout simplement code donc j'appuie sur entrée et normalement vous avez bien visual studio code qui s'ouvre devant vous si jamais ce n'est pas le cas donc si vous tapez code et que ça vous dit que la commande n'a pas été trouvé et bien vous pouvez tout simplement l'ouvrir déjà comme ça en cherchant dans votre spotlight dans votre menu spotlight en cherchant vidéo le studio code vous cliquez sur l'application donc ça va l'ouvrir hélas si vous faites pomme shift p vous allez pouvoir taper shell et vous allez avoir un menu qui apparaît celle commandes install code comme nine pâtes dont vous avez pas besoin de les modifier directement cette variable pattes vous pouvez directement le faire depuis visuals phylocode donc vous cliquez là dessus il va automatiquement ajoutée la variable dans les bons fichiers donc c'est très simple juste à cliquer là dessus il ajoute vous relancer un terminal donc je quitte mon terminal et genre ouvre un pour essayer en tapant code vous appuyez sur entrée et là normalement il devrait bien vous ouvrir visual studio code donc si ce n'est pas le cas a ajouté dans les questions et réponses de la formation et on fera tout notre possible pour vous aider à débloquer cette situation mais normalement dans tous les cas de figure - où j'ai eu besoin de faire cette manipulation ça a parfaitement fonctionné donc il n'ya pas de raison que ça ne marche pas de votre côté quand vous installez visual studio code à partir de ubuntu software il va automatiquement le placer dans un endroit qui vous permet de l'exécuter depuis le terminal donc si je vais dans show application et que je clique sur le terminal vous pouvez taper code tout simplement appuyez sur entrée et ça va ouvrir visual studio code donc normalement vous n'avez rien besoin de faire de spécifique vous voyez que automatiquement visual phylocode s'ouvre et que je peux commencer à écrire du code à l'intérieur de l'éditeur de texte donc si jamais vous voulez vous assurer que la commande existe bien et voir où elle se trouve vous pouvez faire which code vous appuyez sur entrée et là vous voyez que en fait le programme se trouve à l'intérieur d'un dossier qui s'appelle snap been donc c'est un programme qui est directement accessible avec la commande vous n'avez pas besoin de rentrer snap been caunes à chaque fois normalement vous pouvez directement indiqué code et ça va le lancer sinon comme on l'a vu dans la partie précédente vous pouvez toujours aller dans shoah plis ké shon où vous devriez avoir une icône visual studio code qui vous permettra aussi de le lancer directement en cliquant sur l'icône de l'application on l'a vu dans les parties précédentes pour ouvrir visual studio code on peut ouvrir un terminal taper code appuyez sur entrée et ça va nous ouvrir le programme par défaut le programme s'ouvre sans aucun fichier ni dossiers ouverts si je fais pomme b ou contrôler b si vous voulez afficher la barre vous pouvez aller dans view apprennent ici et faire togo sidebar aussi vous ne devriez avoir rien ici donc aucun dossier d'ouvert je peux faire mais visual studio code et cette fois ci faire code et lui spécifier un dossier à ouvrir par exemple ici le dossier qui contient les sources de la formation donc j'exécute cette ligne est cette fois ci vit jour le studio code va s'ouvrir mais avec le dossier que j'ai indiquées ouvert dans la barre à gauche donc je vais pouvoir retrouver tous les fichiers et tous les dossiers contenus à l'intérieur du dossier que j'ai spécifié et pouvoir les ouvrir par exemple en double cliquant ici sur un fichier donc ça c'est une première façon de faire en indiquant directement un dossier à ouvrir si on veut fermer ce dossier on peut aller dans file et dire clause fraudeurs ici et ça va fermer le dossier et on se retrouve avec visual studio code qui n'a rien d'ouvert donc je quitte visual studio code est ce qu'on peut faire aussi c'est directement ouvrir un fichier donc si je fais ces déformations pour rentrer à l'intérieur du dossier formation développeurs python je fais un hells pour voir les fichiers qui sont accessibles et je vais pouvoir par exemple ouvrir de la même façon directement ce fichier readme donc pour ça je fais code et j'indique le fichier readme j'appuie sur entrée et là vous allez voir qu'il va m'ouvrir directement le fichier que je lui ai indiqué si je refais un peu mme b pour voir la barre à gauche vous voyez que cette fois ci je n'ai là encore aucun dossier d'ouvert puisque j'ai spécifié un fichier directement visual studio code ne va pas m'afficher le dossier qui contient ce fichier pour afficher un dossier ici pour l'ouvrir directement avec la commande code il faut spécifier explicitement le dossier qu'on veut ouvrir si vous voulez ouvrir le dossier dans lequel vous êtes actuellement donc là si je fais un pwd vous voyez que je suis dans usual seebach formation développeurs python donc si je veux ouvrir ce dossier à l'intérieur duquel je me trouve dans mon terminal je peux faire code un espace et mettre un point le point ça va représenter le dossier dans lequel je me trouve donc si je fais ça cette fois ci on va se retrouver avec encore une fois l'ouverture d'un dossier donc comme précédemment avec le dossier formateur le port python qui se retrouvent ouvert ici à gauche dans la barre de navigation donc voilà comment on va en fait ouvrir des fichiers ou des dossiers directement depuis le terminal c'est vraiment une façon assez efficace puisque dans le terminal on va pouvoir naviguer dans des dossiers créer des fichiers et les ouvrir directement donc avec cette commande code sinon si vous n'êtes pas trop habitué au terminal et que vous préférez y aller via l'interface vous pouvez bien sûr pas c'est donc en ouvrant visual studio code points à penly ouvrant directement par spotlight ou par le menu démarrer et aller dans file open pour ouvrir un fichier ou un dossier ça marche très bien aussi mais vu que l'on risque d'utiliser quand même assez souvent le terminal pourra naviguer dans les fichiers ou pour faire certaines opérations et bien c'est important de savoir que vous pouvez directement ouvrir vos différents projets et vos différents fichiers avec cette commande code cette commande c'est la même donc sur mac windows et linux avec le terminal que vous utilisez donc le terminal sur mac et linux et il invite de commande ou l'équivalent qu'on a installé précédemment avec guide bâches ou comme haendel par exemple qui vont vous permettre d'exécuter ce même type de commande pour nous faciliter la vie lorsqu'on va utiliser python avec visual studio code on va installer l'extension python donc j'ouvre visual studio code et je vais aller dans view extentions et dans la dans la petite barre de recherche ici on tape python et on va avoir une liste d'extension qui servent pour python on va prendre la première celle qui contient uniquement le nom de python y en a plein qui contiennent python mais avec d'autres choses après donc peyton pas zeiten preview plein de trucs du genre nous c'est juste python qui nous intéresse donc celle ci on va cliquer sur installed et une fois que ce sera installé vous allez voir ici c'est marqué installed donc ça veut dire que l'installation a réussi on va fermer visual studio code on le rouvre et cette fois-ci vous allez voir que si on va dans la vue des extensions donc dans view externe chan on retrouve bien notre extension python qui a été installée et qui est activée par défaut alors on va tout de suite créer un nouveau fichier donc je vais faire file new fries et vous allez voir que cette extension nous apporte beaucoup davantage puisque on va avoir par exemple l'autocomplétion qui va nous permettre d'avoir des suggestions sur ce que nous pouvons faire avec le code que l'on tape donc pour l'instant j'ai créé un fichier mais le fichier n'est pas reconnu comme un fichier python donc ce qu'on peut faire c'est aller tout en bas à droite vous avez ici c'est marquez plein texte est en fait c'est le langage qu'on va utiliser donc par défaut c'est du texte tout simple et en cliquant sur le petit plein texte ici je peux spécifié le langage de mon fichier donc je vais descendre et je vais aller jusqu'à python je clique sur python et là vous voyez que j'ai la petite icône de python qui s'affiche qui m'indique que ce fichier est bien reconnue comme un fichier python ce que vous pouvez faire aussi c'est tout simplement sauvegardez le fichier donc je vais faire faceà eva's jeu le sauvegarde n'importe où je sais juste pour l'exemple et quand vous le sauvegarder en fait il suffit d'ajouter l'extension point.p y qui est l'extension des fichiers python pour que visual studio code se rendent compte que c'est un fichier python et si c'est le cas et bien il va automatiquement changer le texte ici pour que notre fichier sera connu comme un fichier python alors là je l'enregistré un niveau trop trop d'importance je vais le mettre par exemple sur mon bureau je vais l'appeler test point p y je fais save et me voilà mon fichier est sauvegardé donc automatiquement quand vous sauvegardez avec une extension point p y vous allez vous retrouver en python ici en bas à droite donc maintenant que j'ai un fichier python si je fais par exemple le début d'une commande comme la commande print vous voyez que j'ai des suggestions de ce que je peux taper donc par exemple la commande trim qui apparaît ici donc si je clique dessus ça va auto compléter mon code si je fais par exemple donc là on n'a pas encore vu mais si je fais quelque chose comme une liste et que j'essaie d'afficher ce que je peux faire et que cette liste là encore vous voyez que j'ai plein de suggestions de ce que je peux faire avec une liste donc ça c'est ce qu'on appelle l'auto comme clichy et ça va nous permettre d'avoir une idée de des commandes en fait qu'on peut utiliser à l'intérieur de notre code donc c'est vraiment très pratique on va avoir aussi en bas à gauche la version de python qu'on utilise donc là vous voyez que ses marques et python 3 points 7.2 donc c'est bien la version qu'on a installé si je voulais utiliser une autre version de python et bien il me suffit de cliquer ici en bas à gauche et de choisir parmi les versions de python qui sont installés sur mon disque dur donc moi vous voyez que j'en ai vraiment beaucoup mais vous vous en aurez probablement qu'une ou deux généralement une version de python 2 et une version de python 3 donc là vous pouvez si vous voulez changer par exemple deux versions de python si vous voulez passer de la 2 e à la 3 et bien vous pouvez cliquer en bas à gauche et choisir la version que vous allez utiliser pour exécuter vos scripts on a aussi en bas à gauche une indication en fait des erreurs et des avertissements donc les erreurs ici à gauche et les avertissements donc ou en ligne en anglais qui nous indique s'il ya des erreurs ou des avertissements dans notre code donc ça aussi c'est très pratique et je vous conseille de toujours garder un oeil là-dessus alors moyenne option dans visual field au code que je trouve assez pénible qui est activé par défaut qui fait que quand vous passez votre curseur sur quelque chose qui est reconnue donc comme une fonction ici vous allez avoir un affichage qui vous indiquent ce que fait la fonction ce que vous pouvez lui passé est une tout simplement un texte qui décrit ce que fait la fonction donc ça peut être pratique dans certains cas mais moi je trouve que c'est assez embêtant puisque à chaque fois que je déplace le curseur j'ai des peuples comme ça qu'ils apparaissent donc ce que je vais faire c'est le désactiver libre à vous de le laisser moi je le désactive pour la formation pour le désactiver vous allez aller dans les paramètres donc dans préférences vous avez les settings ici et je vais ouvrir ses settings un code donc pour faire ça on va aller tout en haut à droite on a des accolades ici sur lesquelles on va pouvoir cliquer qui vont nous ouvrir en fait ces paramètres mais sous forme d'un fichier janice hahn donc ça ça va nous permettre en fait d'éditer plein de paramètres de façon textuelle plutôt que de passer par l'interface donc par exemple vous retrouvez ici le la taille de la police de caractères donc que j'ai mis à 36 pour que vous y voyez quelque chose et 7 tailles de polices de caractères vouloir trouver ici sous forme de texte avec le nom de la propriété donc éditeurs fun size et je les mises à 36 et vous voyez que j'ai encore tous ces peuples qui m'énerve beaucoup donc moi je vais changer cette propriété éditeurs rover animals on va la mettre à false donc pour dire qu'on n'en veut pas donc je sauvegarde et si je reviens sur mon fichier test point p y cette fois ci quand je survole une fonction avec mon curseur vous voyez que je n'ai pas ce pop-up qui apparaît donc je trouve ça assez désagréable que ce soit mis par défaut puisque vous allez voir quand on reviendra sur vige au dessus de corte qui a moyen en fait de choisir quand est-ce qu'on l'actif donc de demander à vue jours le studio code d'afficher cette aide donc je préfère moi choisir quand je veux l'affiché plutôt que de la voir tout le temps par défaut qui qui apparaît devant moi à chaque fois je déplace mon curseur donc voilà pour cette option que vous pouvez si vous le souhaitez désactiver dans les paramètres pour exécuter du code python à l'intérieur de visual studio code il y a deux façons de faire la première c'est de faire un clic droit et de cliquer sur run séléction insight into you know donc c'est généralement en fait cette façon de faire que les débutants utilise puisque il y à un raccourci clavier qui est associé à cette méthode donc c'est assez pratique pour pouvoir lancer rapidement notre script sans avoir besoin de faire à chaque fois un clic droit si je lance ce script en cliquant sur cette ligne vous allez voir qu'il va nous ouvrir un interpréteur python à l'intérieur duquel il exécute la ligne sur laquelle on se trouve donc on a bien le résultat ici avec le hello world je vais cliquez sur la petite poubelle ici pour fermer ce terminal et je vais vous expliquer en fait pourquoi moi ce n'est pas ma méthode préférée puisque là on n'a qu'une ligne de code donc c'est assez simple ça va ça marche bien mais si on a plusieurs lignes de code donc là je copie quatre fois mon hello world et je vais sélectionner tous ces lignes de code pour les exécuter de cette façon donc je fais un clic droit et je re cliquer sur run séléction slash line in peyton terminaux et là vous allez voir qu'il va copier en fait exécuter chaque ligne et les unes à la suite des autres ce qui fait qu'on a un output assez fragmenté puisque chaque ligne de code va interrompre à chaque fois mon script donc c'est vraiment pas la façon de faire que je préfère ça marche il c'est pratique pour exécuter une ligne de code indépendamment du reste de notre script mais vraiment je trouve que c'est assez assez problématique de nous faire un autre poutre comme ça qui est à segmenter donc j'aurai cliquer sur la petite poubelle ici et à la place moi je vais utiliser l'autre option donc je refais un clic droit et jeudi peyton file in termine donc cette fois ci ça va ouvrir un terminal donc par un interpréteur python mais directement le terminal dans lequel il va exécuter notre script donc test point p y avec l'interpréteur python qu'on a spécifié un ici en bas à gauche on quand je clique sur python 3 points 7 points 2 vous voyez que c'est bien ce set interpréteur python qui se trouvent dans les users local been par hilton 3 qui est utilisé donc là si on change notre sélection si on sélectionne par exemple par hilton 2.7 et bien ça utiliserait c'est interpréteur python à la place pour exécuter notre script point p y donc la halle avantage c'est que eh bien vous voyez on à la haute couture du script directement en un bloc on à pas chaque ligne de code qui a affiché et qui brise un peu le flux de notre script donc moi c'est cette façon de faire que je vais utiliser pour la suite du court un truc sur lequel il faut faire très attention c'est de ne mélanger les deux vous avez remarqué qu'à chaque fois que j'utilisais en fait l'une ou l'autre des commandes jeu cliquer sur la petite poubelle ici pour fermer le terminal donc si je ne fais pas ça si par exemple je commence en sélectionnant tout mon script en faisant une sélection line inpai taux nominaux là je vais être à l'intérieur d'un interpréteur python donc vous voyez que la avec les trois symboles plus grand ou égale qu'on est à l'intérieur de l'interpréteur python et non pas directement dans le terminal et si je ne clique pas sur la petite poubelle ici si je fais juste par exemple fermé 7,7 ce panneau mais sans le qu'il est sans tuer le terminal et bien vous allez voir qu'on va avoir un problème puisque je vais refaire un clic droit et cette fois ci je vais sélectionner l'autre option brad peyton file in time in all et là en fait ce qu'il va faire c'est qu'il va essayer d'exécuter cette commande donc lancé notre script pour un pays y avec python mais directement à l'intérieur de ce même interpréteur python à l'intérieur duquel on se trouvait donc là logiquement pitt on nous dit qu'il y ait une erreur de syntaxe puisque ça c'est une commande que l'on utilise à l'intérieur d'un terminal et non pas à l'intérieur d'un interpréteur python donc ce qu'il faut faire si vous voulez vraiment passer de l'un à l'autre c'est soit de sortir à la main de synthés interpréteur python donc on peut faire par exemple exit suivi des parenthèses et appuyez sur entrée et là vous voyez qu'on retourne au niveau du terminal sinon si vous voulez aller plus vite vous pouvez directement cliquer sur la petite poubelle ici et ça va avoir comme effet de vraiment tuer le terminal comme ça la prochaine fois qu'on refait un run peyton manning terminal ça va nous ouvrir un nouveau terminal en fait et on n'aura pas ce problème donc ça c'est une erreur que je vois très souvent et les gens comprennent pas forcément pourquoi ils ont une erreur de syntaxe et bien c'est vraiment à cause en fait de ce mélange entre les deux commandes si jamais vous passer de l'une à l'autre dans les versions les plus récentes de visual studio code vous pouvez également directement lancé votre script python en cliquantsur la flèche verte ici en haut à droite qui va avoir le même résultat que ce qu'on faisait avec le clic droit en sélectionnant run bike and filed in terminal donc si vous cliquez sur la flèche automatiquement ça va lancer votre script et ça va ouvrir le terminal et il vous suffit de cliquer sur cette flèche pour relancer le script donc c'est un moyen plus rapide dans les dernière version de visual studio code de lancer directement notre script plutôt que de passer par le menu du clic droit si jamais quand vous faites un clic droit dans visual studio co2 vous n'avez pas cette option pour lancer votre script dans un terminal c'est très probablement parce que vous n'avez pas sauvegarder votre script python sur le disque puisque ce que fait en fait cette commande c'est qu'elle va exécuter votre fichier python avec l'interpréteur python donc si votre fichier n'est pas sauvegardé il ne peut pas exécuter ce fichier donc ce que je vais faire c'est que je vais aller ici dans le menu dans file cliquer sur save et sauvegarder mon fichier quelque part par exemple dans les documents donc je vais l'appeler tout simplement test et je n'oublie pas de mettre l'extension point.p y pour m'assurer de bien sauvegardez le fichier au format python donc je clique sur save et maintenant que mon fichier est sauvegardée sur le disque je peux faire un clic droit et cliquez donc sur run bike and filed in termineront et vous voyez ici que c'est bien mon fichier test pour un pays y que je viens de sauvegarder dans mes documents qui est exécuté par bijoux au studio code l'autre raison pour laquelle vous pourriez ne pas avoir cette option c'est si vous n'avez pas en fait installer l'extension qu'on a vu dans la partie précédente donc pour s'assurer qu'elle est bien installé moi je vais aller dans code ici dans préférences donc sur windows ce serait directement dans les préférences et cliquez sur extension pour afficher les extensions qui sont installés et là j'ai bien python qui est installé on le voit ici j'ai des options pour le désinstaller ou pour le désactiver donc ça veut dire qu'il est bien installé ici grâce à cette extension que je vais pouvoir et bien exécuté mon fichier directement depuis visual studio code dans le terminal donc voilà comment exécuter un script python directement depuis visual studio code et c'est cette façon de faire qu'on va utiliser tout au long de la formation si vous voulez exécuté ce même script directement depuis un terminal sans passer par visual studio code vous pouvez bien sûr lancer un terminal naviguer là où se trouve votre script donc là je fais un cd sur des stops pour me rendre sur mon des stocks où se trouve mon script et je vais pouvoir faire python 3 et mon script donc python 3 tests pour un pays y est là vous voyez que ça m'affiche le résultat de mon script donc python 3 en fait c'est un alias et si je veux voir vers quoi ils pointent je peux faire which python 3 et savament indiqué en fait le chemin complet vers la version de python 3 qui va être utilisé pour lancer ce script donc vous voyez que ce n'est pas exactement la même que celle qu'on avait dans visual studio code dans visual studio code on avait user local been peyton 3 donc on peut utiliser directement le chemin complet si on veut donc cela cheville the clash locaux slash been slash peyton 3 donc on va utiliser cette version est en fête est point p y pour exécuter mon script test point p y donc voilà comment lancer un script directement depuis le terminal il n'y a pas vraiment de différence entre les deux puisque quand on fait un clic droit et qu'on dit à visual studio cote qu'on veut lancer le script dans le terminal en fait c'est exactement la même chose que ça fait vous voyez que ça utilise notre version de python 3 ça mais le chemin complet vers notre script et vous voyez ici que ses marques et terminale donc là on est vraiment à l'intérieur d'un terminal on pourrait même exécuté notre script directement avec la commande donc cédé pour aller sur le destop et refaire par hilton 3 tests grimper y exactement de la même façon que je viens de le faire dans un terminal donc c'est à vous de voir ce que vous préférez c'est qu'il ya des gens qui préfèrent avoir les deux séparés a qui préfèrent avoir d'un côté leur terminal d'un côté et leur religion le studio code mais sachez que en fait c'est exactement la même chose ici le terminal que vous avez à l'intérieur de visual studio code c'est le même que celui qu'on pourrait ouvrir comme ceci donc voilà une autre façon de faire avec un terminal qui cette fois-ci et externes à visual studio code mais qui au final produit exactement le même résultat sur windows pour exécuter un script python directement depuis le terminal vous pouvez le faire depuis invite de commandes donc l'invite de commandes même si elle ne dispose pas des mêmes commandes que celles qu'on retrouve sur mac ou linux elle vous permet quand même de lancer un script python donc j'ai un script python qui contient un simple hello world qui est dans mes documents si ce script mène ici si je fais un clic droit et dit oui drôle et que je louvre par exemple avec la version 3.6 vous allez voir que ce fichier contient uniquement un print hello world donc si vous double cliquez ici sur le fichier sur windows vous allez avoir une petite fenêtre qui apparaît très rapidement et qui se ferme tout de suite après donc c'est normal c'est parce que quand on lance un fichier python il va ouvrir en fait cette invite de commande mais il va la refermer tout de suite donc on n'a même pas le temps de voir ce qui se passe de voir si notre script fonctionne ou des erreurs si on avait des erreurs alors on pourrait modifier directement notre script pour faire une pause en fait à la fin pour dire qu'on ne veut pas que le script se termine et pour suspendre donc la fenêtre pour pouvoir voir ce qui a été exécuté mais ce n'est pas une bonne façon de faire on n'a pas envie à chaque fois 2 devoir rajouter des lignes de code pour suspendre l'exécution de notre script ce qu'on peut faire à la place c'est donc ouvrir une invite de commande et on peut glisser notre fichier python directement dans la vie tu de commandes donc vous avez le fichier mind grimper y ici il se peut que ça marche tout de suite où il se peut que ça ne fonctionne pas donc je vais essayer j'appuie sur entrée et là vous voyez que dans mon cas ça fonctionne parce que windows c'est que ce fichier doit être exécutée avec python vous voyez ici ses marques et peyton file et si je fais un clic droit et que je vais dans propriété vous voyez ici que dans s'ouvre avec jets python qui est sélectionné donc juste en mettant le chemin complet vers mon fichier j'ai bien le script qui s'exécute mais si jamais en revenant dans propriété ici je mettais autre chose donc je ne mettais pas le launcher de python on pourrait donc avoir ce script qui ne s'exécute pas correctement ce qu'on peut faire à la place c'est utiliser les commandes que l'on avait vu dans les parties précédentes donc par exemple la commande python ou le pai launcher qui nous permettait de spécifier la commande qu'on voulait utiliser donc moi je vais utiliser le pai launcher dingue pays y espaces et je vais m tiré 3.6 je remets un espace après et je vais encore une fois glisser le fichier dans l'invité de commande pour mettre le chemin complet vers mon fichier ip y j'appuie sur entrée et là vous voyez qu'on a bien notre fichier qui est exécuté et si on voulait l'exécuter avec la 3.9 eh bien il suffirait de faire payer y tirer 3.9 et de la même façon de glisser mon fichier comme ceci pour exécuter mon script donc ça fonctionne parfaitement avec l'invité de commande puisque lé invite de commandes nous permet d'exécuter des scripts python c'est juste que si on utilise des commandes bâche bien là forcément ça ne marche pas et de la même façon je peux utiliser guide bâche exactement comme invite de commande c'est à dire que j'ouvre guide bâches et à l'intérieur de guides beh je peux utiliser mon pays venture avec la version que je spécifie donc p y espace tirer 3.6 je glisse mon fichier et on appuie sur entrée pour valider et on a de la même façon notre script qui est exécuté un petit raccourci pratique c'est la flèche du haut la flèche du haut qui vous permet de naviguer dans l'historique de vos commandes donc si j'appuie sur la flèche du bas ça va revenir à une ligne vide et si j'appuie sur la flèche du haut je vais revenir dans l'historique de mes commandes et vous voyez que c'est historique il est en mémoire donc là on retrouve une commande que j'ai utilisé auparavant dans d'autres sessions de guides bâches et j ai encore accès et donc si je veux revenir aux commandes je peux naviguer avec la flèche du haut et la flèche du bas jusqu'à revenir à cette ligne ici qui me permettait d'exécuter mon script donc ça c'est une autre façon voilà de lancer votre script directement depuis un terminal sans même passer par un éditeur de texte comme visual studio code ou paille charm et on peut comme ça avec la flèche du haut très rapidement exécuté notre script on pourra avoir le fichier ouvert d'un côté on le modifie on sauvegarde on revient d'un guide bâches ont l'appui sur la flèche du haut on appuyez sur entrée pour valider etc etc donc ça c'est une autre façon de faire et en passant la flèche du haut ça fonctionne également sur l'invite de commandes donc là vous voyez que de la même façon avec la flèche du haut et la flèche du bas je peux revenir dans l'historique de mes commandes pour exécuter mon script donc voilà sur windows que ce soit avec l'invité de commande ou avec guide bâches ou même avec come under donc n'importe quel terminal comment directement exécuté votre script que ce soit avec le chemin complet vers l'exécutable de python ou alors sans le chemin de l'exécutable mais dans ce cas ci il faut faire bien attention de vérifier que vous avez bien par défaut python qui est utilisé donc ça c'est ce que je vous avais montré dans les propriétés ici est le mieux ça reste de toute façon de passer par le pai launcher qui nous permet de spécifier la version de pétanque on veut utiliser pour lancer notre script donc vous voyez que vous avez beaucoup de choix je vous le montre plus pour votre culture générale et parce que c'est quand même intéressant dans certains cas de figure de savoir comment on peut lancer un script python en dehors d'un éditeur de texte pour le reste de la formation cependant on utilisera directement les outils qui sont intégrés à l'intérieur de visual studio code pour exécuter no script python par défaut dans visual studio code celle invite de commande qui va être utilisé pour lancer vos scripts python donc là j'ai un script très simple avec juste un print et si je clique sur la flèche en haut à droite pour exécuter ce script vous allez voir que j'ai une fenêtre qui s'ouvre donc la fenêtre du terminal et on voit ici le chemin complet vers l'exécutable deux pythons qui me sert à exécuter le fichier même point p y qui est donc ce fichier que j'ai ouvert actuellement donc ça fonctionne parfaitement on a bien le vélo world qui s'affiche et l'exécutable de python qui est utilisée c'est bien l'exécutable que l'on a sélectionné tout en bas à gauche ici on pourrait le changer par exemple pour utiliser à la place l'exécutable de python 3.9 qui est également installée sur ma machine donc là si je sélectionne cet exécutable et que je re cliquer sur la flèche vous voyez que cette fois ci on utilise bien python 3.9 à la place depuis ton 3.6 donc ça fonctionne c'est bien on a le terminal qui s'ouvre automatiquement mais là on est dans l'ain vite de commandes donc la fameuse invite de commandes qui ne contient pas les mêmes commandes bâches et michel que vous retrouvez sur mac et linux donc le fameux par exemple pwd ou cds qui ne fonctionnent pas de la même façon donc là à l'intérieur de visual studio code par défaut on a cette même invite de commandes donc si je fais pwd ça ne fonctionne pas heureusement on peut intégrer guide bâche directement à l'intérieur de visual studio côte donc pour ça on veut utiliser ce qu'on appelle le commande de palettes qu'on peut afficher avec le raccourci contrôle shift paix ou que vous retrouvez également dans le menu view ici en cliquant sur commandes palettes et on voit donc le raccourci ici donc je clique là dessus et je vais rentrer la commande donc que vous voyez ici puisque moi je viens de l'utiliser avant d'enregistrer cette vidéo donc dans mon cas elle apparaît ici parce que je viens de l'utiliser mais vous elle ne va pas apparaître tout en haut donc pour la trouvez vous tapez select default shell comme ceci il faut bien faire attention de ne pas enlever le symbole ici puisque c'est ce symbole qui va indiquer à vivre au dessus de code qu'on veut chercher dans des commandes donc si j'enlève tout ça ici et que sans le symbole plus grand que je fais select là vous voyez qu'il n'y a rien qui s'affiche donc il faut bien laisser ce symbole plus grand que et ensuite tapé select default shell et là vous voyez que on a cette commande qui apparaît donc cette commande elle va me permettre de choisir le shell que je veux utiliser quand je clic tout en haut à droite sur la flèche pour lancer mon script donc je clique sur cette commande et là on voit tout l'échelle qui sont disponibles donc on a le commandent plante qui est l'invité de commande on n'a pas au shell qui est l'autre shell qui est disponible sur windows dans mon cas j'ai également installé le windows phone system for linux qui dispose d'un terminal bâche tout comme guide bâche donc je pourrais choisir ce windows sauf system for linux vous ne l'avez pas donc si vous n'avez pas installé ce sous systèmes linux mais vous devriez voir ici guide bâche donkey et l'exécutable de guides bâche que l'on a installé dans les parties précédentes donc je peux cliquer ici sur guide bâches et vous allez voir qu'automatiquement maintenant quand je clique sur la flèche en haut à droite j'ai bien guide bâche qui est utilisé pour lancer mon script donc on a exactement la même ligne ici avec l'exécutable deux pythons qui correspond bien à l'exécutable que j'ai sélectionné tout en bas à gauche ici et mon script mind point p y qui est exécutée on à hello world qui s'affiche sauf que cette fois ci je suis donc à l'intérieur de guides bâches et si je vais utiliser des commandes comme pwd elles sont bien entendu disponibles donc voilà une manipulation à faire en plus dans windows pour changer le terminal par défaut et qui vous permet d'avoir guide bâche directement à l'intérieur de visual studio code ça y est enfin on rentre dans le vif du sujet dans la section qui suis je vais te montrer les trois types natif de base que sont les chaînes de caractères les nombres et les bouley ce sont trois types de données que l'on utilise le plus souvent peu importe le langage de programmation et ils sont à la base de presque toute l'informatique pour l'instant ça va probablement te paraître un peu abstrait mais on aura bien entendu l'occasion dans la suite de la formation d'utiliser ces trois types natif pour résoudre des problèmes très concrets ce qu'on appelle les types natif ce sont des types de données pré existants qui vous permette en programmation de représenter tout ce dont vous avez besoin il existe ainsi plusieurs types natif que nous allons voir dans les prochaines parties notamment les chaînes de caractères qui sont en fait tout simplement du texte les nombres et les boues les uns qui vont nous permettre de travailler par la suite avec des conditions il existe d'autres types natifs qui peuvent être construits à partir de ces trois types de base ce sont les types séquentielle que sont les listes et les tubes qui nous permettent donc de représenter une séquence de différents éléments les types d'ensemble comme les 7 et frozen 7 qui permettent de réaliser des opérations d'union de différences ou encore d'intersection et les types de correspondance avec les dictionnaires qui sont un autre moyen d'organiser des données avec un système de clé et de valeur dans les prochaines parties on va s'intéresser au type natif de base que sont les chaînes de caractères les nombres et les bouley les autres types natif que je viens d'énoncer sont un peu plus complexes et dispose de formation qui leur sont entièrement dédiés et ce ne sont finalement que des façons d'organiser et d'agencés dans d'autres structures ces trois types natif de base on va voir dans les prochaines parties une chaîne de caractères c'est ce qu'on appelle communément du texte elle peut contenir autant de caractère que nécessaire on pourrait donc sans problème stockées par exemple un livre entier dans une chaîne de caractères il est également possible de créer des chaînes de caractères vide sans que cela ne pose de problème à piton une chaîne de caractère elle est délimité par des guillemets ces guillemets peuvent être simples ou doubles le game est simple c'est l'équivalent de ce qu'on appelle en français une apostrophe cette chaîne de caractères qui commence et se termine par des guillemets double et donc également valides personnellement je vous conseille d'utiliser principalement des guillemets double pourquoi et bien tout simplement parce qu'avec des guillemets simple c'est assez embêtant si vous souhaitez mettre des apostrophes dans votre texte prenons l'exemple de cette chaîne de caractères délimité par des guillemets double l'apostrophent du môme appel ne pose ici pas de problème car notre chaîne de caractères est défini avec des guillemets double si par contre je remplace les guillemets double par des guillemets simple on se retrouve avec un problème qui est indiquée par la coloration syntaxique l'apostrophent du mot m'appelle met fin à la chaîne de caractères qui est initié avec le premier guimet simple si vous essayez de faire ceci dans un interpréteur python vous aurez donc une erreur de syntaxe une des solutions à ce problème c'est d'utiliser un anti slash lentilles slash permet en effet de faire ce qu'on appelle un échappement c'est-à-dire signifié à un caractère qu'il ne doit pas être utilisé pour sa fonction première dans ce cas-ci délimiter une chaîne de caractères mais qu'il doit tout simplement être utilisé comme un caractère textuel si vous essayez ce code dans un interpréteur python vous n'aurez cette fois plus d'erreurs et vous voyez que l'anti slash ne se retrouve pas dans la chaîne de caractères affichés on a donc bien l'apostrophent qui se retrouvent correctement au milieu de notre chaîne de caractères mais la façon la plus simple de procéder reste donc d'utiliser des guillemets double vous pourrez ainsi insérer des apostrophes dans votre chaîne de caractère sans vous soucier de devoir les échappés avec un anti slash le dernier type de chaîne de caractère que l'on peut créer c'est une chaîne de caractère qu'on appelle multi lignes pour cela il suffit d'utiliser trois guillemets au début et à la fin de la chaîne de caractères en question à noter que là encore vous pouvez très bien utiliser des guillemets simple à la place des guillemets double et pour une chaîne de caractère multi lignes les apostrophes à l'intérieur de votre texte ne poseront pas de problèmes dernier point important à aborder certains caractères sont interprétés de façon particulière lorsqu'elles sont précédées d'un anti flash par exemple ici anti slash n sera interprétée comme un retour à la ligne et si vous souhaitez faire un coeur vous pouvez utiliser anti cela chu suivi du numéro correspondant aux symboles dans la base de données des caractères unicode pour éviter que ces caractères soit interprétée par pitons on peut utiliser ce qu'on appelle les strings que l'on pourrait traduire en français par chaîne de caractère brut ça peut être très pratique par exemple quand vous travaillez avec des chemins de dossiers notamment sur windows dans le cas du chemin de dossiers suivants on a un an this lâcheté et un anti slash haine qui par défaut vont être interprétés comme une tabulation et un retour à la ligne pour éviter qu'ils soient interprétés il suffit de rajouter la lettre r devant les guillemets de la chaîne de caractères ainsi la chaîne de caractères sera interprétée de façon brute elantis lâcheté elantis la chaîne seront insérés tel quel pour finir voici donc une liste non exhaustive des caractères qui sont interprétés de façon spéciale par pitons lorsqu'ils sont précédées d'un anti slash il faudra donc porter attention aux chaînes de caractères qui peuvent contenir six suites de caractères et le cas échéant envisagez donc d'utiliser une chaîne de caractères brut en la précédent de la lettre r avec python ont fait la distinction entre deux types de nombre que l'on va voir dans cette partie les nombres entiers et les nombres décimaux les nombres entiers c'est tout simplement des nombres qui n'ont pas de décimales après la virgule ça peut être bien entendu des nombreux positif comme des nombres négatifs vous pouvez également représentée grâce au nombre entier d nombre à ces immenses la seule limite vraiment c'est la mémoire de votre ordinateur depuis la version 3.6 de python il est également possible de rendre plus facile la lecture des nombres entiers avec la possibilité d'insérer des tirs et du bas dans un nombre sans que cela ne cause d'erreurs vous pouvez placer ses tirs et du bas où bon vous semble mais généralement on s'en sert pour séparer les milliers et ainsi rendre plus rapide l'identification d'un nombre le deuxième type de nombre qu'on utilise ce sont les nombres décimaux que l'on appelle également nombreux flottant ce sont tout simplement des nombres qui contiennent des décimales après la virgule il est très important de noter que pour définir un nombre décimal avec python on n'utilise pas la virgule mais le point si vous utilisez une virgule à la place du point python vous retournera une erreur là encore les nombres peuvent être positifs comme négatifs et même si le nombre après la virgule et zéro comme dans le dernier nombre ici 10.0 et bien ce nombre sera tout de même considéré par pitons comme un nombre décimal et ne sera donc pas converti en nombre entier donc dès que vous avez un point à l'intérieur d'un nombre même si les décimales après le point son zéro et bien ce nombre sera considéré comme un nombre décimal et non plus comme un nombre entier un boulet 1 c'est un objet qui ne peut prendre que deux valeurs tout est folle ce qui signifie vrai et faux les boues les uns sont des types natifs qui sont une sous classe des nombres entiers tout est l'équivalent de 1 et foals l'équivalent du nombre 0 vous pouvez vérifier cette affirmation avec la fonction il se place on voit bien avec cette fonction que le type natif boom qui correspond au bout les uns est une sous classe du type int qui représente les nombres entiers on pourrait ainsi sans problème additionnez débouler un avec dénombre pour l'instant cela ne vous semble peut être pas très utile mais je vous assure que dans certains cas bien précis ça peut être très intéressant il faut savoir également que tous les objets peuvent être vrai ou faux en anglais on appelle ça d'être choisie ou folle si pour vérifier si un objet est vrai ou faux on peut utiliser la fonction bull vous pouvez lui passer n'importe quel objet comme ici la chaîne de caractères bonjour et la fonction bull vous retournera choo ou foals dans ce cas ci la fonction bull retournera choo car la chaîne de caractères contient au moins un caractère il faut savoir que tous les objets ont une valeur qui par défaut est considéré comme falls et toutes les autres valeurs qui seront considérés comme tout par exemple pour les chaînes de caractères seule une chaîne de caractères vide est considérée comme fausse dès que vous avez au moins un caractère l'évaluation de la chaîne de caractère avec la fonction bull sera vrai pour les nombres que ce soit les nombres entiers ou décimaux c'est la valeur de zéro qui est considérée comme fausse toutes les autres valeurs que ce soit un nombre négatif ou positif seront considérés comme vrai pour les types séquentiel comme les listes où les dictionnaires ils seront considérés comme faux cils sont vides dès qu'ils contiennent au moins un élément ils seront considérés comme vrai les boules et 1 quand on voit ça tout seul ça ne semble pas avoir beaucoup d'importance c'est vraiment lorsque vous allez commencer à utiliser des conditions et à créer des expressions plus complexes qui pourront être évaluées comme vraie ou fausse que vous verrez leur vraie utilité avec python il faut savoir que tous les types natif de base peuvent être créés directement à partir de leurs classes correspondantes on a donc la classe str pour les chaînes de caractères int pour les nombres entiers float pour les nombres décimaux et boules pour les boules et ce sont des termes que vous retrouverez très souvent en anglais dans la documentation officielle de python le nom des classes est cependant raccourci les mots entiers en anglais son string pour chaînes de caractères integer pour les nombres entiers float pour les nombres décimaux et booléens pour les boules et 1 on pourrait ainsi créer tous les objets correspondant au type natif de base avec ses classes cependant ce n'est pas très utile car python est suffisamment intelligent pour déterminer le type des objets grâce par exemple aux guillemets pour les chaînes de caractères ou au point de la décimale pour les nombres décimaux quand on crée ces objets on peut donc directement les écrire comme ceci vous verrez également qu'on appelle ses classes des fonctions de conversion bien qu'elle puisse ressembler à des fonctions ce sont dans les faits des classes mais là où elles ont un vrai intérêt c'est qu'on peut les utiliser pour convertir des objets d'un type à un autre par exemple vous pouvez convertir un nombre entier en chaîne de caractères en utilisant la class string le résultat de l'utilisation de la class string avec le nombre entier 5 nous donnera la chaîne de caractères 5 on a donc effectué une conversion d'un nombre entier en chaîne de caractères si on veut être très précis en fait qu'on fait concrètement ce n'est pas tant une conversion c'est juste qu'on crée un nouvel objet de type chaînes de caractères à partir du nombre entier 5 mais dans les faits c'est un peu comme si on convertit c'est un objet d'un type à un autre c'est pour ça que vous retrouverez souvent ses classes sous le nom de fonction de conversion al'inverse on peut utiliser la classe int pour convertir une chaîne de caractères qui contient un nombre ou si vous préférez pour créer un nouvel objet de type nombre entier à partir de la chaîne de caractères 2 il faut cependant faire attention car on peut parfois avoir des erreurs en essayant de créer des objets à partir de données que python 1 yves pas à convertir si vous essayez par exemple de convertir la chaîne de caractères bonjour en nombre avec la classe int vous obtiendrez une erreur car pitt on ne sait pas comment convertir ce mot en nombre entier et c'est assez logique car il est difficile d'exprimer le mot bonjour sous la forme d'un nombre dans certaines des parties qui vont suivre vous remarquerez que je vais utiliser un interpréteur python interactif quelque peu spécial cette interpréteur python il s'appelle hype hightone et son gros intérêt c'est qu'il permet d'avoir la coloration syntaxique et ainsi vous pourrez mieux voir ce que je fais à l'écran donc si je les exécute vous allez voir que on a ici au début de la ligne indiqué in et le numéro de la ligne et donc si j'écris quelque chose ici vous voyez qu'on a bien la coloration syntaxique qui apparaît qui va vous permettre de mieux comprendre ce que j'écris à l'écran et si j'appuie sur entrée on a ici l'affichage donc de ce printemps et on va avoir une autre cellule in avec le numéro de la ligne ici qui est affiché donc ne vous inquiétez pas si vous voyez cet affichage au début de chaque ligne dans certaines vidéos ce n'est pas du code python c'est vraiment juste un affichage qui m'indique le numéro de la ligne de votre côté vous pouvez bien entendu utiliser un interpréteur pitt en interactif donc par exemple en utilisant la commande python 3 points 6 sur mac os ou si vous êtes sur windows en mettant la commande python ou tout simplement le pai launcher avec pays y tirait et le numéro de la version que vous souhaitez utiliser donc trois points 6,3 points 7 8 ou 9 en fonction de la version que vous avez vous pouvez bien entendu également utiliser visual studio code pour exécuter votre code donc voilà pour la petite précision ne vous en faites pas donc si vous voyez ce texte affiché c'est vraiment juste de l'affichage et ce n'est pas quelque chose que vous devez prendre en compte dans votre code python les variables c'est un des concepts les plus importants de la programmation impossible d'y échapper dans les prochaines parties on va voir ensemble à quoi sert une variable pourquoi les utiliser et comment les créer il ya pas mal de subtilité qui peuvent se jouer des tours avec les variables même si python nous rend la tâche plus facile qu'avec d'autres langages comme le sait en gérant beaucoup d'aspects à notre place si tout de suite je te parle d'affectation de nom d'identifiants de cing bolton de garbage collector et de small integer ka-shing tu te dis probablement que je suis devenu fou alors qu'après cette section tous ces mots n'auront plus de secret pour toi et à la fin de ce chapitre on va également par les conventions de nommage car écrire du code c'est bien mais écrire du code lisible et compréhensible de tous c'est encore mieux avant d'aller plus loin et de voir en détail le fonctionnement des variables il est déjà important de savoir à quoi sert une variable une variable c'est en fait tout simplement un nom qui est associé un objet avec python on peut très bien créer des objets comme ici dans un interpréteur python interactif je pourrais créer une chaîne de caractères donc dire bonjour bienvenue sur mon site web le problème de sa sais que si je veux réafficher cette phrase plus tard dans mon script je vais être obligé de recréer l'objet donc de retaper en entier bonjour bienvenue sur mon site web donc ce n'est pas très pratique et pour ça on va pouvoir associer cette chaîne de caractères à un nom est donc ainsi créé une variable donc je pourrais créer une variable qui s'appelle bonjour et dire qu'elle est égal à cette chaîne de caractères bonjour bienvenue sur mon site web je vais ainsi pouvoir utiliser la variable bonjour pour accéder à la chaîne de caractères qui correspond à cette variable bonjour ça marche avec n'importe quel type d'objet jeu pourrait par exemple également créé une variable qui va être associé à un nombre entier donc à égal 5b égale 10 et j'ai ainsi donc le nom à qui est associé aux nombres entiers 5 et le nom b qui est associé au nombre entier disent je peux ensuite bien entendu faire des opérations sur ces variables par exemple faire a + b et je vais me retrouver avec 15 donc python va substituer le nom de ces variables pour les valeurs qui leur correspondent donc là on avait fait à égal 5 et beghal disent donc on aura bien ici 5 plus dix qui est égal à 15 donc ça c'est vraiment le fonctionnement de base d'une variable c'est en fait tout simplement un nom qui va être associé à un objet et qui va nous permettre d'accéder plus facilement à cet objet via le nom de la variable un des gros avantages de python par rapport à d'autres langages de programmation c'est qu'il se charge pour nous de gérer beaucoup de choses en arrière plan et notamment concernant la gestion de la mémoire bien que l'on n'ait pas à gérer la mémoire nous mêmes il est cependant important de comprendre ce qu'il se passe quand on crée une variable comme ici en faisant nombre égal 5 une variable ce n'est en fait rien de plus qu'un nom associé à un objet quand on fait nombre égal cinq pythons crée donc un objet de type nombres entiers avec la valeur 5 est un nom qui s'appelle nombre dans ce cas ci et qui pointe vers cet objet ce nombre 5 existe donc dans la mémoire de notre ordinateur et on peut y accéder avec la variable nombre on pourrait très bien créer d'autres variables qui pointe vers le même objet par exemple en créant une variable nombre d'eux qui est égale à la variable nombre quand on fait nombreux de également membre on pourrait croire qu on crée un autre nombre entier avec lui aussi la valeur 5 et auquel on associerait le nom nombreux 2 en réalité quand on fait ça on ne crée pas de nouvel objet en mémoire ce qu'on fait c'est qu'on dit que nombre d'eux va pointer vers le même objet en mémoire que nombre ces deux noms différents pointe donc vers le même objet dans ce cas ci le nombre entier 5 on peut donc accéder à ce nombre 5 avec la variable nombre ainsi qu'avec la variable nombreux 2 mais dans les deux cas c'est le même objet qui nous est retournée si par contre on assigne nombreux 2 à un autre objet comme le nombre d'ici si on aura bien deux objets en mémoire 5 et 10 avec les variables respectives nombre est nombreuse qui pointent vers ces deux objets maintenant que se passe-t-il si je signe une nouvelle valeur à la variable nombre on va en fait créé un nouvel objet donc dans ce cas ci le nombre entier 1 et faire maintenant pointé la variable nombre vers ce nouvel objet en mémoire le nombre entier 5 n'est donc maintenant plus associé à aucune variable et python va tout simplement se débarrasser de cet objet cette opération elle est réalisée automatiquement par pitons avec ce qu'on appelle le garbage collector qu'on pourrait traduire en français par un ramasse-miettes c'est pour cette raison qu'on dit souvent que python est assez simple à utiliser on n'a en effet pas besoin de gérer nous mêmes la mémoire de notre programme python est capable de se rendre compte tout seul lorsqu'un objet n'est plus à ceux ci a un nom et il va donc supprimer cet objet pour libérer de la place dans la mémoire de notre ordinateur dans ce cas ci le nombre entier 5 va donc être supprimée de la mémoire de notre script python heureusement python nous fournit un moyen facile de vérifier quelle place en mémoire un objet occupent pour vérifier cette place en mémoire on peut utiliser la fonction idée on peut passer à cette fonction n'importe quel objet si on lui passe la variable nombre que l'on a créé précédemment vannes ou retourner un identifiant qui est tout simplement un nombre entier et qui correspond à la place en mémoire qu'occupe cet objet pour vous montrer le fonctionnement de cette fonction idée je suis dans un interpréteur python et je vais utiliser cette fonction idée sur le nombre 500 j'ai donc bien un nombre entier qui est retourné qui correspond à la place en mémoire de cet objet 500 que j'écris si je refais idée cinq cent une deuxième fois vous allez voir que le nombre qui met retourner n'est pas le même on a donc créé un autre objet 500 qui est différent du premier qu'on avait créé ici et on le voit bien avec l'espace en mémoire qui n'est pas le même si par contre maintenant je crée une variable en disant à égal 500 et que je crée ensuite une variable b qui est égale à la variable ah si j'utilise la fonction idée sur la variable à et ensuite sur la variable b on voit bien ici qu'on a le même nombre qui nous est retournée donc cela indique bien que cet objet 500 ici est le même que l'on y accède avec la variable à où la variable b donc la variable à est la variable b pointe vers le même objet 500 en mémoire et ça ça nous éprouvée par ce nombre ici qui indique la place en mémoire de l'objet 506 par contre maintenant j'associe b à un autre nombre donc que je fais b égalment il est que je refais idée de b là on voit que l'adresse en mémoire de bay n'est plus la même que celle de a donc on avait ce nombre ici pour la variable à et on a un autre nombre maintenant pour la variable b donc puisque maintenant b pointe vers le nombreux milles et le ne présentent donc plus vers le même objet que la variable à on a donc deux objets 500 et 1000 auxquelles on peut accéder avec la variable ea est la variable b et donc ce sont donc deux objets distincts avec deux noms distincts donc voilà pour la fonction idées qui nous permet de récupérer la place en mémoire d'un objet il existe plusieurs façons avec python d'affecter un objet à une variable dans cette partie on va avoir trois types d'affectation les affectations simple les affectations parallèle et les affectations multiples l'affectation simple nous permet de faire une assignation de type non égale objet on a d'un côté le nom de la variable et de l'autre côté l'objet que l'on veut lui assigner avec l'affectation simple on peut affecter un nom à un objet si on veut définir plusieurs variables il nous suffit donc de faire deux affectations simple aller suite on se retrouve donc ici avec deux variables qui ont comme nom a et b et comme valeur 5 et 8 cette opération peut être simplifié et ramener à une seule ligne grâce à l'affectation parallèle en séparant les noms de variables et les valeurs par une virgule on peut définir deux variables a et b qui ont avoir respectivement une valeur de 5 et 2 8 et tout ça sur une seule ligne l'autre gros avantage de l'affectation parallèle est en fait la raison pour laquelle elle est le plus souvent utilisé c'est pour inverser les valeurs contenues à l'intérieur de variables ici on inverse les valeurs de à et 2b tout simplement avec l'affectation parallèle à virgule b et galbées virgule à il n'y a pas vraiment de limite au nombre de variables qu'on peut définir avec une affectation parallèle la seule limite je vous dirais c'est celle de la lisibilité dans un cas comme celui ci où l'on définit six variables d'un coup il devient difficile de voir l'association entre les noms des variables et leur valeur on préférera donc dans un cas comme celui-ci faire plusieurs affectations simple à la suite une des règles du langage python c'est de toujours privilégier la simplicité à la complexité donc l'affectation parallèle est importante à connaître et peut être très pratique dans certains cas mais il faut savoir l'utiliser avec modération on vient de le voir l'affectation parallèle nous permet de rapidement déclaré plusieurs variables mais dans un cas ou trois variables ont la même valeur vous avouerez que c'est un peu répétitif dans des cas comme celui ci on peut utiliser ce qu'on appelle l'affectation multiples pour déclarer trois variables avec la même valeur on peut utiliser la syntaxe à égal b égal c'est égal cinq ans faisant ainsi les trois variables auront la même valeur et seront déclarés sur la même ligne attention cependant vous devez toujours terminer votre affectation multiples par la valeur que vous voulez a signé aux variables la syntaxe à égal b égale 5 égal c'est par exemple n'est pas valide et là encore pour clore ce chapitre sur les différentes méthodes d'affectation eh bien il faut toujours faire preuve de bon sens pour que votre code reste le plus clair et lisible possible si vous avez fait quelques tests de votre côté avec la fonction idée vous avez peut-être remarqué quelques comportements bizarres il y a en fait plusieurs processus d'optimisation qui sont réalisés par pitons afin d'avoir des choses qui sont un peu plus rapides à exécuter avec certains nombres et certains objets on a ce qu'on appelle deux concepts lessing l'automne et le small integer ka shing qui vont entrer en compte donc listings dans l'automne en fait c'est tout simplement un objet qui est unique on va voir ce concept par exemple avec le mono ou encore les boules et un choo et falls pour se rendre compte de ça je vais utiliser la fonction heidi et je vais l'utiliser donc sur le boulet un choo et si je la refais une deuxième fois vous allez voir qu'on a exactement le même identifiant en mémoire comparativement à 6 ont fait par exemple l'idée de 500 ou là en fait on va avoir deux identifiants différents donc là en fait on a créé deux objets 500 qui sont différents on a deux objets différents mémoires par contre avec cloud on a le même objet en mémoire donc tout c'est ce qu'on appelle un string bolton c'est à dire que en fait vous allez toujours avoir le même objet qui va vous être retourné si je fais par exemple c'est égal choo donc jassy le boulet un choo à une variable ça va être encore la même chose donc si je fais heidi de ces on va avoir cet identifiant mémoire qui est exactement le même que celui que l'on avait au début donc cet objet choo ici que l'on a assigné à la variable c'est c'est exactement le même que celui que l'on avait au début donc là encore on voit bien que cet objet est un signe bolton vous allez avoir un peu le même comportement avec les nombres entre -5 et 256 inclus vous avez vu qu'avec le nombre 500 ici on a deux objets différents donc à chaque fois que je fais idée de 500 on a un nouvel objet qui écrit un mémoire par contre si je fais idée de 5 et que je leur fais une deuxième fois là on voit qu'on a le même idée ici qui nous est retourné pour les deux nombres donc pourquoi est ce qu'avec 500 on a deux emplacements différents en mémoire et pas avec 5 et bien c'est vraiment pour des raisons d'optimisation quand vous lancez votre script python que vous ouvrez un interpréteur python et bien python va assigner directement des places en mémoire pour les nombres de -5 à 256 et va comme ça pouvoir y accéder à chaque fois qu'on va en avoir besoin là encore c'est la même chose si je fais une variable à qui est égal à 5 et que je refais idée de à on a là encore le même emplacement en mémoire pour cette variable a que pour le nombre 5 que l'on a affiché directement ici donc c'est vraiment le même objet nombres entiers 5 qui va nous être retourné à chaque fois ci par contre je vais en dehors de cette plage donc qui est comprise entre -5 et 256 là on va avoir des objets différents qui vont être créés à chaque fois par exemple si je fais idée de 400 donc on est en dehors de la plage de moins à 256 et bien là on voit qu'à chaque fois on a un objet différent qui est écrit on va retrouver le même comportement avec certaines chaînes de caractères donc généralement les chaînes de caractères qui sont inférieures à 20 caractères donc si par exemple je fais à égal bonjour comme ceux ci et b égale bon jour là on pourrait croire qu'on va avoir deux objets en mémoire mais si j'utilise idées pour afficher l'emplacement mémoire de ces deux variables on se rend compte qu'on a là encore le même objet qui nous est retournée si par contre je faisais des chaînes de caractères un peu plus longue au delà de 20 caractère généralement est bien là vous verriez que en fait on aurait deux objets complètement distincts en mémoire donc vous avez tous ses processus d'optimisation qui sont faits par python qui peuvent amener à des choses un peu surprenantes comme celle ci qui font qu'on a les mêmes objets qui nous sont retournés à chaque fois donc on a listings bolton qui sont donc en fait pas mal d'objets comme ça comme meneur uchuu falls on allait nombre entre -5 et 256 et on a les chaînes de caractères qui sont en dessous d'un certain nombre de caractères qui généralement également vont retourner le même objet pour des questions d'optimisation également quand on crée des variables avec python il y à quelques règles qu'il faut absolument suivre si vous souhaitez éviter les erreurs de syntaxe et des conventions de nommage qui elles ne sont pas obligatoires mais que je vous conseille grandement de suivre si vous souhaitez que votre code reste claire et lisible de tous on va commencer avec les quelques règles de nommage qu'il faut absolument respecter lorsque vous créez une variable tout d'abord un nom de variables ne peut pas commencer par un chiffre vous pouvez mettre des chiffres à l'intérieur ou à la fin du nom de la variable mais pas au début un nom de variables ne peut également pas contenir des espaces un nom de variables ne peut contenir que des caractères alphanumériques donc toutes les lettres majuscules ou minuscules de a à z et les nombres de 0 à 9 ainsi que le tir est du bas que l'on utilise la plupart du temps pour indiquer un espace entre deux mots pour finir certains mots sont réservées par pitons ce sont ce qu'on appelle des quilts il s'agit par exemple de fonctions de base comme la fonction print de noms comme les boules et 1 to et foals ou encore d'instruction comme l'instruction break pour illustrer tout ça je vais vous montrer quelques exemples de nom de variables qui ne sont pas valides le premier nom n'est pas valide car il commence par un chiffre le deuxième nom contient un tiret qui n'est pas un caractère accepté dans un autre vin diable le tir est du bas lui est valide mais pas le tirer du milieu le troisième nom contient un caractère invalides le dièse et un espace le dernier nom quant à lui utilise un mot réservé par pitons dans ce cas ci le boulet un trou si on voulait renommer ses variables afin qu'elles ne produisent pas d'erreur on pourrait procéder comme ceux ci on met le nombre 75 à la fin du nom on remplace le tiret du milieu par un tiret du bas on enlève le dièse et l'espace et on enlève la majuscule au mot réservé choo il est bien important de noter que le nom des variables et sensible à la casse ainsi la variable prénom tout en minuscules et prénom avec une majuscule au début seront considérés comme deux variables distinctes maintenant que l'on a vu les règles à suivre pour ne pas obtenir d'erreurs on va cette fois-ci s'intéresser aux conventions de nommage ces conventions si vous ne les respectez pas cela ne fera pas planter votre script cependant ce sont des conventions qui sont très suivies dans la communauté des développeurs python et je vous conseille donc d'adopter les bons réflexes dès le début pour nommer des variables on préfère donc utiliser uniquement des lettres minuscules et c'est paris chaque mot par un tiret du bas on l'a donc ici un résumé de tout ce qu'on vient de voir dans la première colonne les noms de variables ne sont pas valides et produiront des erreurs dans la deuxième colonne les noms sont valides mais ne respecte pas les conventions de nommage deux pythons et dans la dernière colonne les noms de variables respecte à la fois les règles et les conventions de nommage du langage python dans les prochaines parties je vais vous montrer comment changer le type d'une variable mais avant de vous montrer comment faire je vais d'abord vous expliquer dans quelles situations on a besoin de faire ce changement il y a deux raisons principales pour lesquelles on va avoir besoin de changer le type d'une variable la première raison c'est pour utiliser les opérateurs mathématiques donc les opérateurs mathématiques on y reviendra plus tard c'est par exemple l'addition la soustraction la multiplication et c'est la deuxième raison ça va être afin de pouvoir comparer des variables les unes avec les autres ce qu'il faut bien comprendre c'est que 50 est différent de 50 alors dit comme ça si vous avez juste l'audio vous n'allez pas comprendre mon propos mais si vous regardez bien la phrase ici vous remarqué en effet que l'on n'est pas en présence du même 50 des deux côtés on a d'un côté un nombre entier de l'autre côté une chaîne de caractère que l'on reconnaît grâce aux guillemets qui l'entourent et ça ça va poser un gros problème à piton si on essaye d'additionner ensemble de valeurs qui ne sont pas du même type on va avoir une erreur taipei erreur si vous parlez un peu anglais vous comprendrez qu ici python nous indique que l'opérateur mathématiques de l'addition n'arrive pas à gérer les types int et string donc qu'ils signifient respectivement nombres entiers et chaînes de caractères pour additionner deux variables ensemble il faut absolument que le type des deux variables soit le même ce qu'il faut savoir c'est que python est ce qu'on appelle un langage dynamique et fortement typé tout d'abord on va s'intéresser aux thermes dynamique un langage dynamique ça signifie qu'on n'a pas besoin de dire à piton quel est le type de la variable concret et qu'on peut changer le type d'une variable à tout moment d'où le terme de dynamique donc dans le cas d'un langage dynamique comme python vous voyez qu'on peut tout simplement définir une variable comme on l'a vu dans les parties précédentes avec un nom de variables et une valeur on peut par la suite sans problème changer la valeur associée à cette variable vous voyez qu à aucun moment ici on ne spécifie le type de la variable et python ne nous empêche pas de changer sa valeur si on regarde du côté des langages de programmation du statique comme le c++ et qui sont donc à l'opposé des langages dynamiques vous voyez qu'on a un peu plus de travail à faire tout d'abord il faut qu'on spécifier le type de la variable dans le cas d'un nombre entier on doit précéder le nom de la variable 2 int et pareil pour une chaîne de caractères avec le mot strict de plus il n'est pas possible de changer la valeur affecté à une variable d'où le terme de statique une fois qu'une variable est définie on ne peut plus la modifier il faut donc en créer une autre vous voyez donc que python est beaucoup plus facile à manipuler et certains programmeurs habitués à la rigidité d'un langage statique trouveront que c'est une mauvaise chose car cela est trop permissifs personnellement ça ne m'a jamais posé de problème alors maintenant on va s'intéresser à l'autre partie à savoir pourquoi python est un langage fortement typé donc dans le cas d'un langage fortement typé comme python vous ne pouvez pas additionner des variables de différents types ensemble on l'a vu tout à l'heure si on essaye d'ajouter la chaîne de caractères 50 avec le nombre 50 python nous retourne une erreur avec un langage dit faible eux mentent ip comme javascript par exemple on peut tout à fait ajouter des variables de différents types ensemble javascript va tout simplement effectuer une conversion pour nous et convertir dans ce cas ci le nombre entier en chaîne de caractères dans ce cas si vous voyez que python et moins permissif que certains autres langages personnellement je préfère ça aussi puisque dans le cas de javascript vous voyez que le langage prend une décision à notre place il a choisi de convertir le nombre 50 ans chaînes de caractères mais peut-être auriez-vous préféré que ce soit l' inverse et que la chaîne de caractères soit converti en nombre pour réaliser une opération mathématique alors dans le cas de python vous allez me dire c'est facile il suffit tout simplement d'enlever les guillemets et le tour est joué on peut additionner les nombres ensemble oui c'est faisable mais on n'a pas toujours cette possibilité là c'est nous qui écrivant directement les deux nombres donc on peut juste porter attention à la façon dont on écrit les nombres et s'assurer qu'ils sont tous les deux définis comme des nombres entiers ainsi en enlevant les guillemets autour du 10e 50 on se retrouve bien avec de nombreux pieds et une addition qui fonctionne mais là où ça se corse c'est que nous ne sommes pas toujours à l'origine d'une variable la plupart du temps même ce n'est pas nous qui allons définir les variables de notre script mais l'utilisateur du script lui même notamment grâce à la fonction input que l'on a vu dans la partie précédente vous vous souvenez probablement qu avec python 3 la fonction input retourne maintenant systématiquement une chaîne de caractères on l'a donc pas le contrôle sur le type de la variable qui sera défini et il va donc falloir qu'on la convertissent dans le type qui nous intéresse donc pour résumer python est un langage dynamique et fortement typé ce qui implique qu'on n'a pas besoin d'indiquer le type d'une variable lors de sa définition et qu'on peut changer le type d'une variable à tout moment ça implique aussi que pour réaliser certaines opérations on doit pouvoir convertir les variables d'un type à un autre et c'est ce qu'on va voir dans la prochaine partie dans la partie précédente on a vu que dans certains cas il va falloir changer le type de nos variable pour par exemple changer une chaîne de caractères en nombre entier pour faire cette conversion on va utiliser des fonctions notamment la fonction string et la fonction int par exemple si on a une variable à qui contient à la chaîne de caractères 5 on va utiliser la fonction int pour convertir à un nombre entier grâce à ça on va pouvoir par exemple additionnée de nombreux ensembles en s'assurant que les deux variables qu'on ajoute sont du même type ici on convertit la chaîne de caractères dit ce qui est contenu dans la variable b en nombre entier là encore grâce à la fonction int ça nous permet d'ajouter à avec ben et donc 5 plus dix qui nous retourne logiquement le nombre 15 vous remarquerez que quand on fait la conversion on écrase la valeur contenus dans la variable b par son équivalent en nombres entiers avec la fonction int c'est très important de faire ça car sinon b ne changera pas de type est et sera toujours une chaîne de caractères par exemple ici à la deuxième ligne j'utilise la fonction int mais je ne mets pas le résultat de cette conversion dans la variable b quand on utilise la fonction int quittons nous affiche bien dix en tant que nombres entiers on a donc l'impression que bay a bien été converties mais si on fait un print de la variable mais par la suite on voit bien que be contient toujours la chaîne de caractères 10 c'est pour cette raison qu'on doit bien s'assurer de mettre le résultat de la conversion effectuée avec la fonction int à l'intérieur de la variable b alors si vous avez essayé de faire la même chose de votre côté par exemple avec idol vous avez peut-être remarqué que tout dépendant de l'interpréteur python que vous utilisez vous pouvez avoir l'impression que bay a bien été converti en nombres entiers comme vous le voyez ici en effet idol n'affiche pas les guillemets autour de la chaîne de caractères 10 donc on a l'impression que b et bien un nombre entier mais ce n'est pas le cas alors c'est très embêtant parce que c'est vraiment essentiel de savoir en programmation de quel type sont nos variable vous allez vous rendre compte qu'on ne peut pas se fier uniquement sur le visuel comme on le voit ici avec idol l'interpréteur python peut nous jouer des tours et il va falloir utiliser d'autres techniques pour afficher le type de nos variable et vous avez de la chance puisque c'est précisément ce que l'on va voir dans la prochaine partie pour afficher le type d'une variable python nous offre une fonction qui porte très bien son nom la fonction taille aps par exemple ici python nous affiche que la variable à est de type str don qui est l'abréviation de strings qui signifie en anglais chaînes de caractères si on change la valeur contenus dans la variable pour un nombre entier python affiche int pour integer qui signifie nombre entier en anglais est pareil avec float pour les nombres décimaux alors là encore quand on écrit nous mêmes la valeur que l'on veut mettre dans une variable on se doute bien de ce que la fonction type va nous retourner mais dans certaines situations ce n'est pas nous qui indiqueront la valeur a signé à une variable mais l'utilisateur comme avec la fonction input et parfois ça peut nous jouer des tours ici vous avez un extrait de code qui a été réalisé avec la version 2 de python on voit que dans ce cas ci la variable nombre contient un nombre entier en effet avec la version 2 2 python la fonction input évalue la réponse envoyée par l'utilisateur ce qui a pour effet de nous retourner un nombre entier si l'utilisateur entre un nombre mais avec python 3 ce n'est plus le cas et la fonction une poutre tourne toujours une chaîne de caractères seulement vous voyez qu'un simple prime tu peux nous induire en erreur puisque l'affichage qui nous est retournée par la fonction print ne contient pas toujours les guillemets on pourrait donc croire qu'on est en présence d'un nombre entier la seule vraie façon de s'assurer du type de la variable nombre et donc d'utiliser la fonction taille aps dans cet exercice j'ai créé quatre phrases ici qui additionnent des chaînes de caractères avec des nombres donc ça pose certains problèmes si je lance le script vous allez voir qu'on se retrouve avec une erreur de type taipei rohr qui me dit que je ne peux conques athénée que des chaînes de caractères avec des chaînes de caractères et non pas des nombres entiers avec des chaînes de caractères comme je le fais ici actuellement donc il va falloir modifier légèrement chaque ligne ici donc il ya une erreur sur chaque ligne il va falloir les modifier grâce notamment aux fonctions de conversion pour pouvoir exécuter le script sans avoir d'erreur donc le résultat que vous devez avoir été écrit ici à la fin de chaque ligne donc on doit avoir une phrase ici qu'ils affichent j'ai une classe de 30 élèves disent + 5 est égal à quinze ici juste 15 et pour finir l'addition de 10 + 5 est égal à quinze donc voilà ce qu'on doit obtenir on ne doit pas avoir d'erreur et pour ça il faut donc modifier légèrement chacune des lignes ici donc voilà pour les indications de l'exercice et on se retrouve dans la prochaine partie avec la solution voilà la solution à cet exercice dans lequel on devait modifier chaque ligne ici pour ne plus avoir d'erreur donc vous voyez que majoritairement on utilise la fonction de conversion string ici qui nous permet de changer le type d'une variable donc qui nous permet de convertir un nombre entier en chaîne de caractères donc là on avait tout simplement le nombre 30 comme ceci sans la fonction de conversion c't'une donc on se retrouvait avec une erreur puisque l'on ne peut pas additionner en python des éléments qui sont de différents types donc là on a une chaîne de caractères ici qui est caractérisée par les guillemets et on essaye d'additionner à ça le nombre 30 donc pour pouvoir l'additionner il va falloir le convertir en chaîne de caractères pour que l'on ajoute des chaînes de caractères avec des chaînes de caractères et pour ça on utilise donc la fonction string on pourrait aussi directement enlever toute cette partie ici et ma 30 mai le but ici c'était de garder les plus et de juste convertir les éléments ici pour ne pas avoir d'erreur donc là on a résolu la première ligne ensuite ici c'était un peu près la même chose alors c'était un peu plus compliqué puisque j'avais inclut quelques plus ici qui pouvait vous mélangez donc on a le plus ici en blanc qui est tout simplement le plus qui me permet d'ajouter donc ce nombre ici que l'on a converti en chaîne de caractère avec la fonction string on ajoute ça à la chaîne de caractères plus donc pour qu'on ait dit + 5 on a encore un plus ici pour ajouter cette fois ci la chaîne de caractères qui contient le nombre 5 donc là c'est le nombre à 5 mais il est déjà en chaîne de caractères puisqu'on a les guillemets donc ça ne sert à rien de le reconvertir une nouvelle fois avec la fonction string on peut le laisser comme ça ici en passant on pourrait simplifier et enlever ce plus émettre tout simplement ça comme ça ça marche aussi la même chose on a un plus mais ces deux chaînes de caractères donc on peut enlever ce plus et rassembler tout ça sous une seule chaîne de caractères donc là on se retrouve avec nos deux nombres ici le 10 et le 15 qui sont bien converti avec la fonction string et qu'ils sont cons cas tenais donc ajouter ici avec le plus à une seule chaîne de caractères donc là encore on aura plus de problème ici c'est l inverse on avait un nombre dit ce que l'on voulait ajouter au nombre cinq le nombre cinq qui étaient ici en chaîne de caractères donc le problème ici c'est que si vous avez fait l inverse c'est à dire si vous avez mis 5 comme ça et que à la place vous avez converti 10 en string et bien là on additionne la chaîne de caractères 10 avec la chaîne de caractères 5 et on se retrouve avec 105 et non pas 15 nous on voulait vraiment faire l'addition de 10 avec 5 donc là c'est l inverse ce qu'il fallait faire il fallait laisser le dise en nombre et modifier ici cette chaîne de caractères pour qu'on ait un nombre et qu'on puisse ajouter un nombre avec un nombre puisque actuellement on ne peut pas ajouter un nombre avec une chaîne de caractères donc là la solution c'était cette fois ci d'utiliser la fonction int pour convertir notre chaîne de caractères en nombres entiers et pouvoir additionner des nombres avec des nombres et se retrouver avec le nombre quinte pour finir on avait cette phrase ici donc là c'était aussi un petit peu différent puisque on voulait garder le résultat de l'opération ici donc faire 10 + 5 15 et convertir le résultat de cette opération en chaîne de caractères pour pouvoir l'ajouter à notre chaîne de caractères ici donc là il fallait faire très attention je vois souvent des gens qui font l'erreur de faire ça de convertir chaque élément séparément en chaîne de caractères sauf que là on va se retrouver avec la chaîne de caractères 10 qui va être ajouté à la chaîne de caractères 5 et en fait on va se retrouver donc eu dans le même cas de figure que avec la variable c'est ici si on avait converti le dis sans chaînes de caractères on se retrouverait avec 105 donc tout ce qu'on veut c'est passant 5 c'est vraiment le résultat de l'opération 10 + 5 donc il faut déjà faire l'opération c'est à dire 10 + 5 pour pouvoir avoir le résultat de l'opération qui va être 15 et convertir le résultat de cette opération qui va être un nombre en chaîne de caractères pour pouvoir la ajouté avec cette chaîne de caractères donc voilà pour la solution à cet exercice qui vous a permis de manipuler différents types d'objets donc des chaînes de caractères et des nombres entiers dans ce cas ci et dans ce cas ci il faut vraiment bien faire attention à avoir des objets du même type donc des chaînes de caractères avec des chaînes de caractères ou des nombres avec des nombres ça peut poser problème ici aussi par exemple quand on a des calculs donc de bien faire les calculs et les parenthèses et les fonctions tout ça dans le bon ordre pour ne pas avoir des problèmes de logique par la suite donc voilà pour la solution à cet exercice parfois ce n'est pas nous qui allons directement entrer la valeur d'une variable mais un utilisateur pour ça on a besoin de demander à l'utilisateur de rentrer une valeur pour pouvoir la signer à une variable ça on va pouvoir le faire grâce à la fonction input la fonction input on va lui passer la phrase que l'on veut afficher à l'utilisateur dans ce cas ci on va demander à l'utilisateur d'entrer un nombre mais pour pouvoir ensuite afficher ce nombre le modifier ou faire des calculs avec eh bien il va falloir récupérer cette information qui a été entré par l'utilisateur et bien pour ça on va faire pareil que comme une affectation simple c'est à dire qu'on va assigner le résultat qui nous est retournée par la fonction input dans une variable qui ici est appelée nombre donc en pratique ça donne ça on fait une affectation simple de la fonction input dans la variable nombre une fois que cette ligne est exécuté python va nous afficher la question que l'on a passé à la fonction input l'utilisateur va donc pouvoir entrer sa réponse et vous voyez qu ensuite si on print la variable nombre on se retrouve bien avec la valeur entrée par l'utilisateur donc on n'est pas encore sûr une interface graphique de haut niveau je vous la corde mais au moins la fonction input va nous permettre de créer nos premiers scripts qui vont pouvoir interagir avec un utilisateurs potentiels dans les prochaines parties on va voir comment manipuler les objets de type chaînes de caractères tu vas tu apercevoir qu'il existe beaucoup de façons de modifier des objets avec python pour ça on utilise différentes fonctions sur ces objets quand on utilise une fonction sur un objet on parle de méthodes donc pour l'instant ne t'en fais pas si tu m'entends parlé de méthodes et de fonction on reviendra par la suite sur la distinction entre les deux aussi il ne faut pas que tu te laisse impressionner il existe des centaines de fonction avec python et on peut au départ avoir l'impression que c'est encore plus difficile que d'apprendre le chinois mais pas de panique dans la pratique on utilise probablement un dixième de toutes ses fonctions tout au long de la formation moi je vais te présenter ses fonctions sur différents types d'objets à chaque fois je vais essayer de t'expliquer dans quels cas de figure ce genre de fonctions peuvent être utiles dans les prochaines parties on va donc s'intéresser aux objets de type chaînes de caractères tu vas voir qu'on peut de base effectué beaucoup d'opérations sur une chaîne de caractères avec python a ajouté une majuscule au début d'une phrase compter le nombre d'occurrences d'une lettre dans un mot ou dans un texte convertir une phrase en majuscules ou en minuscule remplacer des éléments à l'intérieur d'une chaîne de caractères bref tu vas voir que python est un véritable couteau suisse pour manipuler des données encore une fois ne t'en fais pas tu n'as pas besoin de retenir par coeur toutes ses fonctions le but des prochaines parties c'est avant tout de te montrer comment on peut manipuler les objets natif de python et les possibilités qu'offre le langage il existe plusieurs méthodes sur les chaînes de caractères qui nous permettent de faire ce qu'on appelle une modification de la casse quand on parle de casse en informatique c'est en fait les lettres majuscules et minuscules donc dans cette vidéo je vais vous montrer quatre méthodes qui permettent de modifier les chaînes de caractères à ce niveau les quatre méthodes qu'on va voir ses hopper lower taille tall et capitaux l'ice alors on va commencer avec hopper et lower donc eu peur ça permet tout simplement de modifier une chaîne de caractères pour la mettre en majuscules donc vous voyez que si je prends la chaîne de caractères bonjour et que je fais point eu peur avec bien entendu les parenthèses à la fin donc ça c'est une méthode c'est à dire qu'on met la fonction vapeur après la chaîne de caractère et on lit les deux avec le point et bien si je fais ça je vais avoir ma chaîne de caractères ici qui met retourner tout en majuscules on va avoir la même chose avec lower qui me permet cette fois ci de mettre la chaîne de caractères tout en minuscules alors dans quel cas de figure on peut avoir envie d'utiliser ces deux méthodes peur ça peut être pratique par exemple pour le web quand vous avez des textes qui sont affichées sur une page web pour automatiquement vous assurer que ces textes vont être en majuscules lower personnellement je l'utilisé beaucoup quand je dois faire des comparaisons imaginez que vous ayez à faire un système de recherche là encore sur un site web vous voulez vous assurer d'avoir l'entrée de l'utilisateur qui est tout en minuscules pour pouvoir comparer la recherche de l'utilisateur sans prendre en compte la casse donc sans prendre en compte les majuscules et les minuscules comme ça si par exemple l'utilisateur cherche bonjour et qu'ils marquent une majuscule à bonjour et bien en mettant lower vous allez pouvoir retourner tous les résultats qu'ils contiennent bonjour avec ou sans une majuscule donc ça ça permet d'uniformiser si vous voulez la chaîne de caractère qui va être saisi par l'utilisateur et votre résultats de recherche on a ensuite deux autres méthodes qui nous permettent de modifier une chaîne de caractères c'est la méthode capitaux live donc capital ait ça permet de rajouter une majuscule au début d'une chaîne de caractères donc par exemple si je fais la chaîne de caractères bonjour tout le monde et que je fais points capitaux live vous allez voir que la première lettre donc le b ici va être automatiquement mises en majuscules il ne faut pas confondre cette méthode capitaux live avec la méthode title qui elle permet de rajouter une lettre majuscule au début de chaque mot donc si je reprends l'exemple avec bonjour tout le monde et que je fais title cette fois ci on va avoir une lettre majuscule sur chaque lettre donc chaque première lettre de chaque mot dans cette chaîne de caractères donc là c'est assez facile de voir dans quel cas de figure on peut utiliser ces deux méthodes la première ça peut être pratique pour formater un texte afin de ne pas avoir d' erreur donc si vous reprenez par exemple le texte d'un livre et vous souhaitez vous assurer que chaque début de phrase commence avec une majuscule vous pouvez utiliser capitaux live et title ça peut être pratique comme son nom l'indiqué pour transformer une chaîne de caractères en titre donc si vous avez le titre d'un livre le titre d'un film ou des choses comme ça et bien généralement chaque première lettre de chaque mot va être en majuscules donc ces deux cas de figure dans lesquels on peut utiliser capitaux live et high tone donc voilà pour ces quatre méthodes qui nous permettent de changer la casse des chaînes de caractères et quelques exemples de situations dans lesquelles vous pourriez être amené à les utiliser il est très courant quand on utilise des chaînes de caractères qu'on ait besoin de remplacer ou de modifier certaines partie d'une chaîne de caractères pour ça on va avoir pas mal de méthodes qui vont nous permettre soin de remplacer un caractère précis soin d'enlever des éléments au début ou à la fin par exemple d'une chaîne de caractères la première méthode qu'on va voir c'est la méthode replay qui est celle qu'on utilise le plus souvent qui nous permet de remplacer un ou plusieurs caractères par un autre donc si par exemple je prends la chaîne de caractères bonjour je vais pouvoir remplacer le mot jour par soir en utilisant replaced donc le premier élément qu'on va indiquer c'est l'élément qu'on veut remplacer donc dans ce cas ci je veux remplacer jours et je veux le remplacer par la chaîne de caractères soir donc je ferme la parenthèse on a donc deux éléments qu'il faut obligatoirement donner à cette méthode ripley j'appuie sur entrez et vous voyez qu'on a bien remplacé le jour par le soir ça marche pour toutes les occurrences qui sont trouvés dans la chaîne de caractères c'est à dire que si je mets deux fois bonjour à la suite et que je refais un replay sur jours pour le remplacer par soir vous allez voir qu'on remplace les deux occurrences de jours ici par la chaîne de caractères soir ça marche également pour par exemple un espace donc si je mets juste un espace ici et que je le remplace par rien donc on peut même être un espace une chaîne de caractères vide en deuxième élément là on va tout simplement enlever l'espace qui est à l'intérieur de notre chaîne de caractères donc ça c'est la méthode replaced on utilise très souvent on peut même en utiliser plusieurs à la suite imaginer que je veuille faire ce que je viens de faire ici mais en une seule ligne eh bien je pourrais très bien déjà enlevé l'espace comme je viens de le faire ici et rajouter un point lui plaisent à la suite en remplaçant cette fois le jour par le soir donc je valide tout ça et là vous voyez qu'en une seule ligne on a remplacé à la fois l'espace par une chaîne de caractères vite donc on a enlevé l'espace et on a remplacé le jour par le soir donc on a deux fois bon soir à la suite qui sont collés l'un à l'autre donc ça c'était pour la méthode reply une autre méthode très pratique pour enlever des éléments dans une chaîne de caractères c'est la méthode streep alors il faut bien faire attention que cette méthode elle est un petit peu particulière à utiliser et je vais essayer de vous expliquer ça le plus clairement possible il se peut que vous tombiez sur des explications qui ne entre pas exactement comment cette méthode fonctionne et qui vont juste vous dire qu'en fait cette méthode va enlever de votre chaîne de caractères la chaîne de caractères que vous spécifiez donc je vais vous montrer des exemples je vais reprendre la chaîne de caractères bonjour mais je vais rajouter des espaces au début et à la fin et je vais utiliser cette méthode strip sur cette chaîne de caractères par défaut la méthode de strips si on ne lui passe rien elle va enlever les espaces donc si je fais ça là je vais me retrouver avec une chaîne de caractères qui ne contient plus d espace cette méthode streep elle va commencer au début et à la fin de ma chaîne de caractères donc ça c'est très important de le comprendre parce que si je mets des espaces au milieu et bien en fait là ans l'état vous voyez que les espaces y reste alors on fait ce qu'il faut comprendre c'est que cette méthode elle va analyser chaque caractère en partant du début et de la fin est temps qu'elle rencontre un caractère que l'on a spécifié à cette méthode elle va l'enlever donc par défaut si on ne passe rien à cette méthode comme je vous dis ça va agir sur les espaces mais imaginons donc que je reprenne mon exemple de bons jours avec des espaces aux débuts des espaces à la fin et que là cette fois ci je spécifie une chaîne de caractères alors je vais volontairement spécifier une chaîne de caractères avec des lettres dans le désordre par exemple je vais mettre la lettre u la lettre j o et n est en fait qu il faut comprendre c'est que la méthode streep elle va analyser tous les caractères en partant du début et de la fin et elle va regarder ça un peu comme une liste de caractère dont elle ne va pas chercher l'occurrence de cette chaîne de caractères précise donc du genre avec un espace au début qu'il a en l'état n'est pas présent dans ma chaîne de caractères mais il va vraiment commencer par la gauche regardez ici le caractère donc là on a un espace et il va regarder est-ce que cet espace est présent dans cette liste de caractère que je lui ai passé donc là c'est le cas on a bien spécifié un espace ici donc il va enlever cet espace il va continuer il va enlever le deuxième espace du coup puisqu'il est également présent donc dans cette chaîne de caractères on spécifique on veut enlever les espaces et ensuite il va arriver ici avec la lettre b et la lettre b elle n'est pas présente dans cette suite de caractères donc il ne va pas toucher à b et en fait il va s'arrêter là c'est à dire que le haut après ne va pas être enlevée même si on est spécifique aux ici et après en fait on va faire la même chose mais en partant de la droite donc là à la droite il va enlever un espace il va enlever un autre espace le r on l'a spécifié de notre chaîne ici donc il va l'enlever pareil pour le eu le haut le gie et après on va arriver au n et comme le n n'est pas spécifié ici et bien il ne va pas y toucher et on n'ira pas plus loin en fait donc le haut va rester également donc j'appuie sur entrée pour valider et vous voyez qu'on se retrouve bien donc avec uniquement la chaîne de caractères bon donc il faut vraiment voir ce qu'on passe ici non pas comme une chaîne de caractères comme un tout mais vraiment comme une suite de caractères que l'on souhaite enlever et l'ordre n'a pas d'importance c'est vraiment chaque caractère séparément qui va être analysé en commençant du début et de la fin de notre chaîne de caractères on a également deux méthodes cousine de cette méthode street qui sont la méthode air street et elle scrute donc est réel ça signifie wright élève qui veut dire droit et gauche en français et donc ça ça va nous permettre de spécifier qu'on veut uniquement vérifier d'un côté ou de l'autre de la chaîne de caractères par exemple sur cette chaîne de caractères ici si je ne souhaite pas enlever les éléments donc ils sont présents dans cette chaîne de caractères vers la gauche eh bien je vais pouvoir utiliser air streep pour spécifier que je ne veux affecté que la partie droite de ma chaîne de caractères donc on va uniquement commencé à partir de la droite donc si j'exécute cette ligne vous voyez qu'on va enlever donc les espaces et la lettre r -u haut et j en partant de la droite mais on garde les espaces au début de la même façon si j'utilise à la place elle streep et bien cette fois ci on va commencer au début à la gauche et on ne va pas toucher à la partie qui démarre de la droite donc là on enlevait les espaces au début mais à la fin on n'a rien touché et on a toujours notre chaîne de caractères jours avec les deux espaces à la fin donc vous voyez que cette méthode streep et ses cousines et r streep et à strip elles peuvent être très pratique dans certains cas de figure quand on veut généralement faire un peu de ménage dans des chaînes de caractères qui peuvent avoir des éléments parasites mais il est bien important de comprendre comment elle fonctionne et notamment cette cette petite particularité en fait qui fait que les caractères n'ont pas besoin d'être dans un ordre précis et que c'est vraiment chaque caractère individuellement qu'il va être analysé dans la chaîne de caractère d'origine donc déjà avec ses quatre méthodes reply ce strip air streep et l strip ça vous permet vous voyez de faire pas mal de choses de façon très précise sur une chaîne de caractères il faut quand même faire un peu attention avec ces méthodes parce que comme vous l'avez vu par exemple avec louis 'place ça va remplacer toutes les occurrences qui sont trouvés dans notre chaîne de caractères donc des fois ça peut vous jouer des tours puisque vous pouvez par exemple vouloir supprimer ou modifier juste un élément de votre chaîne de caractères et avec replaced même streep vous voyez que ça peut avoir des incidences sur l'entièreté de votre chaîne de caractères donc il faut des fois isolé certaines parties de votre chaîne de caractères ou alors utiliser comme on l'a vu des méthodes un peu plus précise comme airstream où elle script qui permettent de cibler soit le début soit la fin d'une chaîne de caractères donc voilà pour les différentes façons de remplacer des éléments à l'intérieur d'une chaîne de caractère avec replay et les différentes méthodes streep il est assez courant quand on fait de la programmation d'avoir des données qui ne sont pas forcément dans le bon type ou qu'on doive le modifier en passant d'un type à un autre pour faire ça avec une chaîne de caractères on peut utiliser deux méthodes qui vont nous permettre à la fois de séparer et de joindre des éléments d'une chaîne de caractères ces deux méthodes ça va être split et john donc split qui veut dire séparer agent qui veut dire joindre donc on va commencer avec un exemple dans lequel je vais vous montrer que ces deux méthodes sont vraiment jumelles si vous voulez puisque l'une va pouvoir être utilisé avec l'autre pour revenir exactement au même résultat qu'à l'origine donc si par exemple je prends une suite de nombres qui sont séparés par une virgule donc j'ai 1 2 3 4 et 5 ici donc imaginer que cette chaîne de caractère je veuille la récupérer sous forme d'une liste de nombres donc je vais pouvoir modifier cette chaîne de caractères et extraire chaque nombre en utilisant la méthode split qui me permet de séparer cette chaîne de caractères sur la virgule alors je vais pas uniquement séparés sur la virgule mais sur la virgule et un espace puisque si je sépare sur la virgule je vais avoir un premier élément dans ma liste qui va contenir 1 un deuxième élément qui va contenir un espace et le nombre d'eux un troisième élément qui va contenir un espace et le nombre 3 etc et c'est donc là moi ce que je veux c'est vraiment un deux trois quatre et cinq donc je vais séparés sur la virgule et ensuite sur l'espace virgule espaces comme ceci je donne les deux caractères d'un coup j'appuie sur entrée et là vous voyez que j'ai bien une liste qui contient cinq chaînes de caractères ici qu'ils contiennent chacune les nombres donc ça ça me retourne une liste et comme je vous disais il ya un instant ces deux méthodes on va pouvoir les utiliser conjointement pour retomber sur nos pieds si vous voulez donc je vais en fait utilisé ce même caractère donc virgule espaces et cette fois ci je vais faire un job et je vais lui passer tout ce que je viens de faire ici donc là ça devient un petit peu difficile à lire mais je vais reprendre tout ça avec vous en fait ce qu'on fait ici c'est que on utilise la méthode john sur une chaîne de caractères donc là on a une chaîne de caractères et on dit qu'on veut joindre tous les éléments de cette liste avec ce caractère virgule espace donc ça qu'est ce que ça va me donner ici toute cette partie ça va me donner une liste avec différentes chaînes de caractères donc les nombres 1 2 3 4 et 5 et tous ces nombres ici 1 2 3 4 et 5 donc ses cinq chaînes de caractères qui contiennent des nombres je vais vouloir les joindre avec cette virgule et cet espace donc si je fais ça en l'état vous voyez qu'on va retomber en fait sur nos pieds donc on se retrouve avec une chaîne de caractères 1 2 3 4 et 5 qui est exactement la même que celle qu'on avait ici et qu'on passait à split donc c'est pour ça que je vous disais qu'en fait on peut retomber sur nos pieds et parfois c'est ça qu'on a besoin de faire en fait ici on pourrait par exemple vouloir extraire les nombres donc extraire 1 2 3 4 et 5 les modifier par exemple ajouter 3 à chaque nombre pour avoir 4 5 6 7 et 8 et ensuite retomber sur nos pieds pour avoir une chaîne de caractères qui contient 4,5 6-7-8 donc avec ces deux méthodes avec split et avec john on peut faire cette opération c'est à dire qu'on peut modifier les données qu'on a donc notre chaîne de caractères pour extraire ce dont on a besoin et pour ensuite reconstitué un peu différemment ce qu'on avait là par exemple imaginer que mon intention n'est pas de modifier les nombres donc n'est pas d'ajouter trois à chaque nombre mais juste de reconstituer ma chaîne de caractère avec des points et bien pour faire ça je peux refaire un deuil mais cette fois-ci modifier mon caractère ici et à la place mettre des points donc j'appuie sur entrée et là on voit qu'on a bien un 2 3 4 et 5 on pourrait bien entendu faire cela de façon un peu plus simple avec la méthode aubry 'place mais vous voyez que c'est une autre façon de faire qui fonctionne également donc voilà pour ces deux méthodes split et john je sais que jones est assez confus au départ puisque en fait il ya beaucoup de gens qui préféraient faire l' inverse c'est-à-dire déjà donné une liste dire par exemple 1 2 3 4 et 5 et ensuite indiqué qu on veut joindre les éléments de cette liste par exemple avec une virgule donc c'est vrai que ce serait assez logique de faire ça comme ça de déjà avoir l'élément et ensuite de dire ben et bien qu'on veut joindre ces éléments avec un caractère et bien en fait celle inverse on va déjà donné le caractère donc on va dire qu'on veut utiliser par exemple le caractère tiret etc on veut joindre différents éléments avec ceux tirés alors faites attention également puisque si vous donnez ici dénombre ça ne va pas fonctionner si j'appuie sur entrée vous voyez qu'on a une erreur s'il le dit taipei erreur donc en fait on ne peut pas joindre des éléments dans une liste qui ne sont pas des chaînes de caractères donc si je voudrais joindre les différents éléments de ma liste ici avec ce caractère et bien il faudrait que je mette les nombres 1 2 et 3 entre guillemets pour qu'ils soient considérés comme des chaînes de caractères et que je puisse ainsi les joindre avec la méthode jeunes donc si je refais ça là vous voyez que ça fonctionne et qu'on a bien 1-2-3 donc vous voyez qu'il ya quelques petites particularités avec cette méthode donne donc on utilise directement sur une chaîne de caractères et on ne peut pas l'utiliser dans l'autre sens sur une liste et également la liste d'éléments que l'on passe à cette méthode jeune doit obligatoirement contenir des chaînes de caractères sinon on se retrouve avec cette erreur donc voilà pour cette partie sur split et jane ce sont des méthodes qu'on utilise très souvent quand on doit manipuler des chaînes de caractères et je vous conseille de faire pas mal d'exercice sur ces deux méthodes afin de vraiment pouvoir manipuler comme vous le souhaiter une chaîne de caractères dans cette vidéo je vais vous montrer une méthode que peut-être vous utiliserez tous les jours ou alors jamais de votre vie cette méthode c'est la méthode z fils qui nous permet de remplir avec des zéros une chaîne de caractères alors dit comme ça ça ne vous semble pas forcément très utile ça peut être en fait très utile si vous faites des séquences donc par exemple personnellement dans mon métier on fait beaucoup de séquences d'image et pour avoir quelque chose de constant donc par exemple quand on passe de 9 à 10 pour avoir à chaque fois de nombres eh bien on va utiliser cette méthode z fils qui va me permettre de ne pas avoir juste 9 mai 09 et on peut spécifier autant de zéros qu'on veut donc par exemple si on a des séquences d'image qui vont aller jusqu'à 1000 2000 et c est bien là on va pouvoir spécifié qu on veut remplir avec 3 0 donc on n'aura pas seulement 9 mai 00 09 donc je vais vous montrer ce que ça donne on va créer une chaîne de caractères on va mettre neuf dedans et on va utiliser cette file en lui passant 4 donc 4 c'est la longueur qu'on va avoir au final donc pour avoir quatre caractères il va rajouter seulement 3 0 si je m'étais 3 et bien cette ville rajouterai 2 0 et au total on aurait bien trois caractères donc vous voyez que ça peut être pratique pour avoir comme ça une séquence qui a la même longueur à chaque fois ci par exemple dans une boucle ligne orange et je vais mettre 100 et que j'affiche y par défaut vous voyez que on a deux nombres quand on est au delà de 10 mais que jusqu'à 10 on à 0,1 2,3 donc on a vraiment un seul nombre d'affichés donc si je veux avoir quelque chose de constant je peux refaire ma boucle pour i in waves deux sens sauf que cette fois ci je vais utiliser cette file alors cette fille là attention elle s'utilise sur les chaînes de caractères donc si je fais print y point z fils comme ceci et bien ça ne marchera pas puisque la actuellement on à ic i est égal à un nombre entier puisque winch 2 sens ça va nous retourner une liste de nombres entiers donc là il ne faut pas oublier si vous faites ça de convertir y enchaîne de caractère avec la fonction string pour pouvoir utiliser ensuite z fils donc là je vais faire sept fils et je vais faire un des deux fils de quatre et on va voir ce que ça donne donc en jazz fiche ça vous allez voir que cette fois ci on a quatre caractères à chaque fois donc même au début ici quand on a le zéro on a zéro zéro zéro zéro et ensuite 0,01 et c est jusqu aux 99 qui lui aussi à 0 0 devant donc automatiquement python va s'arranger pour mettre le bon nombre de zéro donc au début vous voyez qu'il va s'arranger pour 1 m 3 pour au final avoir quatre caractères et à la fin il ne va en mettre que deux pour avoir là encore quatre caractères au total donc voilà pour cette méthode z fils qui peut être très pratique comme je disais quand vous travaillez avec des séquences bien attention cependant de l'utiliser sur une chaîne de caractères et fils ne marche que sur les chaînes de caractères et comme on utilise en tout cas personnellement souvent sur des nombres il ne faut pas oublier de faire cette conversion avec la fonction string pour pouvoir utiliser cette méthode donc sur une chaîne de caractères avec python on dispose de beaucoup de méthodes qui nous permettent de vérifier ce que contient une chaîne de caractères il y en a tellement que y'en à la plupart en fait que moi je n'ai jamais utilisé donc je vais vous montrer celle que j'utilise personnellement le plus souvent et à la fin de cette formation vous verrez un récapitulatif de toutes les méthodes qui sont disponibles sur une chaîne de caractères donc vous pourrez tester comme ça un peu tout ce qui est possible donc toutes ces méthodes en fait elles vont avoir la particularité de commencer parise par exemple si je veux vérifier qu'une chaîne de caractères contient uniquement des caractères en minuscule je peux utiliser la méthode is lower et en faisant ça vous voyez que ça va me retournais en fait à chaque fois un boulet un qui va me dire si oui ou non la chaîne de caractères rempli les conditions donc dans ce cas si tous les caractères de cette chaîne de caractères sont en minuscule donc is love me retourne choo si par contre j'avais au moins un des caractères ici qui était une lettre majuscule là ça me retournais falls on va voir ça sur pas mal tout ce qu'on a vu dans les parties précédentes c'est à dire par exemple les méthodes pearl au world title capitaux live etc par exemple si je fais ystari tôle vous allez voir que je vais pouvoir vérifier si cette chaîne de caractères rempli les conditions d'un titre donc un titre c'est si toutes les premières lettres de chaque mode une chaîne de caractères sont en majuscules donc si je fais ça avec bonjour tout le monde ça va me retourne et folk puisque j'ai des lettres ici pour chaque mot qui sont en minuscule après le bonjour donc vous pouvez faire ça avec beaucoup de méthode différente là encore je vous renvoie à la fin de cette formation si vous voulez en voir plus moi y en a une que j'utilise très souvent qui est la méthode easyjet easyjet ça va permettre de vérifier si le contenu d'une chaîne de caractères est uniquement composé de chiffres donc par exemple si j'ai la chaîne de caractères 50 et que je fais ici dit gîte sur cette chaîne de caractères là ça va me retourne et shu par contre si j'ai n'importe quoi d'autre qu'un chiffre qui est contenu à l'intérieur de cette chaîne de caractères par exemple si je mets la chaîne de caractères à est bien là ça va me retournais falls il est bien important de noter que même si je n'ai qu'un seul caractère dans l'entièreté de la chaîne de caractères qui n'est pas un nombre eh bien il se dit jean va me retournais fox alors pourquoi est ce que j'utilise cette méthode très souvent et bien parce que comme python est un langage fortement typé je ne peux pas par exemple additionner une chaîne de caractères avec un nombre si je fais c'est ici je vais avoir une erreur puisque python n'est pas capable d'additionner ces deux objets ensemble donc c'est très important de pouvoir vérifier si une chaîne de caractères ne contient que des nombres puisque si c'est le cas et bien on va pouvoir par la suite convertir par exemple cette chaîne de caractères en nombre entier mais si cette chaîne de caractères ne contient pas que des nombres si par exemple je reprends 50 ha est bien là j'aurai une erreur donc j'utilise généralement ces deux façons de faire l'une avec l'autre je vérifie déjà si la chaîne de caractères contient uniquement des nombres avec easyjet et si c'est le cas et bien après je vais pouvoir convertir cette chaîne de caractère avec la fonction int sans avoir de risque d'erreur donc voilà pourquoi j'utilise est très souvent cette méthode easyjet s'est encore plus utile depuis la version 3 de python puisque la fonction input qui nous permet de demander à l'utilisateur de rentrer des informations pas obligatoirement retourner une chaîne de caractères donc même si l'utilisateur rentre le nombre 50 et bien ce nombre 50 me sera retourné sous la forme d'une chaîne de caractères donc là encore si je veux utiliser la saisie d'un utilisateur qui est un nombre pour ensuite l'utiliser pour faire des calculs mathématiques et bien je vais devoir m'assurer déjà que ce que l'utilisateur a saisi contient bien uniquement dénombre pour pouvoir par la suite comme on l'a vu convertir cette chaîne de caractères en nombres entiers avec la fonction int ssant risque de causer d'erreurs donc voilà pour la méthode que j'utilise le plus dans toutes ces méthodes qui commence parise y en a beaucoup d'autres donc je vous renvoie à la fin de cette formation pour avoir une liste de toutes les méthodes disponibles avec heath qui permettent de faire ce genre de vérifications et moi c'est vraiment celle là que j'utilise le plus souvent parfois dans une chaîne de caractères on a besoin de compter le nombre d'occurrences ou d'une suite de caractères à l'intérieur d'une chaîne de caractères pour ça on va utiliser la méthode 40 qui veut dire compte et en anglais alors attention avec cette méthode puisqu'elle va compter non pas les mots mais vraiment les caractères qui sont présents donc pour illustrer ce que je viens dire je vais vous montrer un exemple avec une phrase je veux dire bonjour le jour et donc si je veux compter le nombre de fois qu'apparaît la chaîne de caractères jour je peux utiliser car ndt est lui passé cette chaîne de caractères le problème ici même si ce n'est pas forcément un problème mais juste un comportement un peu particulier c'est que si j'ai fait ça ça va me retourner deux puisque en fait on a bien effectivement deux fois la chaîne de caractères jour une première fois ici et une deuxième fois ici donc c'est pour ça que je dis que c'est un problème puisque si vous voulez compter le nombre de fois qu'il y a le mot jour est bien là vous allez avoir de alors qu'en fait on a une seule fois le mot jours au complet si on voulait compter le mot jour uniquement on pourrait chercher pour espace jour en considérant qu'on a un espace entre chaque mot et là on aurait bien uniquement un qui nous est retourné puisqu'on a une seule fois à la chaîne de caractères espaces jour dans cette chaîne de caractères mais si on enlève l'espace est bien de façon assez logique en fait on a deux fois la chaîne de caractères jours donc les quatre lettres jour1 à la suite qui sont présentes dans cette chaîne de caractères donc je vous le dis parce que ça m'a déjà joué des tours de chercher en fait un mot grâce à cette méthode est d'avoir un compte qu'ils n'étaient pas précis et en fait c'est vraiment à cause de ça puisque je l'utilisais pour chercher des mots à l'intérieur d'une chaîne de caractères et en fait ça me retourner toutes les occurrences de la chaîne de caractères que je cherchais même quand c'était collet en fait à l'intérieur d'un mot comme bonjour ici donc une des façons de faire comme je vous dis si vous vraiment vous cherchez des mots c'est de mettre un espace avant puisque généralement on a des espaces entre chaque mot donc ça permet d'éviter ce genre de problème donc voilà pour cette méthode 40 ce qui est quand même assez simple à utiliser sinon il suffit de lui donner une chaîne de caractères et savoure tourner le nombre de fois qu'elle trouve cette chaîne de caractères dans votre chaîne de caractère initial il arrive qu'à l'intérieur d'une chaîne de caractères on ait besoin de chercher un mot ou une suite de caractères pour ça on va pouvoir utiliser deux méthodes qui sont presque similaires et je vais vous montrer la différence entre les deux qui est quand même importante à connaître donc ces deux méthodes c'est la méthode fade et la méthode index donc si je prends la phrase bon jour le jour et que je fais find et que je cherche le mot jour là vous allez voir qu'on a trois donc là encore comme je vous disais c'est comme avec la méthode quand on ne va pas chercher le mot jour mais bien la chaîne de caractères jours donc là ça nous indique 3 puisque la première fois qu'il trouve cette suite de lettres donc jour1 c'est dans le mot bonjour donc il nous indique 3 parce qu'on commence à compter à zéro en python donc même si ce caractère le gie ici commence au quatrième caractère en fait on commence à compter à 0 2 0 1 2 et 3 donc 3 qui est le j 2 jours ici donc ça c'est avec la méthode fiennes et je peux faire la même chose avec la méthode index donc comme ceux-ci index et vous voyez que ça me retourne exactement la même chose donc pourquoi utiliser l'une plutôt que l'autre la seule différence c'est que find va vous retournez moins-16 la chaîne de caractères n'est pas trouvée donc je vais vous montrer ce que ça donne si je cherche à la place de jours par exemple le soir qui n'est pas présent dans cette chaîne de caractères find va me retournais - 1 si je refais la même opération mais cette fois ci avec la méthode index là je vais avoir une erreur qui va être levé donc value erreurs et samedis sauf string not fade donc là c'est à vous de voir ce que vous préférez ce que vous préférez que votre script lève une erreur dans le cas où la chaîne de caractères n'est pas trouvée ou est-ce que vous préférez récupéré - 1 donc ça c'est à vous de voir et à vous d'utiliser la méthode en fonction donc find windex on a également une autre méthode que fang qui nous permet de chercher mais en partant de la fin donc là c'est exactement la même chose qu'avec la méthode streep on va avoir la méthode find et la méthode air find doncker qui signifie wright qui en anglais signifie de droite et donc ça va nous permettre de chercher en partant de la droite donc si je fais bon jour le jour et que j'utilise air fine cette fois ci avec jours on va avoir un résultat différent que celui qu'on avait précédemment précédemment on avait trois puisque ont commencé à 0 est donc la première fois qu'on trouvait cette suite de lettres c'était au troisième caractère ici et là on est à onze parce qu'en fait on est parti de la fin donc on part de la fin de la droite de la chaîne de caractères est la première fois qu on trouve l'occurrence du mot jours ici et bien c'est au 11e caractère donc voilà pour air france il n'existe pas de méthode par contre elles find donc contrairement à la méthode streep qui contient strip air streep et l strip avec farid on a uniquement find her fine si vous utilisez l find ça ne marchera pas ça vous dira que les objets de type string non pas d'attribuer le fine donc ça veut dire que cette méthode n'existe pas sur les objets de type chaînes de caractères donc pourquoi ça n'existe pas et bien tout simplement puisque en fait elles find en fait s'il inverse ses fans de tout simplement si vous voulez chercher en partant du début de la chaîne de caractères et bien il vous suffit d'utiliser farine depuis ce que feint il de par défaut va commencer depuis le début de votre chaîne de caractères donc fine et si vous voulez chercher depuis le début et refined si vous voulez chercher depuis la fin et index sait vraiment si vous souhaitez que votre programme relève une erreur plutôt qu'il ne vous retourne - 1 si jamais la chaîne de caractères que vous cherchez n'est pas trouvé à l'intérieur de votre texte parfois on va avoir besoin de vérifier qu'une chaîne de caractères commence où se termine par une chaîne de caractères donné ça ça peut être très pratique par exemple quand vous travaillez avec des fichiers pour vérifier l'extension d'un fichier par exemple si j'ai un fichier d'image dont je vais faire une image au format png par exemple eh bien je souhaiterais vérifier que le nom de cette image donc le nom de cette chaîne de caractères se termine par pnj pour ça je peux utiliser ends wit est spécifié donc la chaîne de caractères que je recherche donc je peux spécifié png ou point png dans ce cas ci et ça va me retourne et floue falls si la chaîne de caractères se termine avec ce que j'ai spécifié si par exemple je change et que je cherche à la place jpeg jpg qui est un autre format d'image et que j'appuie sur entrée là vous voyez que ça me retourne falls et c'est normal puisque cette chaîne de caractères ici ne se termine pas par jpg on peut utiliser la même chose mais dans le sens inverse avec start sweat et qu'il a va chercher au début de la chaîne de caractères donc si je veux par exemple m'assurer que cette chaîne de caractères commence bien par image je peux utiliser starts oui tu es rentrée la chaîne de caractères images et là ça va me retournais de chou puisque ça commence bien par image et si je cherche par contre vidéo la samare retournera falls donc rien de bien compliqué ici la seule chose à laquelle il faut bien faire attention c'est de ne pas oublier le s à chaque fois donc c'est bien hands with ce donc là on est à huit ce qui veut dire avec en anglais est ici end qui signifie la fin et entre les deux on a bien le s donc ends wit est pareil avec start ces start qui veut dire comment ce weed ce qui veut dire avec et on a le s donc ces start avec un s oui tu es ends oui tout bien faire attention dans les deux cas de ne pas oublier le s entre le mot donc start and et le mot huit dans cette partie on va s'intéresser aux opérateurs les premiers types d'opérateurs que l'on va voir il te seront très familier puisqu'il s'agit des opérateurs mathématiques comme l'opérateur d'addition de soustraction ou de divisions mais tu vas voir qu'il existe pas mal d'autres opérateurs très utiles comme les opérateurs d'assignation ou de comparaison si une partie qui peut paraître simple mais qui est très importante pour la suite il ne faut pas que tu pense donc que l'on va juste comment faire une addition il ya plein de subtilité et d'opérateurs autre que les opérateurs mathématiques qu'il est important de connaître avec python on l'a déjà vu dans les parties précédentes python est une vraie calculatrice dans cette partie on va aller un peu plus loin que l'addition et je vais vous montrer tous les opérateurs mathématiques disponible avec python on l'a donc les opérateurs mathématiques de base bien connus que sont l'addition la soustraction la multiplication et la division donc rien de bien compliqué ici vous voyez qu'on peut utiliser ces opérateurs mathématiques avec python tout comme on les utiliserai sur une calculatrice la seule chose à noter c'est la division qui nous retourne un nombre décimal contrairement aux autres opérateurs qui eux nous retourne des nombres entiers ces opérateurs mathématiques on peut également les utiliser avec des chaînes de caractères le plus va nous permettre d'additionner des phrases ensemble ce qu'on appelle la concaténation on y reviendra dans une autre partie spécialement consacré à ça la multiplication ça nous permet comme vous le voyez ici de dupliquer une chaîne de caractères autant de fois qu indiqué donc ce n'est pas forcément très utile mais sachez que c'est possible on ne peut cependant ni soustraire ni divisé des chaînes de caractères ce qui paraît assez logique donc ça c'était les opérateurs mathématiques de base que tout le monde connaît maintenant je vais vous présenter trois autres opérateurs mathématiques qui sont un peu moins connue il s'agit du module haut de la division entière et de la puissance le module haut ça nous permet de récupérer le reste d'une division donc si on fait dix modules aux deux on se retrouve avec zéro car 10 / 2 ça donne 5 et il reste 0 par contre si on fait 6 me du lot 4 on se retrouve avec le nombre d'eux car si c'est diviser par 4 ça fait 1 et il reste deux la division entière quant à elle nous permet d'effectuer une division et de récupérer un nombre entier on voit dans le premier exemple que 10 / 2 avec une division entière ça nous retourne 5 alors qu'on a vu au début de cette partie que la division et est le seul opérateur mathématiques à nous retourner un nombre décimal donc dans le cas d'une division simple comme celle-ci 10 / 2 ça ne change pas grand chose là où ça devient plus intéressant c'est quand on a une division comme par exemple 10 10 et par 3 qui donne un nombre infini donc 3.333 3 3 etc jusqu'à la dernière valeur qui est un 5 puisque il fait un arrondi la la division entière ça nous permet de récupérer uniquement le nombre entier sans lady si mal donc ça peut être utile dans certains cas pour finir on à l'opérateur mathématiques puissance qui nous permet tout simplement comme ici de faire deux puissances 4 ce qui nous donne 16 donc rien de bien compliqué dans cette partie la plupart du temps vous allez utiliser les opérateurs mathématiques de base et ils sont assez faciles à retenir puisque ça reste des mathématiques d'un niveau très très basique les opérateurs d'assignation on en a déjà vu un bien connu c'est le symbole égale qui nous permet d'assigner une valeur à une variable dans le cas où l'on veut ajouter une valeur à cette même valeur déjà défini de base vous seriez tenté de faire comme ceux ci dont qui égale e-plus 1 donc là avec cette syntaxe on fait juste ajouter 1 à 10 c'est ce qu'on appelle incrémenté une variable donc au départ y est égal à zéro après cette ligne y sera égal à 1 puis à 2 si on recommence l'opération 3 4 5 etc etc il existe une façon de faire plus simple c'est d'utiliser un autre opérateur d'assignation qui va nous permettre d'incrémenter la valeur d'une variable de 1 donc y plus égal 1 donc c'est de syntaxe elles sont similaires elles vont avoir le même effet qui va être d'incrémenter 2 1 la valeur de y seulement vous conviendrez que la syntaxe de gauche et plus concise et agréable à lire que celle de droite ces opérateurs d'assignation quelque peu spécifique ils sont disponibles pour tous les opérateurs mathématiques que l'on a vu dans la partie précédente c'est donc un moyen plus rapide d'incrémenter de décret mentez ou de réaliser tous types d'opérations mathématiques sur une même variable alors bien entendu il est possible d'utiliser ces opérateurs d'assignation avec d'autres valeurs que 1 ici par exemple on incrémente la variable i de 10 qui était égal au départ à 5 donc ça nous donne bien 5 + 10 ce qui nous donne donc logiquement la valeur de 15 dans cette partie on va s'intéresser à un autre type d'opérateurs les opérateurs de comparaison alors on a l'impression qu'il y en a beaucoup comme ça mais vous allez voir là encore si vous êtes allés à l'école au moins jusqu'au collège vous ne devriez pas être trop perdu donc les quatre premiers sont assez évidents on a plus grand que plus petit que plus grand ou égal à est plus petit ou égal à donc ces quatre opérateurs généralement sont les mêmes peu importe le langage de programmation qu'on va utiliser il n'y a pas vraiment d'autres façons ou symboles qu'on peut utiliser pour vérifier si un nombre est plus grand qu'un autre là où vous pourrez retrouver des différences entre python et d'autres langages de programmation c sur l'égalité et la différence pour vérifier l'égalité on utilise deux symboles égal à la suite donc il faut bien faire attention à ça c'est une erreur très courante des débutants de vérifier l'égalité avec 1 seul symbole égal c'est une grosse différence par rapport à ce qu'on connaît en mathématiques par exemple où l'égalité et vérifier avec le symbole égal en mathématiques on n'a pas ce concept de variable donc ça ne pose pas de problème mais pour python on l'a vu dans les parties précédentes le symbole égal il sert déjà à affecter une valeur à une variable c'est pour cette raison que pour vérifier l'égalité avec python en utilise deux fois le symbole égal pour la différence on utilise un point d'exclamation suivi du symbole égale donc c'est tout simplement linverse de l'égalité on pourrait s'en servir par exemple pour restreindre l'accès à une page web dans le cas où le nom d'utilisateur n'est pas égal à admise dans cette partie je vais vous présenter la différence entre le moïse et l'opérateur d'égalité il ya vraiment une grosse différence entre les deux qui n'est pas forcément très bien comprise des débutants et pourtant elle a toute son importance le symbole d'égalité donc l'opérateur égalé gala ça nous permet de vérifier légalité des valeurs qui sont contenus dans leur variable le mot-clé is par contre il permet de vérifier si deux objets sont les mêmes en mémoire donc si on a les mêmes objets d'un côté et de l'autre donc je vais vous montrer quelques petits exemples ici pour que vous compreniez bien la différence entre eux ces deux façons de faire donc par exemple imaginez que vous ayez une liste à qui contient dénombre donc on va mettre 1 2 et 3 dans cette liste et on a eu notre liste b qui va elle aussi contenir dénombre donc les mêmes nombres 1 2 et 3 donc si je veux vérifier que les listes contiennent les mêmes informations je vais utiliser le symbole d'égalité donc égalé galles j'appuie sur rentrée est là on a bien tout puisque les deux listes contiennent les mêmes valeurs donc on a un deux trois dans chaque liste par contre si j'utilise is dont qaïs b et que j'appuie sur entrée là on a fault puisque l'objet à n'est pas égal à l'aube gb en mémoire pour vérifier ça on peut utiliser la fonction a dit donc l'idée comme ceux ci est lui passé chacun des objets donc on va lui passer l'objet à est l'objet b et vous voyez que l'adresse en mémoire que nous retourne la fonction heidi n'est pas la même on a ici un nombre qui finit par 48 est ici un nombre qui finit par 32 donc ça c'est l'adresse en mémoire de chaque objet est elle n'est pas pareil donc is ici ça va nous retourner tout uniquement si cette adresse en mémoire est la même donc là une liste en fait quand on crée une liste ça mais cette variable dans une case en mémoire et la liste ne va pas avoir la même case à chaque fois qu'on crée une liste différente donc à va avoir une adresse en mémoire différentes de b ça va être pareil pour à peu près toutes les variables qu'on va créer si je crée une variable qui contient le nombre mille et une variable qui contient le nombre de milles et que je fais asb là aussi on a false et si je fais à égal et galbées là aussi on va avoir falls puisque mille n'est pas égal à 2006 par contre je fais b égalment il là on aura bien la même valeur donc b aura la même valeur que la variable a donc si je fais à égal et galbées on va avoir tout mais si je fais asb là on aura toujours folk puisque là encore l'adresse en mémoire n'est pas la même pour à et pour b donc c'est vraiment bien important de comprendre cette différence est de ne pas utiliser is quand vous voulez vérifier légalité et de ne pas utiliser le symbole d'égalité donc égale égal quand vous voulez vérifier si deux objets sont les mêmes bien faire attention à ça il ya une petite particularité avec les nombres notamment quand vous avez des nombres entiers qui vont de -5 à 256 en fait entre -5 et 256 pour optimiser les choses les gens qui ont que des pythons ils ont déjà défini des adresses en mémoire pour ces nombres et donc quand vous créez des variables qui ont une valeur comprise entre -5 et 256 et bien en fait même si les deux variables sont différentes si on a par exemple acquis est égal à 10 et b qui est égale à 10 donc on a deux variables ici différentes a et b et bien en fait quand on va faire asb avec dénombre entre -5 et 256 vous voyez que dans ce cas ci ça retourne choo puisque si on fait heidi deux as et heidi de b vous voyez que python les a placés dans la même case mémoire donc ça c'est vraiment pour des raisons d'optimisation et c'est uniquement pour les nombres de -5 à 256 donc si je fais à égal 256 b égale 256 là encore on va avoir à sb qui va être égal à chew si je fais par contre à égal de 157 et b égale 257 également la haïssent b sera falls puisque c'est vraiment comme je vous disais entre -5 et 256 donc ne vous inquiétez pas si vous faites des tests de votre côté avec des nombres entiers qui vont de -5 à 256 c'est normal si asb vous retourne tout dans ce cas ci mais dès qu'on dépasse cette plage si je vais aussi donc dans moins six donc en dessous de -5 et bien là on va encore avoir une heidi différents dont qaïs bva nous retourner falls par contre si je fais moins 5 et moins 5 comme ceci est bien asb sera choo donc voilà pour la petite particularité sinon vraiment dans tous les autres cas de figure vous allez avoir une vraie différence entre 10 et l'opérateur d'égalité puisqu'ils ne vérifient pas la même chose donc c'est vraiment une notion importante à connaître pour savoir en fait dans quels cas utiliser l'un ou l'autre donc si vous voulez vérifier vraiment légalité des valeurs où l'égalité au niveau des objets en mémoire si tu lis le titre des prochaines parties tu te demandes probablement ce que signifie le terme formatage pas de panique on ne va pas formaté nos chaînes de caractères comme on formate un disque dur ici le terme de formatage il fait référence aux termes anglais de fulham hat qui signifie mettre en forme dans cette partie on va donc voir comment on peut mettre en forme une chaîne de caractères pour par exemple y insérer des variables ça peut paraître pour l'instant assez inutile mais tu vas voir rapidement en programmant qu'on a très souvent besoin d'utiliser des chaînes de caractères et d'y insérer des données c'est donc une partie très importante de la formation notamment parce que c'est la partie sur laquelle il ya eu pas mal de changements dans les dernières versions de pitau entre la version de mma intérieur des versions 3 on va donc voir ensemble la façon la plus moderne et efficace de faire mais aussi les anciennes méthodes possibles et pourquoi elles peuvent encore avoir une utilité à la place du terme formatage vous avez peut-être déjà entendu le mode de concaténation la concaténation c'est le fait de m'être boutabout plusieurs chaînes de caractères pour conques athénée des chaînes de caractères on peut utiliser le symbole d'addition qui nous permettent d'assembler plusieurs chaînes de caractères les unes à la suite des autres dans ce cas ci on se retrouve avec la phrase bonjour tout le monde sans espaces puisque le symbole d'addition a tout simplement mis bout à bout tous les termes qu'on lui a donné vous conviendrez que ce n'est pas très élégant au niveau du code est pas non plus très pratique à utiliser également python et en allant gage fortement typé on ne peut pas additionner des chaînes de caractères avec des nombres pour faire ce genre d'opération il va falloir passer par ce qu'on appelle des fonctions de conversion afin de pouvoir ajouter des éléments du même type les uns avec les autres mais c'est encore moins pratique et ça devient vite confus si on a une phrase complexe à créer heureusement il ya des façons beaucoup plus simple de faire de la concaténation et notamment depuis la version 3.6 de python avec ce qu'on appelle les eft ring af string ça ressemble à ça il suffit de mettre la lettre f devant une chaîne de caractères pour qu'elle soit évaluée comme af string ça va nous permettre notamment d'intégrer des variables et du code python directement à l'intérieur d'une chaîne de caractères pour indiquer à piton les endroits où l'on souhaite intégrer du code et des variables il faut utiliser les accolades et à l'intérieur de ces accolades on peut donc directement indiqué une variable et bitton va se charger d'insérer l'objet a signé à la variable à la place des accolades donc vous voyez déjà que c'est beaucoup plus simple que tout ce qu'on a vu auparavant puisqu'on peut garder une unité dans notre phrase sans avoir à la coupe et à chaque fois avec des symboles d'addition ou des fonctions de conversion le plus beau dans tout ça c'est que vous pouvez à l'intérieur des eft ring vraiment faire tout ce que vous voulez on peut par exemple déclaré deux variables les intégrer directement à l'intérieur de notre chaîne de caractères et effectuer une multiplication elle aussi directement à l'intérieur des accolades vous voyez que dans ce cas ci on n'a même pas besoin d'utiliser les fonctions de conversion python se charge de tout pour nous on n'a donc pas besoin de convertir les nombres en chaîne de caractères on peut les insérer directement dans notre f king quand on souhaite insérer des informations à l'intérieur d'une chaîne de caractères si vous utilisez la version 3.6 ou plus deux pitons vous pouvez utiliser les strings malheureusement en dessous de la version 3.6 cette façon de faire n'est pas disponible et vous devez donc passer par une autre façon de faire notamment la méthode formate que je vais vous montrer dans cette vidéo vous verrez qu'il ya pas mal de similitudes entre les apps tri et la méthode frat-mat c'est un peu plus agréables d'utiliser les eft ring mais il y a quelques cas de figure dans lesquelles la méthode format tu peux avoir un avantage donc cette méthode elle permet d'insérer des objets à l'intérieur d'emplacements qui sont spécifiés dans la chaîne de caractères là encore par des accolades donc à l'intérieur de ces accolades ici je vais indiqué grâce à cette méthode formate que je mais après ma chaîne de caractères donc après les guillemets ici et que je relis par le point eh bien je vais pouvoir indiquer que c'est cette variable h que je veux inséré à l'intérieur des accolades nous n'avons pas besoin de convertir la variable âge en chaîne de caractères comme avec les eft ring la méthode flamatt s'en charge pour nous et nous évite ainsi les erreurs de type on peut également spécifié à l'intérieur de ces accolades un nom qu'on utilisera comme paramètre dans la méthode fort en maths pour obtenir une phrase encore plus clair par exemple ici plutôt que d'avoir des accolades vide je pourrais mettre à émettre à égal à h alors il faut bien faire la distinction ici entre le nom que l'on met à l'intérieur des accolades et la valeur que l'on passe à notre paramètres a ici par exemple si je mettais à j-6 pour que ce soit vraiment clair et qu'on ait une phrase qui veut donc dire un peu plus quelque chose donc j'ai agi en est bien ce mot âge ici il faut bien le distinguer de ma variable âge ici je pourrais mettre par exemple toto et ce toto en fait il correspond à toto ici dans le paramètre et ensuite on a agi si qui dans ce cas ci correspond à ma variable donc au nombre 26 mai je pourrais très bien passée directement un nombre je pourrais mettre 50 ici et ça fonctionnerait de la même façon je ne suis pas obligé de passer une variable il faut bien comprendre ici que le nom qu'on a au début et bien c'est le nom qui est à l'intérieur de notre chaîne de caractères dans les accolades on peut également choisir de ne rien mettre à l'intérieur de ces accolades et dans ce cas ci on va y aller dans l'ordre c'est à dire que si je mets d'autres accolade ici donc je mets une virgule est une autre paire d'accolades est bien là en l'état j'aurai une erreur puisque j'ai deux endroits dans lesquels je peux insérer des informations et je ne passe qu'un seul élément ici donc si j'ai deux paires d'accolades dans ma chaîne de caractère il faut obligatoirement que je passe deux éléments à l'intérieur des parenthèses il y à une exception à cela c'est si vous utilisez des indices donc ce que je peux faire avec ces accolades également qui est très pratique c'est de répéter certaines informations donc si par exemple je veux dire j'ai tant d'années et ensuite dire que ces années se font en sorte que je ne suis pas très vieux donc je peux dire ce n'est pas très âgée comme ceci est donc là en fait je vais pouvoir répéter une information donc si je reprends ma variable agi si je peux la passer une seule fois à l'intérieur des parenthèses et ici je ne veux pas avoir d'erreur et bien je peux mettre un indice ici et dans ce cas ci je vais mettre le même indice donc zéro dans les deux cas et là je n'aurai pas d'erreur est en fait à chaque fois on va utiliser le premier élément qui est passé à cette méthode frat-mat donc là dans ce cas sillage donc vous pouvez comme ça réutiliser un élément qui est passé à cette méthode formate à plusieurs endroits de votre chaîne de caractère avec cet indice on pourrait même inverser l'ordre dans lequel sont envoyés les éléments dans les parents test donc pour ça je vais prendre un autre exemple celui ci donc j'ai un prénom et une variable âge avec une chaîne de caractères et un nombre et en l'état avec des accolades qui sont vides et bien tout ça va être rentré dans l'ordre c'est à dire que les premières accolade vont récupérer la première variable qui est passé et les deuxièmes accolade vont récupérer la deuxième variable mais je pourrais intervertir cet ordre en indiquant des indices donc je pourrais dire 1-0 ici et dans ce cas ci eh bien on aurait la variable prénom qui seraient envoyés ici donc puisqu'on a spécifié 0 donc le zéro va récupérer le premier élément puisqu'on commence à zéro en python et le 1é re est récupéré le deuxième élément donc dans ce cas ci on aurait une phrase qui dirait je m'appelle 26 et j'ai pierre ans donc ça ne sert pas à grand chose mais vous voyez qu'on peut inverser également l'ordre dans lequel sont insérés ces données dans ma chaîne de caractères et on peut également comme je voulais dit réutiliser ces données par exemple en mettant deux fois 0 est là à chaque fois on aurait le prénom qui seraient envoyés dans ces accolades donc ça c'est pour spécifier un indice on a vu qu'on pouvait également mettre un identifiant donc je peux mettre name par exemple ici et dans ce cas là je pourrai spécifié name égale la variable prénom donc là c'est à vous de voir ce que vous préférez si vous préférez mettre uniquement des accolades vide pour gagner un peu de place et après envoyé directement les valeurs ou si vous souhaitez avoir quelque chose d'un peu plus explicite pour qu'on ait une idée un peu plus précise quand on lit cette chaîne de caractère de ce qui va être insérés à l'intérieur des accolades donc pour résumer voici les trois façons de faire qu'on pourrait utiliser en fonction de la version de python qu'on utilise ou de tout simplement vos préférences personnelles donc on a la première façon de faire avec l'opérateur plus on a trois variables ici protocole nom du site extension qui vont au final faire une url donc là j'ai mon url et je vais additionner tout simplement avec le plus les différents morceaux donc on a le protocole https deux points slash flash ensuite j'additionne avec un + la chaîne de caractères www points en ce 8 le nom du site ensuite je remets un plus juste pour le point entre le nom du site et l'extension est ensuite l'extension donc vous voyez qu'on a quelque chose d'assez morcelé heureusement ici on a uniquement des chaînes de caractères donc on n'a pas besoin de faire de conversion mais si jamais on avait un nombre a inséré à l'intérieur de cette structure il faudrait penser à utiliser la fonction string pour convertir ce nombre en chaîne de caractères puisque avec l'opérateur plus on va avoir des erreurs de type si jamais on essaye d'additionner des éléments qui ne sont pas du même type on a ensuite la méthode formate avec la première façon de faire et des accolades vide donc dans ce cas si j'ai une accolade vide au début ensuite ww point une accolade vide le point est encore une accolade vide je fais bien attention de passer trois éléments ici car j'ai trois accolade ici là je ne me suis pas embêtés avec des indices puisque on a vraiment les choses qui sont dans l'ordre donc le protocole le nom du site et l'extension est donc tous ces éléments vont être inséré respectivement à l'intérieur de cette accolade cette accolade et cette accolade et on va se retrouver avec le nom du site au complet donc ça c'est la façon la moins explicites on a une façon un peu plus explicite mais qui vous le voyez prend plus de place mais qui al'avantage d'être un peu plus lisible ici directement en lisant la chaîne de caractères on comprend qu'on commence le protocole qu'on a ensuite le domaine et pour finir l'extension et à la fin ici vous voyez que j'ai passés donc le protocole le domaine et l'extension et vous voyez que les noms ne correspondent pas forcément on a domaine ici et je passe la variable nom du site et à la fin ici je passe même directement une chaîne de caractères sans passer directement la variable extension donc vous voyez que ici on peut passer ce qu'on veut on peut passer des variables on peut passer des objets directement et les noms à l'intérieur de la chaîne de caractères dans les accolades n'ont pas besoin de correspondre au nom des variables que l'on passe ce que l'on voit ici avec domaine et non du site qui ne sont pas les mêmes non l'important c'est de bien avoir le domaine ici qui est égale au domaine et ensuite on passe ce qu'on veut à cenon pour l'insérer dans la chaîne de caractères donc ça c'est la deuxième façon de faire avec la méthode formate et pour finir on a donc la méthode qui est la mieux pour tous les cas de figure c'est si vous pouvez utiliser les eft ring donc là on a à peu près la même chose qu'avec l'url pour la méthode formate sauf que cette fois ci on insère directement les variables protocole nom du site et extension donc là cette fois ci c'est bien les variables directement ce n'est pas un non arbitraire comme on pouvait l'avoir ici c'est vraiment les variables que l'on insère donc là on a bien le nom du site qui est la variable nom du site qui est définie au début et on a tous qui se lit très bien puisque on a donc la même chose qu'avec la méthode frat-mat ici avec le protocole le nom du site et l'extension pour finir tout ça qui est rendue possible bien évidemment parce qu'on a mis le f au début de la chaîne de caractère ce qui fait qu'on a à f string ici donc voilà pour un résumé de ces trois façons de faire avec l'opérateur plus avec la méthode flamatt et pour finir avec les strings si vous utilisez une version supérieure à la version 3.6 de python vous vous demandez peut-être à quoi peut bien servir cette méthode formate vous avez envie probablement d'utiliser tout le temps les strings la plupart du temps en effet les aphtes ring sont beaucoup plus agréable à lire et facile à utiliser que la méthode formate personnellement j'utilise 95% du temps les eft ring mais il reste encore quelques cas de figure dans lesquelles la méthode formate est utile le principal avantage de la méthode formate par rapport aux east wing c'est que vous pouvez définir votre chaîne de caractères à un endroit de votre script et ne l'utilisé que plus tard les eft ring il nécessite que les variables que vous insérez dans votre chaîne de caractères soit disponible immédiatement par exemple je peux définir une variable prénom ici qui est égal à pierre et avoir une phrase ensuite dans laquelle je veux indiquer bonjour pierre donc avec le prénom ici et lui indiquer le nombre de vidéos qu'il a regardé donc cette semaine vous avez regardé et entre accolade j'insère la variable nombre pour dire qu'il a regardé temps de vidéos sauf que cette variable n'est pas encore défini j'ai uniquement défini pierre ici donc forcément si j'appuie sur entrée pour valider là j'aurai une erreur une naïm erreur qui me dit que le nom nombre n'est pas défini donc c'est normal puisque j'ai uniquement définit cette variable la variable prénom donc ça c'est le désavantage de cette façon de faire avec les eft ring c'est que tout ce qui est à l'intérieur df king doit obligatoirement être définies avant que vous utilisiez 7 string ce n'est pas le cas avec la méthode formate avec la méthode formate vous pouvez créer une chaîne de caractères dans laquelle vous souhaitez insérer des variables sans que ces variables ne soit tout de suite défini donc je vais vous montrer un exemple ici je suis dans un fichier que j'ai appelé constanze point.p y dans lequel je vais déclarer certaines variables que je souhaite utiliser à d'autres endroits de mon programme donc j'ai une variable bonjour qui est égal à cette chaîne de caractères et à l'intérieur de cette chaîne de caractères j'ai défini des emplacements avec les accolades à l'intérieur des quatre jeux veut insérer des éléments donc l'âge et le prénom est ici j'ai le nombre de vidéos en l'état comme ce n'est pas un f string ici je n'ai pas mis de f avant les chaînes de caractères et bien je n'aurai aucun problème aucune erreur ces chaînes de caractères vont être correctement définis pareil ici j'ai fait une autre chaîne de caractères que j'ai mis dans la variable au revoir et dans laquelle je souhaite insérez ici un élément que je donnerai plus tard donc si je retourne maintenant dans mon script principal je vais pouvoir utiliser ces variables et inséré des éléments à l'intérieur grâce à la méthode points matt mais à un autre endroit donc de mon script donc voici par exemple à quoi pourrait ressembler mon script mail.pf y donc dans ce script importe ma variable bonjour depuis mon fichier constanta je vais ensuite demandé à l'utilisateur de rentrer son nom imaginons ensuite qu'on ait une fonction qui permet de récupérer la progression hebdomadaire de l'utilisateur donc je récupère cette valeur ici dans une variable progression est bien ensuite je peux utiliser cette méthode flamatt sur ma chaîne de caractères bonjour pour remplacer dans les accolades là où j'ai mis prénom le nom de l'utilisateur et là où j'ai marqué nombre vidéo la progression de l'utilisateur quand on a récupéré juste au dessus et ensuite je fais un print de ce message de bienvenue donc vous voyez que dans ce cas ci ça permet de déclarer des variables avec des chaînes de caractères et des éléments que l'on veut insérer autre part et de réutiliser ces chaînes de caractères en insérant différents éléments à différents endroits de notre script par la suite donc la méthode flamatt n'est pas totalement inutile dans un cas comme celui ci on ne peut pas s'en passer et on est obligé de l'utiliser on ne peut pas tout le temps donc utiliser les strings donc retenez bien ça les strings c'est bien pour 95% des cas mais parfois on va pouvoir utiliser formate pour des cas comme celui ci que je viens de vous montrer dans ce projet vous allez devoir créer une calculatrice très simple qui va se contenter d'additionner de nombres qui vont être entré par l'utilisateur donc je vais vous montrer à quoi doit ressembler le script au final donc je lance mon script on me demande d'entrée un premier nombre je vais rentrer le nombre 5 on me demande ensuite d'entrée un deuxième nombre je vais mettre le nombre de dix et une fois que j'appuie sur entrée on ma fiche la phrase qui indique que le résultat de l'addition de 5 avec 10 donc les deux nombres que j'ai rentré est égal à 15 donc je peux faire ça avec n'importe quel nombre si je rende par exemple 234 plus 938 je vais avoir le résultat de l'addition de 234 avec 938 est égal à 1172 donc on ne gère que l'addition on a deux nombres à rentrer vous pouvez vous amuser à en faire plus si vous le souhaitez ou à changer le type d'opération ici l'importance vraiment juste de demander des informations à l'utilisateur et ensuite de les traiter pour les afficher à l'intérieur d'une chaîne de caractères à la fin du script donc voilà pour l'énoncé de ce projet de la calculatrice vous avez toutes les clés en main est donc bonne chance pour réaliser ce script voilà donc ma solution pour ce projet de calculatrices dans lequel vous deviez demander à l'utilisateur de saisir de nombre et ensuite afficher le résultat de l'addition de ces deux nombres ensemble donc la première chose à faire c'est de demander à l'utilisateur de saisir de nombre pour ça on utilise la fonction input et on va récupérer ce que rentrer l'utilisateur dans deux variables ces variables je vais les appeler tout simplement a et b mais on pourrait les appeler x ou y ou même toto et patrick ça fonctionnera de la même façon donc je vais créer une première variable à qui va être égal à input et à l'intérieur de l'input je vais taper la phrase que je veux affiché donc dans ce cas ci je vais dire input entrer un premier nombre donc ça c'est la phrase qui va être affiché à l'utilisateur je n'oublie pas de mettre des guillemets pour bien que ce soit compris comme une chaîne de caractères et je récupère donc le résultat de ce que va saisir l'utilisateur dans une variable que j'ai appelé ici à on va faire la même chose avec une variable b donc je vais à la ligne et je fais une autre variable b qui va être égale à une poutre et je vais entrer un deuxième langue donc entrer un deuxième nombre de points jeux mais également un espace à la fin de la chaîne de caractères pour que la saisie de l'utilisateur soit bien séparée de la phrase ne soit pas coller directement aux deux points c'est un détail mais je tiens à le préciser et ensuite on va afficher avec un print le résultat de l'addition de ces deux variables donc à la ligne je vais faire un print et à l'intérieur de ce prime je vais créer ce qu'on appelle un f string donc le et string ça va me permettre de faire une chaîne de caractères dans laquelle je vais insérer les informations donc je commence en mettant un f et j'ouvre légumes est donc le f au début de la chaîne de caractères avant les guillemets me permet de spécifier que cette chaîne de caractères est un instrument si je ne mets pas le f je ne pourrais pas inséré deux variables à l'intérieur de cette chaîne de caractères donc je vais tout simplement dire que le résultat de l'addition de et là je vais insérer une variable donc je vais insérer le nombre à qui a été rentré par l'utilisateur donc là je vais mettre une accolade comme ceci est à l'intérieur de l'accolade je vais mettre la variable a donc là cette variable à à l'intérieur des accolades elle va être remplacée par ce qu'a saisie l'utilisateur donc si l'utilisateur il rentre 5 ça va afficher le résultat de l'addition de 5 on va continuer avec b donc là encore on met des accolades et à l'intérieur des accolades jeu mais la variable b et on va continuer avec l'addition donc en disant que ces deux variables sont égales et là on va utiliser la fonction int donc int qui va nous permettre de convertir la variable à en nombre puisque la fonction input elle va systématiquement nous retourner une chaîne de caractères donc si je rentre le nombre 5 on va avoir une chaîne de caractères qui contient le nombre 5 le problème si on ne convertit pas la variable à est la variable b en nombres entiers avec la fonction int c'est qu'on va additionner deux chaînes de caractères ensemble donc si j'entre par exemple 5 et 10 on va se retrouver avec la chaîne de caractères 510 donc la chaîne de caractères 5 avec la chaîne de caractères 10 additionnez ça va tout simplement les maîtres boutabout l'une après l'autre et donc on va avoir cinq cent dix au lieu du nombre 15 donc c'est pour ça qu'il faut convertir ces variables en integer donc en nombres entiers avec la fonction int donc on va faire la même chose pour b en disant plus int 2 b et enferme l'accolade ici pour terminer ici notre bloc donc voilà pour la phrase au complet on a le f tring qui nous permet d'utiliser ici les accolades pour insérer des variables on peut même faire beaucoup plus que juste insérer des variables vous voyez qu ici qu'à l'intérieur de ce bloc d'accolades on va même faire des opérations donc on va convertir notre variable à et notre variable b en nombres entiers et on va additionner ces deux variables ensemble donc on affiche que le résultat de l'addition de par exemple 5 avec par exemple 10 est égal à 5 ici en nombre plus 10 en nombre ce qui nous donnerait le nombre 15 donc normalement ça fonctionne je sauvegarde tout ça je lance le script en cliquant ici en haut à droite on nous demande d'entrée un premier nombre donc je vais entrer le nombre 8 par exemple un deuxième nombre je vais rentrer 13 et là on a bien le résultat de l'addition de 8 avec 13 qui est égal à 21 je vais vous montrer juste si j'enlève les int ici donc comme je voulais dit précédemment si je relance mon script et que je refais la même chose avec 8 et 13 on ne va pas avoir le calcul de 8 + 13 mai bien en fait ces deux nombres ici qui vont être mis bout-à-bout puisque sans la conversion en nombre entier on a deux chaînes de caractères ici et quand on additionne deux chaînes de caractères avec python eh bien il fait juste les mettre bout à bout donc ça c'était la petite particularité de ce projet ici c'est de bien penser à convertir ces nombres en nombre entier on pourrait bien entendu faire la conversion directement à ce niveau ici donc par exemple m int 2 input et l'appareil hint de input ça fonctionnerait de la même façon et on pourrait enlever cette conversion ici donc ne pas convertir dans la chaîne de caractères directement mais directement au niveau de notre fonction input donc là je vais vérifier que ça fonctionne avec vous je relance le script entrer un premier nombre je rentre 6-3 et là on a bien si ces trois qui sont égales donc à neuf donc ça fonctionne de la même façon on peut le mettre ici ou dans la chaîne de caractère et on aura à chaque fois le même résultat donc voilà pour la correction de ce projet avec une calculatrice très basique qui nous permettait d'additionner de nombreux avec les structures conditionnelle on entre vraiment dans le coeur de ce qui constitue la programmation j'ai nommé l'algorithmie alors derrière ce terme blizzard se cache tout simplement la notion de logique jusqu'à présent no script qui sont en effet pas très intelligent on leur demande d'afficher une phrase ils l'affichent sans se poser la moindre question après cette section tu vas être en mesure de créer des programmes qui vont réagir différemment en fonction des circonstances on pourra par exemple refuser l'accès à notre script si l'utilisateur ne rentre pas le bon mot de passe cette partie elle est très intéressante car c'est vraiment avec les structures conditionnelle qu'on va pouvoir commencer à faire des scripts vraiment plus poussée et en plus avec python et sa syntaxe épuré c'est simple comme bonjour enfin on en reparle quand même une fois que vous aurez terminé tous les quizz et les exercices de cette partie les structures conditionnelle elles vont nous permettre de tester une condition pour pouvoir effectuer une action ou non en fonction des résultats de ce test donc pour vous donner quelques exemples voici trois conditions que l'on pourrait tester qui sont des cas concrets sur lesquels vous pourriez tomber dans votre travail le nombre d'entrées par l'utilisateur est il plus grand ou égale à 18 le nom d'utilisateur entrée est il dans la base de données du site et le mot de passe de l'utilisateur contient-il au moins lui caractère vous remarquerez que l'on peut répondre à ces trois questions par oui ou par non il n'y a pas de place au doute et si vous vous souvenez de la partie précédente ça devrait vous rappeler quelque chose en effet une condition quand elle va être évaluée va obligatoirement nous retourner un boulet donc un boulet un comme on l'a vu précédemment c'est soit vrai soit faut donc c'est grâce à ça qu'on va pouvoir décider si oui ou non notre script doit effectuer une action en fonction du résultat que va nous retourner une condition si on reprend les exemples que je vous ai donné tout à l'heure on va pouvoir traduire ces cas concrets en ligne de code qui vont nous retourner un boulet 1 on retrouve ici dans certains cas les opérateurs de comparaison que l'on a vu dans la partie précédente donc dans la prochaine partie on va voir comment utiliser ces conditions pour exécuter une action en fonction du résultat qui nous est retournée pour tester une condition on va utiliser le mot if alors ça n'a rien à voir avec l'arbre if ça veut dire si en anglais alors ce mot on ne va pas l'utiliser tout seul on va l'utiliser avec une condition si la condition et vérifiez donc si elle est égale à un boulet un trou alors on exécute le code associé à la structure conditionnelle avec du code python ça ressemble à ça on déclare une variable qui est égal à 20 on teste ensuite si la variable et plus grande ou égale à 18 grâce à un opérateur de comparaison si la condition est vérifiée python affiche la phrase vous êtes majeur c'est le cas ici puisque 20 est plus grand que 18 si la condition n'est pas vérifier le code n'est pas exécutée et pitt on affiche tout simplement rien maintenant qu'on a vu un exemple concret je vais vous parler de la syntaxe des structures conditionnelle déjà très important on doit impérativement ajouté deux points à la fin de la ligne qui contient le if ensuite vous avez probablement remarqué que la ligne qui contient la fonction print n'est pas au même niveau que le vif c'est tout à fait normal c'est ce qu'on appelle un bloc d'instruction et dans la prochaine partie je vais vous expliquer la raison de ce blog d'instruction dans quels cas on va en rencontrer et à quoi ils servent alors la plupart des langages de programmation contiennent ce qu'on appelle des blocs d'instruction ces blocs regroupe une ou plusieurs lignes de code qui sont exécutés dans un contexte particulier ces blocs d'instruction apporte une notion d'appartenance d'une ou plusieurs lignes de codes à d'autres lignes de code par exemple avec les structures conditionnelle le bloc d'instruction composée de la fonction print ici appartient à la structure conditionnelle de la ligne au-dessus avec python contrairement à presque tous les autres langages de programmation les blocs d'instruction sont définis par la mise en page par exemple avec javascript vous voyez que la syntaxe est tout de suite un peu plus lourde on a quand même des retours à la ligne et des incantations mais c'est vraiment uniquement pour que le code reste facilement lisible dans la pratique on pourrait tout condensé en une ligne et ça fonctionnerait aussi c'est à la fois donc un avantage et un inconvénient parce que la syntaxe est plus lourde avec des parenthèses des accolades des points virgules mais elle permet aussi d'avoir un code qui est un peu plus permissif avec python c'est la mise en page de notre code qui va indiquer ces blocs d'instruction c'est avec l'indentation que l'on va indiquer qu'une ligne de code est dépendante d'une autre ça a là aussi des avantages et des inconvénients mail avantage principal c'est que la syntaxe est grandement allégée l'autre élément qui indique le début d'un bloc d'instruction ce sont les deux points que l'on met à la fin d'une ligne quand vous voyez ces deux points vous pouvez être assurés que les lignes qui suivent vont être un dante et les blocs d'instruction ils peuvent également s'imbriquer les uns à l'intérieur des autres les lignes de code au même niveau d'un dans ta tion appartiennent donc aux mêmes blocs d'instruction la ligne avec la fonction print et la ligne avec la structure conditionnelle if langage égale python ne seront exécutés que si la variable âge et plus grande ou égale à 18 de même le dernier print qui indique vous pouvez rentrer ne s'exécutera que si la variable âge et plus grande ou égale à 18 et que la variable langage est égal à piton al'inverse la dernière ligne s'exécutera peu importe la valeur de la variable âge est la variable langage vu qu'elle est au premier niveau d'un entation elle ne dépend d'aucune lignes de code alors attention une tabulation doit être justifiée comme on l'a vu après une structure conditionnelle on met une incantation pour indiquer que les lignes de code ne seront exécutés que si la condition est vrai on verra d'autres cas de figure dans les prochaines parties dans lesquelles les annotations sont nécessaires au bon fonctionnement du code il faut donc bien faire attention aux endroits où l'on met des indes entation par exemple le code suivant n'est pas valide ici aucune raison de rajouter une implantation pour le 2ème print il n'est rattachée à aucune structure conditionnelle ou autre structure qui puisse indiquer une appartenance si vous essayez d'exécuter ce code dans un interpréteur python vous aurez une erreur qui porte bien son nom et qui indique que votre code comporte une incantation inattendue dans les parties précédentes on a vu comment tester une condition avec le mot ifs dans cette partie on va voir son petit frère le mot et leaf qui permet de vérifier plusieurs autres conditions à l'intérieur d'une même structure conditionnelle alors temps jeudi à l'intérieur d'une même structure c'est parce que l ihf ne peut pas être utilisée sans un if au préalable elif on va l'utiliser dans le cas où notre script peut faire face à plusieurs conditions par exemple dans le cas où on veut vérifier l'âge de quelqu'un la personne peut être majeur ou mineur vous voyez ici conteste deux conditions la première condition sera réalisée si la variable âge et plus grande ou égale à 18 la deuxième condition quant à elle sera réalisée si la variable âge est plus petit que 18 on commence donc à avoir un script qui va pouvoir réagir différemment en fonction de ce que contiennent nos variable et c'est là toute la base de la programmation et de ce qu'on appelle les algorithmes donc si on prend un exemple avec une variable âge qui est égal à 20 python va comme toujours exécuté notre script ligne par ligne arrivé à la première condition et l'évaluer dans ce cas ci la condition est vrai qu'à rage est égal à 20 et donc plus grand que 18 le script va donc affiché est la phrase vous êtes majeur si on prend le même exemple avec cette fois ci la variable âge qui est égal à quinze python va faire la même chose c'est-à-dire évaluer notre script ligne par ligne sauf que cette fois ci la variable âge n'étant pas supérieure ou égale à 18 la condition sera fausse le print vous êtes majeur ne sera donc pas exécuter et python va passer à la deuxième condition à vérifier avec le l ihf cette fois ci la condition est vrai est donc la fonction print associé au bloc elif va être exécuté notre programme va donc afficher la phrase vous êtes mineur avant de clore cette partie je veux juste m'assurer que vous compreniez bien la syntaxe de cette structure conditionnelle là encore c'est vraiment la mise en page qui indique à piton comment gérer chaque ligne de code et de fonctions primes sont associés respectivement à la condition ifs et la condition elif grâce à l'implantation donc c'est vraiment ça qui va faire que nos lignes vont associer les unes aux autres et c'est comme ça qu'on va créer des structures conditionnelle avec plusieurs conditions dans cette partie on va voir le dernier composant que l'on peut ajouter à une structure conditionnelle ce composant c'est le moël ce qui signifie sinon en anglais elle ça nous permet d'exécuter un bloc de code au cas où aucune des conditions précédemment énoncés ne sont vraies là encore tout comme elif vous ne pouvez donc pas utiliser health tout seul il faut obligatoirement que vous ayez au moins une condition pour pouvoir utiliser health dans ce cas ci on a un code qui va vérifier si le nom d'utilisateur entrée est égal à admin si c'est le cas on laisse l'utilisateur rentrée et sinon on lui dit que l'accès est refusé le health ici nous permet donc de gérer tous les cas de figure autre que celui autorisé peu importe ce que contient la variable utilisateurs si ces différentes de admin la condition if n'est pas vérifiée et le health sera donc exécuté si on regarde un exemple complet cette fois ci avec les trois mots clés qui peuvent constituer une structure conditionnelle ça nous donne ça on a là encore un nom d'utilisateur qui est définie au début on va ensuite testé le cas où l'utilisateur est égal à admin ici c'est le cas donc on affiche accès autorisé si on reprend le même exemple avec cette fois ci un nom d'utilisateur différents on va commencer par vérifier donc si l'utilisateur est égal à admin cette fois ci ce n'est pas le cas donc on n'exécute pas le premier print on va ensuite testé ici utilisateur est égal à route ici c'est le cas donc on va encore afficher accès autorisé maintenant troisième et dernier cas de figure on a un utilisateur qui n'est ni admin nil août on va donc encore une fois vérifié les deux premières conditions utilisateur n'est pas égal admin donc on passe l'utilisateur n'est pas non plus égale à route donc on passe encore une fois et on se rend donc aux hells qui va récupérer tous les autres cas de figure et le script va afficher accès refusé au niveau de la syntaxe on peut difficilement faire plus simple vous n'aurez jamais besoin de spécifier une condition après elle puisque le but même de l c'est justement de récupérer toutes les conditions qui n'auraient été vérifiées avec un if ou un elif au préalable il suffit donc juste de ne pas oublier les deux points comme avant chaque bloc d'instruction pour signifier à piton que le code qui va suivre est rattachée aux hells dans cette partie on va voir un concept qu'on appelle les opérateurs ternaire les opérateurs ternaire ça va nous permettre de simplifier une structure conditionnelle pour la mettre sur une seule ligne donc on reprend ici l'exemple que l'on avait au tout début de la formation qui nous permet de définir une valeur dans la variable majeure en fonction de la valeur contenus dans la variable h donc si l'ag plus grand ou égale à 18 majeurs est égal à chew sinon c'est égal à falls donc vous voyez que dans ce cas si seulement pour assigner une valeur à une variable on a quatre lignes de code donc quatre lignes de code pour une structure conditionnel ça fait beaucoup et y'a moyen de simplifier sa avec donc un opérateur ternaire qui va nous permettre de passer de ces quatre lignes à une seule ligne comme ceci donc vous voyez qu'on a exactement la même structure conditionnelle avec l'oif et le health mais cette fois ci de la même façon qu'on ferait une assignation de variables on a d'un côté la variable majeure et de l'autre côté donc l'opérateur ternaire on a donc tous sillage et plus grand ou égale à 18 sinon force donc tout ça ça tient sur une ligne donc ça fait moins de code à écrire et c'est même je trouve plus facile à lire quand on regarde le code alors attention puisque ça ça ne fonctionne qu'avec une structure conditionnelle de type if health vous n'avez pas de if he leaf ou de if hell in health et heureusement puisque ça deviendrait un peu long à écrire et c'est vraiment dans le cas où on a juste une assignation d'une valeur dans une variable donc si vous aviez une structure conditionnelle avec plusieurs conditions à l'intérieur là aussi ça ne marcherait pas c'est vraiment dans ce cas ci on a un if et 1 else avec une valeur si la condition est vérifiée sinon une autre valeur et ça fonctionne très bien comme ça donc également il ne faut pas oublier de mettre le health puisqu'on fait une assignation de valeur donc si vous mettez juste choueifat plus grand régal à 18 et bien si la condition âge plus grand ou égale à 18 n'est pas vérifiée pitt on ne pourra pas deviner quelles valeurs il doit mettre à l'intérieur de majeur on pourrait penser que par défaut il mettrait nonnes mais ce n'est pas le cas si vous ne mettez pas le health dans ce cas ci vous aurez une erreur donc il faut bien penser à mettre le vif et le health faites bien attention aussi de ne pas trop abuser de cette structure puisque ça peut devenir assez long joie des gens des fois qu'ils font des opérateurs ternaire qui sont longs comme le bras et là ça devient en fait assez difficile à comprendre essayer de garder ça pour des structures conditionnelle qui sont assez simples et si vous voyez que ça commence à devenir assez compliqué bien là dans ce cas ci je trouve que c'est en fait préférable de passer par une structure conditionnelle classique mais dans un cas comme celui-ci avec juste une condition rapide et deux valeurs donc comme la toux et falls on pourra mettre n'importe quoi un génie un boulet un mais ça pourrait être bien sûr d'autres valeurs et bien dans ce cas ci je trouve que l'opérateur ternaire est parfaitement indiqués donc voilà pour cette petite notion qui généralement vous fait gagner pas mal de temps et qui comme je vous le disais rend le code je trouve en tout cas beaucoup plus facile à lire un autre type d'opérateurs qui va nous être très utile pour les structures conditionnelle ce sont les opérateurs logique alors il n'y en a que trois ce sont les opérateurs end et nat alors en français end ça veut dire et ça veut dire ou es note ça veut dire pas donc ces opérateurs ils vont nous permettre d'associer plusieurs conditions ensemble pour l'instant à l'intérieur de nos structures conditionnel on a en effet vérifier qu'une seule condition par ligne donc par exemple pour vérifier deux conditions vous avez peut-être essayez ceci alors ça fonctionne on peut parfaitement un briquet de structures conditionnelle et python ne nous retournera pas d'erreur mais le problème c'est que ça devient vite difficile à lire notamment à cause des niveaux d'un dans ta tion successifs à la place on va pouvoir utiliser un opérateur logique pour regrouper ses deux conditions en une seule avec le mot end vous voyez que l'on peut ainsi regrouper deux conditions sur une seule ligne pour les évaluer en même temps ici le print ne sera effectuée que si le nom d'utilisateur et le mot de passe contiennent la chaîne de caractères admin avec end il faut que toutes les conditions soient vrais pour que la structure conditionnelle soit exécutée par exemple avec ces deux conditions cinq plus grands que 2 et 5 plus petit que disent les deux conditions sont vrais et donc ça revient à la même chose que si l'on écrivait to end ch ou si on rajoute une troisième condition donc cinq plus grands que 15 qui elle est fausse on va se retrouver avec choo end-to-end falls dans ce cas ci la condition ne sera donc pas vérifié car avec end il suffit qu'une seule des conditions soient fausses pour que la ligne entière soit fausse si on veut que le résultat de ces trois conditions soient considérés comme vrai on peut remplacer le m end par un hall quelque chose de très important à savoir c'est que python va évaluer ces opérateurs dans un ordre particulier de ces deux opérateurs c'est le hand qui est le plus fort et qui va donc être évalué en premier python va donc déjà vérifié le résultat des conditions qui sont reliés par cet opérateur end alors dans ce cas ci les deux conditions sont vraies donc le résultat de ces deux conditions sera choo la dernière condition elle est fausse donc au final cette ligne python valent à comprendre comme un simple choo or falls il suffit qu'une seule des conditions soit vrai pour que l'ensemble des conditions soit vrai on pourrait avoir autant de force que l'on veut un seul choo suffit à rendre la condition vrai donc pour vous résumer tout ça j'ai fait des petits tableaux que vous pourrez télécharger avec cette cession pour les avoir avec vous quand vous aurez affaire à des opérateurs logique donc vous voyez ici avec end que c'est seulement à la première ligne quand toutes les conditions sont vrai que le résultat est vrai les trois autres lignes on a au moins une condition qui est faux c'est donc le résultat est obligatoirement faut lui aussi avec rôle si au moins une des conditions est vrai le résultat est vrai pour que le résultat soit faux avec or il faut que toutes les conditions soient fausses comme à la dernière ligne je vous ai dit il ya quelques instants que l'opérateur end était prioritaire sur l'opérateur orange vous avez cependant un moyen de spécifier à piton la priorité des opérations alors ça va être exactement la même chose que dans vos cours de maths on va en fait utilisé les parenthèses donc les parenthèses on nous permettre par exemple ici de dire que la condition 5 plus petit que dit ce doit être évaluée avec le hall de la condition cinq plus grands que kent dans ce cas-ci python va donc déjà vérifié ces deux conditions donc là on a cinq plus petit que dit ce qui est vrai et cinq plus grands que 15 qui est faux et comme on l'a vu il y à quelques instants tout en le false ça retourne choo on se retrouve donc avec une opération qui va être évaluée comme true and choo comparativement à l'exemple précédent sans les parenthèses où l'on se retrouvait avec choo henry falls il reste un opérateur logique dont je ne vous ai pas encore parlé c'est l'opérateur note alors lui il va être beaucoup plus simple à utiliser que les précédents note savvas tout simplement nous retourner l' inverse de ce qu on lui donne donc notre chouchou savent être égal à foils et note falls ça va être égale à tous alors comme ça vous ne voyez pas forcément l'intérêt de cet opérateur donc je vais vous montrer un exemple concret dans lequel on pourrait être amené à utiliser note donc on revient avec notre exemple dans lequel on vérifie si le nom d'utilisateur est égal à admin sauf que cette fois ci on va vérifier la condition inverse avec note donc en français ça revient à dire que si l'utilisateur n'est pas égal à admin alors on affiche le texte accès refusé donc c'est juste un moyen vous voyez d'inverser une condition plutôt que de vérifier si l'utilisateur est égal à admin on vérifie qu'il n'est pas égal à admin ça nous permet ainsi rapidement de refuser l'accès à toutes les personnes non autorisées donc ça fait beaucoup d'informations d'un coup c'est pas forcément très clair pour vous pour l'instant donc n'hésitez pas à re voir cette vidéo plusieurs fois pour bien comprendre tous ces concepts et dans les prochaines parties de toute façon vous allez retrouver plein de quiz et d'exercices qui vont vous aider à maîtriser ces opérateurs logique comme à la fin de chaque section on va s'intéresser aux erreurs les plus courantes que les étudiants rencontre avec les structures conditionnelle la première erreur que je vois tout le temps c'est le fait de ne pas utiliser le bon symbole pour vérifier l'égalité alors je vous laisse quelques secondes pour regarder ces lignes et essayer de voir ce qui ne va pas alors si vous avez bien regardé les vidéos précédentes vous aurez tout de suite remarqué que le symbole d'égalité n'est pas le bon avec python pour vérifier l'égalité il faut utiliser deux fois le symbole d'égalité si vous ne faites pas ça votre script ne va pas simplement mal vérifier la condition mais carrément vous retourner une erreur de syntaxe car le symbole égale est utilisé pour l'affectation des variables et vous ne pouvez pas faire d'affectation à l'intérieur même d'une structure conditionnelle une autre erreur que je vois souvent c'est d'utiliser plusieurs if à la place des halles ifs dans ce cas ci la variable âge vérifie les trois conditions toutes les structures conditionnelle vont donc être exécutée alors dans certains cas c'est ce qu'on veut on pourrait vouloir que les trois phrases sa fiche mais si vous ne voulez pas que ce soit le cas il faut bien faire attention d'utiliser elif à la place des ifs pour que toutes les conditions soient attachés à la même structure conditionnelle dans la même idée on à l'erreur qui consiste à penser qu'un elle peut appartenir à plusieurs ifs dans ce cas de figure le dernier health n'appartient qu'aux y fait directement au dessus de lui pour bien comprendre on va se mettre à la place de l'interpréteur python pour regarder ce qu'il se passe quand on exécute ce code on commence par définir une variable note qui est égal à 5 jusque là tout va bien on vérifie ensuite si la variable note est plus petit que 10 c'est le cas donc on affiche vous n'avez pas la moyenne là encore jusqu'ici pas de surprise on vérifie ensuite si la variable notes et plus grande ou égal à 10 est plus petit que 14 cette fois ci ce n'est pas le cas donc on n'affiche rien on se rend ensuite au troisième ifs et on vérifie si la note est supérieure ou égale à 14 est plus petit que 19 ce n'est pas le cas et comme la condition n'est pas vérifiée il va donc allait s'empresser d'exécuter le code contenu à l'intérieur du bloc d'instruction elle ce python va donc afficher la phrase vous êtes le meilleur vous conviendrez que pour quelqu'un qui a une note de 5 sur 20 ce n'est pas très approprié la bonne façon de faire est donc de remplacer les ifs par des hélices afin que toute cette structure conditionnelle soit comprise par pitons comme un seul but ainsi le health ne sera exécutée que si les trois conditions précédentes ne sont pas vérifiées comparativement aux codes précédent où il suffisait que la dernière condition ne soit pas vérifié pour que le health soit exécuté dans ce cas si le script n'affichera vous êtes le meilleur que si la variable note est strictement supérieur à 19 pour finir comme à chaque fois sur les parties où je vous montre les erreurs courantes à éviter je vous invite à m'envoyer vos erreurs ou aller poster directement dans les questions et réponses de la formation afin que je puisse les ajouter à cette vidéo pour en faire profiter tout le monde et éviter aux autres de tomber dans les mêmes écueils des erreurs dans ta carrière de programmeurs tu va en rencontrer beaucoup il est donc important de connaître les différents types d'erreurs que python peut nous retourner et dans quelles situations elles peuvent arriver dans les prochaines parties je vais donc te présenter trois types d'erreurs que python peut nous retourner les erreurs de syntaxe les erreurs d'exécution et les erreurs sémantique et ne t'en fais pas tout le monde fait des erreurs moi même ça fait maintenant plus de sept ans que je code avec python et il m'arrive toujours d'en faire car la programmation ça ne pardonne pas et l'erreur elle elle est humaine les erreurs de syntaxe c'est celle que vous allez probablement le plus rencontrés dans la phase d'apprentissage d'un langage de programmation peu importe le langage que vous utilisez aucune erreur de syntaxe ne vous sera pardonné une erreur de syntaxe arrive si comme son nom l'indiqué vous ne respectez pas la syntaxe de python cela peut-être parce que vous avez oublié une majuscule à un mot oublié un point quelque part ou rajouter une virgule en trop à un autre endroit on verra plus loin dans cette partie les fautes de syntaxe les plus courantes que vous allez probablement commettre mais avant ça on va juste prendre quelques minutes pour voir à quoi ressemble une erreur en python une erreur de syntaxe vous en avez une devant vous ici le problème c'est qu'on a écrit le mot fort avec une majuscule alors qu'il faut l'écrire tout en minuscule la première ligne nous indique le fichier et la ligne à laquelle se trouve l'erreur donc si le fichier indiqué et comme ici st jean ça veut dire qu'on est dans un interpréteur python comme idol qu'on a utilisé au début de la formation si vous exécutez votre script à partir d'un fichier sauvegardé sur votre disque dur vous aurez à la place de st d in le chemin complet vers le fichier qui contient l'erreur lite on nous indique ensuite la ligne qui a provoqué l'erreur vous remarquez également qu'un accent circonflexe nous indique l'endroit précis dans la ligne qui a provoqué l'erreur alors vous voyez dans ce cas ci l'accent circonflexe ne nous indiquent pas le fort qui est le mot fautif mais la variable i qui est définie après et qui elle ne pose pas problème c'est normal l'accent circonflexe que nous indiquant fait pas le mot qui a causé les rangs tant que tel mais plutôt l'endroit jusqu'où l'interpréteur python s'est rendu l'interpréteur pid on s'est donc arrêté juste après le fort qui a causé les erreurs de syntaxe il faut donc généralement regarder juste avant l'accent circonflexe pour repérer ce qui a vraiment causé l'erreur et pour finir on à la dernière ligne qui nous indique le type d'erreurs et un petit descriptif de l'erreur en question on voit bien ici qu on est donc en présence d'une erreur de syntaxe maintenant qu'on a vu à quoi ressemblait une erreur de syntaxe je vais passer à travers les erreurs de syntaxe les plus courantes que vous allez probablement faire tout au long de votre apprentissage de python on va d'abord avoir les erreurs de casse donc ce qu'on appelle la casse en informatique c'est le fait de distinguer les majuscules et les minuscules dans un mot par exemple ici le mot fort et le motif qui tous deux contiennent une majuscule ces deux mots s'écrivent entièrement en minuscules au risque de se retrouver avec une erreur de syntaxe de la part de python donc il faut toujours faire attention à l'orthographe des mots vient ensuite le bli des deux points avant un blog d'instruction ou encore plus son nom à l'utilisation d'un point virgule à la place des deux poings dans certains langages de programmation en effet on utilise les point virgule à la place des deux points ce qui peut porter à confusion c'est le symbole que l'on pourrait qualifier de superflu avec python vu sa syntaxe en général très épuré qui a beaucoup recours à l'importation donc il est très courant de voir cet oubli dans le script des débutants une autre erreur assez difficile à comprendre pour les débutants c'est l'utilisation de mots réservés notamment lors de la déclaration de variables quand on débute on n'est pas au courant de tous les maux réservé par pitons et donc ça arrive qu'on essaie d'affecter une valeur à une variable qui utilise un nom réservés je vais vous fournir après cette partie une liste des mots réservé par pitons pour que vous puissiez vous y référer si jamais vous avez une erreur de syntaxe lors de la déclaration d'une variable alors que tout vous semble correct pour finir on a les oublie cette fois ci des guillemets donc c'est aussi une erreur que je vois souvent et qui devrait vous est indiquée par la coloration syntaxique de votre éditeur de texte vous remarqué ici que la parenthèse est de la même couleur que la chaîne de caractère ce qui devrait donc vous mettre la puce à l'oreille quant au fait que votre chaîne de caractères n'est pas terminée et qu'il manque donc un gi mais quelque part donc je vais m'arrêter là parce que des erreurs de syntaxe vous pouvez en faire des centaines donc je vous ai montré dans cette partie les principales erreurs que j'ai vu au fil des années depuis que je donne des formations en personne ces quatre types d'erreurs qu'on vient de voir constitue facilement 95% des erreurs de syntaxe que j'ai pu voir donc si jamais vous avez une erreur de syntaxe et bien référez vous à cette partie est la partie suivante afin de pouvoir vous y retrouver et si même après ça vous ne trouvez pas l'erreur est bien n'hésitez pas à demander de l'aide dans les questions réponses de la formation pour que l'on vienne à votre rescousse les erreurs à l'exécution qu'on appelle runtime erreur en anglais sont des erreurs qui vont arriver lors de l'exécution d'un programme contrairement aux erreurs de syntaxe qui ne vous permettent même pas d'exécuter votre script les erreurs à l'exécution peuvent arriver un peu n'importe quand vous pouvez très bien avoir un programme qui semble fonctionner la majorité du temps et vous retrouvez avec une erreur d'exécution dans une situation qui n'arrive que très rarement et que vous n'aviez pas prévu une fois qu'on devient habitué à piton et qu'on ne fait plus beaucoup d'erreurs de syntaxe c'est généralement ce type d'erreurs avec les erreurs de logique que l'on passe notre temps à déboguer comme dans la partie précédente je vais donc vous montrer des erreurs d'exécution les plus courantes qui risque de vous arriver alors ça c'est vraiment l'erreur que je vois le plus souvent avec python vous ne pouvez utiliser que des choses qui sont connues par pitons dans cet exemple on essaye d'afficher la variable bonjour mais cette variable n'est défini nulle part dans notre script et donc pitt on ne sait que faire avec il ya certains mots qui sont connues de python sans qu'on ait besoin de les définir ses mots ce sont tous les maux réservé que l'on a vu dans la partie précédente et qu'il faut faire attention de ne pas définir par exemple si on fait un print du mot taille aps vous voyez que python ne nous retourne dans ce cas si aucune erreur c'est logique puisque taipei est une fonction de base deux pythons et donc c'est un mot connu mais mises à part ces mots connus par pitons tout autre variable ou valeurs que vous essayez d'utiliser et qui n'est pas défini dans votre script auparavant vous retournera une erreur de type name erreur vous remarqué par la même occasion que dans le cas des erreurs à l'exécution python est un peu plus précis que pour les erreurs de syntaxe dans le cas des erreurs de syntaxe python de retourner toujours la même erreur à savoir syntax error qui veut dire erreurs de syntaxe en anglais ici vous voyez que l'erreur ne s'appelle pas tout simplement runtime mais name et les erreurs à l'exécution peuvent être très nombreuses et python nous aide beaucoup en nous indiquant le type d'erreur qui nous arrive dans ce cas-ci nijmegen signifie qu'on utilise un nom de variables qui n'est pas défini ensuite on a les erreurs de type alors c'est probablement l'erreur que vous avez rencontré le plus souvent jusqu'à présent c'est une erreur qui arrive quand on essaye d'utiliser une fonctionnalité de python sur une variable du mauvais type ici on essaie de réaliser une concaténation avec le symbole plus sur des variables de types différents kits on ne nous le permet pas on a vu plusieurs fois dans les parties précédentes qu'on ne peut qu'ajouter ensemble des variables du même type et on se retrouve donc avec cette erreur donc c'est tout pour l'instant là encore je ne vais pas vous énumérer toutes les erreurs à l'exécution qui existent les erreurs ne sont à ce stade de la formation les deux types d'erreurs que vous avez dû rencontrer et que vous rencontrerez le plus souvent on aura l'occasion dans la suite de la formation de rencontrer d'autres erreurs à l'exécution sur des notions que l'on n'a pas encore vu ensemble donc ne vous inquiétez pas on est malheureusement loin d'en avoir fini avec les erreurs pour les erreurs sémantique ça va être un peu plus difficile de vous montrer des exemples on appelle aussi ses erreurs tout simplement d erreur de logique donc ce ne sont pas des erreurs qui vont forcément faire planter votre programme c'est même peut-être un abus de langage de parler d'erreur en fait ce qu'il va se passer c'est que votre script ne vous retournera pas ce à quoi vous vous attendez donc ce sont souvent des erreurs d'inattention qui une fois qu'on les a identifiés sont faciles à résoudre ou alors au contraire c'est un problème qui va remettre en cause l'entièreté de votre programme et vous obligez presque à recommencer de zéro pour corriger des erreurs sémantique généralement on va s'aider d'un des blogueurs avancée qui va nous permettre d'exécuter notre script pas à pas afin que l'on puisse se mettre dans la tête de l'interpréteur python et de vérifier à chaque étape du programme ce qu'il se passe si vous n'avez jamais utilisé un des blogueurs ou que vous ne voulez pas vous compliquer la vie vous pouvez pour l'instant tout simplement passer par la fonction print qui vous permettra d'afficher les valeurs et les types de vaud variable ainsi que tout un tas d'informations connexes qui vous permettront d'y voir un peu plus clair dans votre code et dans ce qui se passe en arrière plan pour l'instant on a vu beaucoup de théories et réalisé quelques exercices avec les outils de base de python dans les prochaines parties on va commencer à utiliser ce qu'on appelle des modules un module c'est tout simplement un fichier python qui contient des fonctions qu'on peut utiliser donc les modules ça peut servir à beaucoup de choses comme par exemple manipuler des nombres gérer le système d'exploitation convertir des images et même créer des sites web ces modules on va devoir les importés afin d'utiliser les fonctions qui sont contenues à l'intérieur dans les prochaines parties on va voir des modules qui font partie de ce qu'on appelle la librairie standard de python c'est à dire que ces modules sont installés avec python il va quand même falloir les importer dans notre script mais vous n'aurez rien besoin de télécharger ou d'installer en plus pour utiliser un module il va falloir l'importer la syntaxe est très simple il suffit de taper le mot in polt suivi du nom du module qu'on veut importer dans le cas du module rindom que l'on va voir dans la prochaine partie il suffira donc de taper in polt brenden une fois le module importé on va avoir accès à toutes les fonctions qu'il contient pour utiliser une fonction contenu dans un module il faut l'après fixée du nom du module qui la contient vous noterez le point qu'on a mis entre le nom du module est le nom de la fonction qui nous permet de signifier l'appartenance de la fonction au module donc dans les prochaines parties on va voir les modules rindom et os qui nous permettent respectivement de générer des nombres aléatoires et de gérer les fichiers de notre système d'exploitation la première chose à faire pour utiliser le module rindom c'est de l'importer pour ce faire on va donc tapé in polt rindom au début de notre script pour importer le module rindom la première fonction qu'on va voir ça va être la fonction one 100 cette fonction elle est très pratique puisqu'elle nous permet de récupérer un nombre aléatoire entier entre deux valeurs donc je vais créer une variable que je vais appeler air et je vais appeler la fonction wendy ndt qui est contenu dans le module rindom don contactez indom points wendy ndt le point nous sert à spécifier que la fonction windows ici appartient aux modules rindom et je vais pouvoir indiquer deux valeurs à l'intérieur de cette fonction donc là on va tout simplement marqué 0 et 1 il faut savoir que la fonction rendina elle est incluse il c'est à dire que la deuxième valeur ici est inclus à l'intérieur de l'intervalle qu'on lui donne donc si je fais un print de air à la fin et que j'exécute le script on se retrouve kouhaku avec soit 0 soit 1 donc ça ça peut être pratique par exemple si on veut récupérer à un boulet un aléatoire donc une valeur vrai une fausse on va pouvoir récupérer soit 0 soit 1 avec la fonction rainsy si vous voyez que ici le 1 est inclus à l'intérieur de cet intervalle si je mets 1 2 ici à la place et que j'exécute le script encore là je vais pouvoir avoir des valeurs qui vont aller 2 0 à 2 2 inclut donc ça c'est pour la fonction rewind et on va voir tout de suite une autre fonction qui est assez similaire à tout même quelques différences notables la fonction uniform elle est en tout point similaire à la fonction wendy ndt à la seule différence qu'elle va nous retourner un nombre décimal au lieu d'un nombre entier donc si je refais une variable air et que cette fois j'appelle la fonction uniform je vais pouvoir lui donner le même intervalle donc de 0 à 1 1 étant là aussi inclus et je vais print et est donc si j'exécute le script on se retrouve avec cette fois ci une valeur qui est comprise entre 0 et 1 mais donc sous forme de nombre décimal donc on va voir des valeurs flottantes comme celle ci donc des float en anglais qui vont aller de 0 à 1 donc voilà pour cette fonction aussi très pratique si vous avez besoin d'un nombre aléatoire mais cette fois ci d'un nombre décimal la fonction one dring elle va être assez similaire à la fonction wend int sauf qu'elle va nous permettre de lui donner qu'un seul argument donc si on 1999 ici par exemple par défaut la fonction rendering va récupérer un intervalle entre 0 et 999 donc vous voyez ici pas besoin de spécifier une valeur de début et de fin on peut en donner juste une seule qui va être donc la valeur de faim vous allez voir aussi que cette valeur de faim elle va être exclusive donc comparativement à rwindi int qui si on lui donnait un intervalle de 0 à 1 pouvait nous retourner soit la valeur de zéro soit la valeur de 1 ici avec randgold vous allez voir que c'est exclusif donc on ne pourra pas avoir la valeur un ici on va voir uniquement des 0 si je veux avoir une valeur de 0 ou 2 1 il va falloir que j'aille jusqu'à 2 le 2 étant exclus donc si je relance le script vous allez voir que ici je peux avoir soit 0 soit 1 donc comme si on avait utilisé rendina avec un intervalle de 0 à 1 donc ça c'est la première différence la deuxième différence qui pas vraiment une différence mais plutôt une fonctionnalité en plus c'est qu'on va pouvoir lui donner un pas donc je commence avec une valeur de zéro je vais jusqu'à 101 donc 101 pour que je puisse avoir accès aux nombreux sens vu que cette fonction est exclusive comme on vient de le voir et la troisième valeur ici ça va être le pas c'est à dire qu'on va avoir uniquement des valeurs possibles avec un pas de 10 donc si j'exécute le script vous allez voir que c'est beaucoup plus parlant vous voyez ici que on a des valeurs qui vont forcément avoir un pas de 10 entre 0 et 100 donc seulement des valeurs comme 0 10 20 30 etc jusqu'à 100 donc ceci c'est très pratique par rapport à la fonction vending ou la fonction uniform qui ne nous permettait pas d'avoir ce troisième argument donc ce pas là nous permet d'avoir un nombre aléatoire mais quand même un peu plus spécifique que ce qu'on avait avec les autres fonctions donc voilà pour les trois principales fonctions du module rindom qui nous permettent de générer des nombres aléatoires donc ça peut être pratique pour plein de choses et on veut utiliser ce module dans différents exercices au cours de cette formation donc pour résumer on aura vu trois fonctions la fonction windings qui nous permet de générer un nombre entier aléatoire entre un intervalle de deux nombres la fonction juli phone qui est similaire sauf que cette fois ci ça va être un nombre décimal et pour finir la fonction rendering qui va nous permettre en plus de spécifier un pas pour générer un nombre aléatoire donc voilà pour cette session sur le mode du rwanda mais dans les prochaines parties va y avoir plusieurs quiz et exercices pour vous faire pratiquer ce module dans cette partie on va voir le module os le module os on utilise notamment pour créer supprimer des dossiers donc ici je lai importer tout en haut de mon script dont qin polt os donc os en minuscules et j'ai déclaré une variable chemin qui contient le chemin vers les fichiers sources de la formation donc j'ai trois dossiers à l'intérieur de ce dossier est un fichier readme ici donc je vais vouloir créer un dossier à l'intérieur de ce dossier formation développeurs python la première chose c'est de récupérer le chemin du dossier qu'on veut créer donc ce dossier n'existe pas encore il va falloir le créer pour cela on va devoir conca tenais ce qui est dans la variable chemin avec un nouveau nom de dossiers donc pour ce faire on va utiliser la fonction de jeunes fonction john elle se trouve dans le module os point pattes donc on va faire os point par point john et on va lui dire ce qu'on veut joindre donc le premier argument ça va être le chemin est le deuxième argument ça va être le nom du dossier qu'on veut joindre à ce chemin donc on pourrait faire une concaténation avec un f string ou directement avec un plus ça marcherait aussi l' avantage de la fonction john sait qu'elle va automatiquement gérer les slash vous savez que sur windows ou sur mac et linux lice lâche ne sont pas dans le même sens donc ça c'est quelque chose qui dépend du système d'exploitation que vous utilisez et vous ne pouvez pas savoir d'avancé si la personne qui utilise votre script va l'utiliser sur windows ou sur mac et linux donc pour ça on va utiliser la fonction de jeunes qui va gérer cette différence pour nous alors je vais mettre le résultat de cette fonction de jeunes dans une variable que je vais appeler dossier donc je fais dossier égale os point par point d'orgue chemin et le nom du dossier je pourrais en mettre plusieurs comme ça la suite si je veux créer un sous dossier j'ai juste à donner un autre argument est maître par exemple un dossier test ici donc là je vais rester juste avec chemin et dossier et je vais faire un petit print de cette variable dossier pour vous montrer à quoi ça ressemble donc je sauvegarde j'exécute le script et on se retrouve bien donc avec notre chemin complet et le slash qui était ajoutée automatiquement entre le dossier formation développeurs python et le nom de mon dossier ici donc j'ai bien le chemin au complet et maintenant je vais pouvoir créer ce dossier pour créer un dossier on va utiliser la fonction mega deals donc mais il dirige comme ceux ci il ya cette fonction qui est disponible et une autre qui s'appelle tout simplement mk dire sauf que cette fonction le désavantage qui est là c'est qu'elle ne peut pas créer plusieurs structures de dossiers qui n'existent pas ce que je veux dire par là c'est que ici on veut créer un seul dossier à l'intérieur de formation développeurs python mais suis je voulais créer directement une hiérarchie plus importante avec un dossier comme ça dossier et un dossier test à l'intérieur et bien là on aurait deux dossiers qui n'existe pas à créer la fonction mk dire elle ne va pas réussir à créer cette hiérarchie avec mega deals ça nous permet d'éviter cela est de pouvoir créer directement un dossier à l'intérieur d'un dossier qui n'existe pas donc si je fais le test ici je vais mettre dossier comme argument à l'intérieur de mick jones je sauvegarde j'exécute là vous voyez que mon script c'est bien écoutez et si je vais voir ici j'ai bien un dossier qui a été créé avec un autre dossier test à l'intérieur donc vous voyez que ça fonctionne bien et si j'essaye de refaire la même opération mais cette fois ci avec mk dire vous allez voir qu'on va avoir une erreur donc j'aurai exécute le code et vous voyez qu'il me dit no such file europe directory donc ils n'arrivent pas à créer directement cette structure plus complexe donc nous on va utiliser mega deals et vous allez voir que par défaut ça y est pas mal mais on a un petit problème donc là je le crée une première fois donc j'ai bien le dossier qui existent mais si j'essaie de relancer le script on va avoir cette fois ci une erreur medios par défaut elle ne peut pas créer un dossier qui existe déjà alors là on a deux options qui s'offrent à nous on peut faire tout simplement une structure conditionnel donc je vais rajouter un if ici et je vais lui dire d'exécuter en fait cette fonction mais exige uniquement si le dossier n'existe pas donc je le dire if not os point pâte points existe donc une autre fonction qu'on veut utiliser assez souvent cette fonction va nous retourner de chou si le dossier existait falls et s'il n'existe pas donc en faisant if not os point pâte points existe et en lui donnant le nom du dossier si le dossier n'existe pas je vais pouvoir le créer donc je mets cette ligne à l'intérieur de ma structure conditionnelle avec une tabulation ici je sauvegarde je récuse le script et cette fois-ci vous voyez que on a pas d'erreur donc le dossier existait déjà et le script n'a pas planté si je supprime le dossier et que je ré exécute ce script et bien vous voyez qu'on passe bien à l'intérieur de la structure conditionnel puisque le dossier n'existe pas et donc on le crée une autre façon de faire sans passer par ces structures conditionnelle c'est directement de données en argument de la fonction itunes un autre argument qui s'appelle existe ok existe hockey comme ceux ci on va lui dire choo donc ça veut dire que même si le dossier existe eh bien ça ne va pas poser de problème on ne va pas faire planter le script donc là le dossier existe je sauve hier le script et je relance et vous voyez que on n'a pas eu de problème donc ça c'est une autre façon de faire c'est à vous de voir ce que vous préférez soit de passer cet argument soit de passer par une structure conditionnelle maintenant qu'on a vu comment créer un dossier on va voir comment supprimer un dossier donc je vais enlever cet argument ici et à la place de mike judge je vais utiliser tout simplement son inverse à savoir removed years donc là le dossier existe je sauvegarde le script je le lens et vous voyez que ça a bien fonctionné le dossier n'existe plus ici l'inconvénient de rim of the earth to come back dire c'est que si le dossier n'existe pas et qu'on essaye de le supprimer et bien on se retrouve avec une erreur quittons nous dit farine not found error donc il nous dit que le dossier en fait n'existe pas et donc essayer de supprimer un dossier qui n'existe pas en python ça ne marche pas là malheureusement on n'a pas comme pour mick jones un argument existe hockey qu'on peut mettre à chew donc il n'y a pas cet argument avec cette fonction et donc on va être obligé pour ce cas ci de passer par une structure conditionnel donc on va dire l'un vers cette fois ci c'est à dire que si le dossier existe donc if os point par point existe et on lui donne le dossier donc si il existe on le supprime donc on met ça à l'intérieur de notre structure conditionnelle donc si le dossier existe on le supprime et s'ils n'existent pas eh bien ne passe pas à l'intérieur de cette structure conditionnelle et du coup on n'essaye pas de le supprimer et le script ne plante pas donc je sauvegarde je relance mon script ça marche bien si je fais à la place un mec diouf donc là je vais copier cette ligne ici pour faire un mec deals avant donc je vais créer le dossier vérifier ensuite il existe et s'il existe le supprimés dont je relance le script et là vous voyez que rien ne se passe puisque logiquement je les crée je les supprimer tout de suite après donc je vais commenter ces lignes pour déjà le créer donc là je lance voilà il existe bien ici et ensuite je vais enlever cette ligne de code est tout simplement enlever les commentaires ici pour voir si ça marche bien donc je relance le script et là vous voyez qu'il a bien été supprimés donc voilà pour ces trois fonctions quatre en fait avec existe donc on a la fonction aurait ce point par point d'orgue qui nous permet de joindre ensemble des noms de dossiers donc très pratique est toujours utilisé sa n'essayez pas de faire des concaténation vous allez toujours avoir des problèmes donc utiliser toujours cette fonction qui est prévu pour ça ensuite la fonction existe dans os point pâte également qui nous permet de vérifier si un dossier existe ou non et pour finir os points mike jones et au s point remove the years qui nous permettent de créer et de supprimer des dossiers jusqu'à présent on a vu deux modules le module rindom et le module os alors vous vous demandez probablement comment il est possible de savoir ce qu'on peut utiliser à l'intérieur d'un module pour ça on a deux fonctions qui vont grandement nous aider les fonction deals et la fonction elle donc on va importer un module par exemple le module rindom qu'on a utilisées il y à quelques parties et on va utiliser la première fonction qui est la fonction deals qui nous permet de faire ce qu'on appelle en fait de l'introspection donc ça va nous permettre d'afficher toutes les fonctions qu'on peut utiliser à l'intérieur du module donc je sauvegarde et j'exécute mon script et vous voyez que je me retrouve avec une liste de fonctions que je peux utiliser alors on a plein de fonctions qui ont des noms assez bizarre avec dender score avant et après le nom de la fonction alors ça en fait c'est ce qu'on appelle des fonctions privées donc toutes ces fonctions avec des under score en fait il ne faut pas les utiliser ce sont des fonctions qui servent à piton et qui ne sont pas pour vous donc vous ce qui va vous intéresser c'est tout ce qui commence à partir d'ici par exemple jusqu'à la fin avec des noms qui n'ont pas de 1 hors score avant ou après le nom de la fonction donc on retrouve par exemple orange qu'on a utilisées dans les parties précédent wenzhou ou encore uniform et là vous voyez à côte et plein d'autres fonctions comme par exemple celle où schmoll qu'on peut également utiliser donc ça c'est bien beau ça nous donne une idée en fait de ce qu'on va pouvoir utiliser à l'intérieur du module est la deuxième fonction qu'on va voir c'est la fonction help qui nous permet elle d'afficher l'aide d'une fonction en particulier alors la fonction help il n'y a pas besoin d'utiliser le print en fait on peut juste l'appeler comme ceux ci et ça va afficher l'aide de la fonction qu'on lui dit donc ce que je vais faire c'est que je vais utiliser l'aide sur directement rindom point branding par exemple ne m'étais pas des parenthèses après ring ding puisque ici on ne veut pas appeler la fonction on veut juste indiqué à l aps quelles fonctions on veut afficher donc je lui donne rindom point and in the sauvegarde je relance mon script et vous allez voir qu'on rentre automatiquement dans l'aide de la fonction donc ça nous dit help and methods and then in module rindom donc c'est bien ce qu'on a spécifié ici et ça nous donne plusieurs informations donc comme par exemple les paramètres de la fonction donc a et b et ça nous dit également ce que va faire cette fonction donc ça nous dit que ça retourne un nombre entier aléatoire entre a et b a et b étant inclus donc c'est exactement ce qu'on avait vu dans la partie sur le module rindom pour quitter cette aide on va appuyer sur la touche q et ça va revenir au terminal donc vous voyez que ça c'est vraiment très pratique puisque avec ses deux fonctions avec 10 et help sans avoir besoin même d'une connexion internet on va pouvoir avoir des informations sur les fonctions qu'on peut utiliser et ce qu'elles vont faire quels paramètres allons accepter etc alors bien sûr ça nécessite que ses fonctions et été documentés donc pour tous les modules qui sont très utilisés comme les modules de python ou des modules à ses célèbres que vous pourriez installé normalement ça va être assez bien documenté mais si vous allez utiliser un module un peu obscur que vous avez récupéré sur internet qui a été fait par quelqu'un assez rapidement il se peut qu'il ne soit pas documenté la fonction dire elle va automatiquement aller chercher dans le module les fonctions qu'on peut utiliser donc ça c'est pas une question de savoir si le module est documenté ou pas c'est uniquement une liste des fonctions qui sont à l'intérieur du module par contre la fonction elles peuvent aller chercher ce qu'on appelle les doctrines nous c'est vraiment du texte qu'on a écrit pour expliquer ce que fait le module donc si les doctrines ne sont pas là il ne peut pas les inventer à de façon assez logique et pour finir avec cette partie je veux juste se passer une petite minute pour vous montrer une fonction qui va être très utile donc on va l'un portait depuis le module ppri tu es cette fonction elle s'appelle print alors ne vous souciez pas de cette syntaxe pour l'instant aura l'occasion d'y revenir dans une partie sur les modules pour l'instant sachez qu'on importe uniquement la fonction paie print à l'intérieur d'un module qui s'appelle lui-même paix print alors cette fonction est très pratique puisque elle va nous permettre d'afficher les résultats de la fonction dire d'une façon un peu plus sympathique donc si je sauvegarde et que je relance le script vous voyez que cette fois ci les biens le résultat de cette fonction dieu nous est affichée par ordre alphabétique et avec une seule fonction par ligne donc c'est beaucoup plus pratique pour s'y retrouver pour voir tout ce qu'on peut faire avec ce module rindom par rapport à ce qu'on avait auparavant donc si j'utilise un print unique comme ça et que je relance le script ou là on est un peu mélangé et c'est pas très facile à lire donc cette fonction ppre intel marche sur plein de structures de données vous pouvez l'essayer sur des listes et sur plein d'autres choses comme ça ça va vous affichez en fait vos données de façon un peu plus lisible en voilà je tenais à vous montrer ça et on aura l'occasion de l'art et utiliser cette fonction assez souvent en fait dans les prochaines parties de la formation donc voilà pour cette partie on a vu comment en fait allé chercher l'aide directement sans avoir besoin de connexion internet comme je vous disais donc vraiment très pratique alors bien sûr l'aide est en anglais donc ça c'est peut-être un des désavantages de cette fonction après on n'y peut rien la programmation c'est très souvent en anglais donc si vous n'avez pas des facilités avec l'anglais est bien dans ce cas ci la seule option qu'il vous reste c'est directement d'aller chercher sur google pour aller récupérer et bien une documentation sur tous ces modules et ses fonctions en français quand on utilise des objets en python certains de ces objets sont ce qu'on appelle des objets car le bol et d'autres non donc quand je dis que le bol on pourrait le traduire par appelable qu'est-ce qui est appelable par exemple et bien une fonction une fonction on peut l'appeler on a vu avec le module e/s par exemple on pouvait utiliser un os points mike gibbs et ça c'est une fonction la fonction mec dieu et pour l'exécuter il faut l'appeler avec les parenthèses donc on met des parenthèses et éventuellement à l'intérieur de ces parenthèses on peut aussi passer des arguments donc il ya certaines choses en python comme ça qu'ils sont ce qu'on appelle des colos bol qu'on peut appeler mais d'autres qui ne le sont pas donc pour ça on va pouvoir utiliser une fonction qui s'appelle quand le brol tout simplement et on va pouvoir lui passer un objet et cette fonction va nous retourner si oui ou non cet objet eh bien on peut l'appeler alors je vais vous montrer un exemple avec p print paix print qui est donc un module le module paix print vous voyez ici ça nous indique module paix print donc ce module je ne peux pas l'appeler un module on ne peut pas directement la plaie le module os quand je fais une porte aux us je ne peux pas faire os et mettre des parenthèses après on ne peut pas appeler le module on peut juste appeler les fonctions par exemple qui sont à l'intérieur du module donc le module paix print on ne peut pas l'appeler donc on va vérifier ça avec la fonction colo ball donc je vais faire quand le bol de print de paix print pardon comme rôle de ppri donc le module paix print et je vais print et tout ça donc avec un print donc je mets print de corps le bol de paix print donc j'affiche le résultat de cette fonction est donc là logiquement ça va me dire falls puisque on ne peut pas appeler ici ce module for all 6 ip prins n'est pas applicable par contre si j'importe depuis p print la fonction et print donc paix prime c'est une fonction on le voit ici vision' phylocode nous montre le texte qui définit la fonction donc c'est une fonction et je peux l'appeler donc ça c'est le module le module ppri et on importe la fonction paie print donc c'est le même nom pour le module et pour la fonction sauf qu'avec cette syntaxe cette fois ci j'ai importé directement la fonction de p flint depuis le module je vais refaire cette ligne de code ici pour vérifier si cette fois ci la fonction eco lo ball et là on devrait avoir tout puisque la fonction eco le bol on peut l'appeler et voilà vous avez bien tchoyi si on peut l'appeler et on peut l'utiliser donc voilà pourquoi le bol ça peut être très pratique par exemple si j'ai le module os et que je fais un p print de dire deux os je vais avoir tout un tas d'attributs de mon module alors je verrai importé paix print parce que j'avais enlevé la ligne d'un port donc paix print de dire de sg tout un tas d'attributs en fait qu'ils sont disponibles vous voyez tout ça ici c'est disponible sur le module os et certaines choses ici son col au bol et d'autres non par exemple name ici ce n'est pas qu'aux lowball mais de base on ne le sait pas et donc pour savoir ça on va utiliser quand le bol donc je vais faire un print de corps le bol de haut à ce point name et on va vérifier si oui ou non cet objet ici je peux l'appeler donc est-ce que name c'est une fonction tout simplement un attribut qui n'est pas appelable et qu'ils ne retournent une valeur donc je lance la samedi falls donc ça veut dire que je ne peux pas appeler au respect m donc je vais faire un print de haut responable pour voir à quoi ça correspond et aurait ce point m dans ce cas si c est une chaîne de caractères qui va déterminer sur quels systèmes d'exploitation je me trouve donc cette chaîne de caractères va être différente si vous êtes sur linux sur windows ou sur mac donc là on voit bien que ça ce n'est pas quand lebron je ne peux pas faire ou esprit neg maîtres départ en tête si je fais ça je vais avoir une erreur je vais vous montrer l'erreur puisque elle est assez intéressante et ça nous distingue des ctt is not car lebron donc quand vous avez une erreur comme ça avec quelque chose object is not colo bol ça veut dire que vous êtes en train d'essayer d'appeler quelque chose que vous ne pouvez pas appelé donc voilà comment vérifier si quelque chose est appelable voilà aussi lors que vous allez avoir si jamais vous essayez d'appeler quelque chose que vous ne pouvez pas appelé donc c'est une fonction assez pratique que j'utilise assez souvent quand je ne suis pas sûr c'est quelque chose et appelable ou non vous pouvez aussi tout simplement l'essayer comme la ici on peut essayer lancer notre script voir qu'on a une erreur et en déduire que cet objet ne peut pas être appelé donc c'est une autre façon de faire mais c'est un peu plus propre de le faire avec la fonction colo grohl directement puisque elle est là pour ça dans les prochaines parties on va découvrir les listes les listes c'est vraiment un incontournable de n'importe quel langage de programmation tu les retrouvera dans d'autres langages parfois sous d'autres noms comme les tableaux où les heureux qui est le terme anglais qui signifie tableau les listes ça va nous permettre de représenter énormément de choses pensez aux éléments autour de vous ou dans votre vie en général il ya beaucoup de choses qui peuvent être représentées par des listes l'élément le plus courant c'est généralement la liste de courses mais on pourrait aussi penser à la liste d'élèves dans une classe la liste d'utilisateurs d'un site web ou encore la liste des langages de programmation que vous souhaitez apprendre dans les prochaines parties on va donc voir comment créer des listes et comment on peut les manipuler en ajoutant en retirant et en récupérant des éléments à l'intérieur de celle-ci une liste c'est une façon en programmation de stocker différentes valeurs dans une même entité par exemple ici on a une liste qui contient 5 nombres entiers de un à cinq pour créer une liste c'est facile on utilise la même syntaxe que pour une variable à savoir le nom de la liste un symbole égal et les valeurs que l'on veut mettre dans la liste ce qui définit une liste ce sont les deux crochets à l'intérieur desquels on indique les valeurs par défaut que va contenir la liste vous pouvez très bien comme ici définir une liste qui ne contient aucune valeur et ne les ajouter à l'intérieur que par la suite si jamais vous décidé d'ajouter des valeurs à la création de la liste vous devez séparer chaque valeur par une virgule dans cette liste on a ajouté que des nombres mais il faut savoir que vous pouvez mélanger n'importe quel type de variables dans une liste par exemple dans une liste comme celle ci on a un nombre entier une chaîne de caractères et un boulet un une liste peut donc être vide contenir 50 éléments ou même 50 millions il n'y a pas vraiment de limite à part la mémoire dont dispose notre ordinateur une liste c'est un objet en python qu'on appelle lui table je ne vous en dit pas plus pour l'instant dans quelques sections on aura une partie entière consacrée uniquement aux objets mutable et imitable pour l'instant sachez juste qu'un objet mutable ça signifie qu'on peut le modifier c'est la raison pour laquelle on peut définir une liste vide et ajouter ou retirer des objets à l'intérieur de cette liste par la suite dans la prochaine partie on va voir justement comment ajouter ou retirer des éléments d'une liste avant de passer à cette partie je veux juste vous mettre en garde par rapport à une erreur que je vois souvent quand on crée des listes il faut savoir que le mot liste est réservé en python c'est en fait le nom de la fonction qui nous permet de convertir une variable en liste vous pouvez l'utiliser par exemple si vous voulez convertir une chaîne de caractères en liste alors en français on n'a pas trop ce problème puisque le mot liste s'écrit avec un e à la fin mais si jamais vous aimez bien donner des noms anglais à vos variable faites bien attention de ne pas créer une variable qui s'appelle liste sans eux à la fin donc voilà vous êtes prévenus et dans la prochaine partie on va voir comment ajouter et enlever des éléments à une liste dans cette partie on va voir comment ajouter et enlever des éléments à une liste pour ajouter un élément on utilise la méthode happened les méthodes on y reviendra en détail dans une session à part entière plus tard mais pour l'instant sachez juste que c'est en tout point similaire à une fonction à la différence qu'une méthode est associé à un objet pour ajouter un élément à une liste on utilise donc la méthode happened vous remarquez qu à la différence d'une fonction la méthode happened est directement associé à la liste dans laquelle on veut ajouter des éléments grâce aux points qui les relie afin d'ajouter des éléments à notre liste on va donc utiliser happened comme on utilise une fonction la valeur que l'on veut ajouter à notre liste doit être indiquée à l'intérieur de parenthèse attaché à la méthode happened vous remarquerez que j'ai dit la valeur et non pas les valeurs en effet la méthode à peine ne permet d'ajouter qu'une seule valeur à la fois pour ajouter plusieurs éléments d'un coup on utilise la méthode extend avec extend on peut étendre notre liste avec plusieurs valeurs que l'on passe à cette méthode sous forme d'une liste faites bien attention de passer une liste et non pas plusieurs valeurs à la suite comme ceci la méthode extend n'accepte qu'un argument si voulu passer plusieurs valeurs séparées par des virgules vous obtiendrez une erreur maintenant qu'on a vu comment ajouter des éléments on va voir comment en enlever pour ça on utilise la méthode remove pour enlever un élément de notre liste il suffit donc d'indiquer l'élément qu'on veut enlever à la méthode remove attention cependant cette méthode ne va enlever que la première occurrence de l'élément indiqué qu'il trouve si notre liste contient trois fois le nombre 5 il faudra donc utiliser cette méthode trois fois pour enlever toutes les occurrences du nombre cinq de la liste voilà donc comment ajouter et enlever des éléments d'une liste avec les méthodes app and extend et rue move dans la prochaine partie on va voir comment accéder cette fois ci un élément présent dans une liste grâce aux indices pour récupérer un élément dans une liste on va utiliser ce qu'on appelle les indices un indice c'est tout simplement la position d'un élément dans une structure de données la première chose très importante a noté avec python c'est qu'on commence à compter à partir de zéro ainsi pour une liste qui contient trois éléments on aura les indices 0 1 et 2 pour récupérer un élément à l'intérieur d'une liste à l'aide des indices la syntaxe est très simple il suffit d'utiliser les crochets et l' indice de l'élément que l'on veut récupérer cette ligne de code que vous avez devant vous vous permet donc de récupérer le premier élément de la liste grâce à l' indice 0 nous avons vu précédemment qu'à chaque élément d'une structure du jeune et correspond à un indice ici python alain 10-0 c++ l'ain 10,1 et java 'l'indice de mais il est possible également d'utiliser un indice négatif nous permettant de commencer par la fin de la liste ainsi lundi ce point ne retournera toujours le dernier élément de la liste peu importe sa taille et nous pouvons continuer à descendre dans les indices négatifs pour récupérer l'avant dernier élément l'avant avant dernier et ainsi de suite attention cependant à ne pas dépasser des limites de la liste dans le cas de cette liste vous avez devant vous tous les indices disponibles à savoir 012 - 1 - 2 et - 3 si vous essayez de récupérer l'élément alain 10,3 ou moins 4 vous aurez une erreur car pitt on ne peut pas vous retournez un élément qui n'existe pas dans la liste donc bien faire attention à ça uniquement utilisé des indices qui sont disponibles pour vous que ce soit positif ou négatif mais toujours dans les limites de la longueur de votre liste souvent quand on manipule des listes on a besoin de récupérer uniquement certains éléments dans la liste pour ça on peut utiliser ce qu'on appelle les slice donc les slice c'est en fait d'étranges donc c'est la traduction de sly ça en français donc des tranches de notre liste ça va nous permettre de récupérer par exemple seulement un élément sur deux par exemple ou alors seulement les trois premiers éléments de notre liste donc on a une liste ici qui contient six utilisateurs donc six chaînes de caractères et on a vu avec les indices qu'on pouvait par exemple récupérer l'élément 0 donc qui correspond aux premiers utilisateurs ici donc là on indique entre les crochets un seul indice on peut indiquer un slice donc une tranche en mettant deux points et en mettant un autre numéro après donc un autre indice donc la danse qu'elle si si je mets 0,2 point un je vais récupérer là encore uniquement le premier utilisateur puisque le deuxième élément qu'on met ici et exclusif puisqu'on va commencer à zéro et on va s'arrêter a donc on va récupérer uniquement le premier élément donc si je sauvegarde et que je lance le script vous allez voir ici qu'on a bien uniquement l'utilisateur 0 1 on a quand même une liste donc même si on n'a qu'un seul élément dans notre tranche on se retrouve quand même avec une liste qui contient dans ce cas si un seul élément si je veux récupérer les deux premiers éléments de ma liste eh bien il va falloir que j'aille jusqu'à l'index 2 donc 0 1 et on s'arrête à 2 donc on ne récupère pas l'utilisateur 3 donc je sauvegarde je relance et là on se retrouve bien avec une liste qui contient les deux premiers utilisateurs si je veux récupérer uniquement le deuxième utilisateur je peux commencer à 1 et m'arrêter à 2 donc là je ne récupère pas le premier jeu commence à un jeu récupère l'utilisateur 2 et je m'arrête à 2 donc si je sauvegarde et que je relance je récupère bien uniquement l'utilisateur 0,2 on peut également ne rien mettre ici comme premier et deuxième index on peut mettre tout simplement les deux points et dans ce cas ci on va commencer au début et on va s'arrêter à la fin de la liste donc là en fait je vais récupérer l'entièreté de ma liste en allant de l'utilisateur un jusqu'à l'utilisateur 6 donc ça peut être pratique aussi dans certains cas on peut également mettre moins un pour aller jusqu'à l'allée mans numéro - 1 donc jusqu'à l'utilisateur 6 et dans ce cas ci comme je vous ai dit c'est exclusif donc on ne va pas récupérer l'utilisateur si on va s'arrêter à l'utilisateur 5 donc si je relance on a bien les cinq premiers utilisateurs excluant l'utilisateur 06 donc ça c'est quelque chose de très courant comme erreur de penser qu'en allant jusqu'à -1 on va récupérer tous les éléments mais en fait non si je mets 02 points -1 ici je commence bien au début en mettant 0 mais je m'arrête à l'avant dernier élément si je veux récupérer tous les éléments et bien il faut que j'enlève ce dernier élément ici donc je commence au début à zéro et je vais jusqu'à la fin donc on peut très bien spécifié juste l'un des deux on commence par exemple à l'élément deux et on va jusqu'à la fin donc 2 2 points et on ne met rien ici donc si je relance je commence bien à l'élément qui à l'index numéro 2 donc 012 on commence à l'utilisateur 0,3 donc je récupère bien l'utilisateur 0,3 et je me rends jusqu'à la fin de ma liste puisque je n'ai pas spécifié ici de deuxième élément après les deux points et donc on va jusqu'à la fin donc c'est pour cette raison que si on ne met rien au début et à la fin on se retrouve avec l'entièreté de notre liste si on veut aller jusqu'à l'avant avant dernier élément on peut mettre moins de ici et là on n'aura pas les deux derniers éléments donc l'utilisateur 5 et l'utilisateur six seront exclues de ma tranche ce qu'on peut faire aussi c'est m un autre de points ici et maître par exemple 2 donc là si vous avez un peu de logique vous allez comprendre qu'on va récupérer en fait un utilisateur sur deux en partant du début et en allant jusqu'à la fin donc le premier élément ici je n'ai rien me donc on va partir du début le deuxième élément ch derrière mis ici donc on va aller jusqu'à la fin et le troisième élément c'est le pas donc on va prendre un élément sur deux donc si je sauvegarde et que je relance le script j'ai bien l'utilisateur 1 3 et 5 donc un utilisateur sur deux si je veux l'utilisateur 2 4 et 6 et bien je peux spécifié que je veux commencer à partir de l'élément qui à l'index un donc je vais mettre ici en début un donc je commence à 1 je vais jusqu'à la fin et je prends un pas de deux donc là on va avoir les utilisateurs de 4 et 6 donc je relance et on a bien 2,4 ici si je veux aller jusqu'à l'utilisateur donc moins deux donc je vais m'arrêter ici en fait je vais prendre ses quatre premiers ici et je vais avoir un pas de deux donc si je lance le script je vais me retrouver avec l'utilisateur 2 et 4 donc on commence à l'index 1 donc on commence avec cet utilisateur on le récupère ensuite on a un pas de deux donc on ne va pas récupérer celui là on récupère l'utilisateur 4 et on s'arrête à -2 puisqu'on a spécifié ici en deuxième position - 2 donc on va s'arrêter deux éléments avant la fin donc je sais qu'au début les slice cétacés mélangeant ça demande pas mal de pratiques et le fait que ce soit exclusif ici pour le deuxième élément ça mélange pas mal de monde donc n'hésitez pas à pratiquer vous aurez des exercices pour pratiquer les slice dans la prochaine partie une dernière petite chose que je peux vous montrer aussi avec les sly ce qui est intéressant c'est pour inverser l'ordre d'une liste on peut très bien mettre un pas de -1 donc là je dis que je veux partir au début je vais aller jusqu'à la fin et je mets un pas de moins-16 je sauvegarde et que je lance mon script vous voyez que j'ai bien 6 5 4 3 2 1 donc j'ai inversé l'ordre de ma liste donc voilà toutes les choses que vous pouvez faire avec les slice généralement c'est assez rare qu'on fasse des trucs très compliqué on va souvent juste récupérer quelques éléments comme ceux ci par exemple si vous savez que vous ne voulez pas récupéré ni le premier ni le dernier utilisateur et bien on peut commencer à 1 allée jusqu'à - et là on va se retrouver avec les utilisateurs de 3,4 et 5 uniquement donc on a exclu le premier et le dernier utilisateur donc c'est un cas de figure qui arrive assez souvent et c'est possible avec les slicks donc ne vous inquiétez pas comme je vous ai dit dans la prochaine partie vous allez avoir plusieurs exercices pour pouvoir vous familiariser avec cette syntaxe des slice sur une liste on peut utiliser plusieurs méthodes qui vont nous permettre soin de récupérer des informations sur les éléments de notre liste soit carrément pour modifier notre liste dans cette partie on va voir différentes méthodes que l'on peut utiliser sur une liste j'ai ici une liste d'employés qui contient donc les noms des employés et on considère que le nom de chaque employé a été ajoutée dans l'ordre de leur arrivée donc l'emploi y est le plus ancien de la boîte c'est carlos est celui qui vient d'arriver c'est alex donc moi ce que je veux savoir par exemple c max ici en quelle position il est arrivé donc est ce qu'il est le premier dans la boîte auquel cas ça va être le premier dans la liste donc avec un index de 0 ou alors est-ce que c'est le dernier qui est arrivé est donc ils auraient le dernier index de la liste donc pour ça je peux utiliser la méthode index je lui passe un élément de ma liste et il va me retourne et l'index donc la position à laquelle se retrouve cet élément donc si je sauvegarde non scriptée que je lance ce code ici j'ai bien un puisque max se retrouvent deuxième position dans la liste donc on à l'index 1 puisque on commence à compter à 0 avec python si jamais je met alex et que je relance mon script et bien cette fois ci je vais avoir quatre puisque alex est en cinquième position dans la liste et donc son index et de 4 donc index c'est très pratique pour récupérer la position d'un élément dans votre liste ensuite on va avoir la méthode quinte la méthode car elle permet de compter le nombre d'occurrences d'un élément dans la liste donc pour l'instant tous les éléments sont uniques on n'a pas deux employés qui ont le même nom mais imaginez que ici à la fin je rajoute un max et qu'on souhaite savoir combien d'employés dans notre entreprise ont comme prénom max et bien je peux faire 15 là encore je lui passe un élément de ma liste dans ce cas ci max je sauvegarde le script et là je vais avoir deux donc ça veut dire que il y a deux occurrences de la chaîne de caractères max dans ma liste donc là aussi c'est pratique dans certains cas de figure de pouvoir compter le nombre d'éléments qui sont similaires dans une liste ensuite on va avoir la méthode salt donc cela nous permet de trier la liste allant je vais enlever maxi si je vais revenir à ma liste d'origine imaginons maintenant que l'on veuille trier notre liste pour la voir en ordre alphabétique et bien je peux faire salt ici sur ma liste et là vous allez voir un comportement un peu spécial si je fais ça et que je récupère dans ma variable résultat ici employé point salt et que je lance le script vous allez voir qu'on se retrouve avec non puisque la méthode sûre elle ne retourne rien la méthode salt elle va directement trier notre liste donc si j'enlève cette variable ici et que je print employés directement et que je lance mon script vous voyez que j'ai bien la liste d'employés qui est trié par ordre alphabétique alors il faut faire très attention avec cela c'est une erreur très courante que je vois les gens au début ils font ça ils font employés égale employés points sont donc ils récupèrent le résultat deux employés point sorte dans leur liste sauf que on l'a vu employer point sorte ça retourne donne ça retourne rien donc là en fait on est en train de retourner nonnes dans notre liste d'employés et donc de l'écraser donc si je sauvegarde ce script et que je le relance j'ai bien ici nonne donc on a écrasé la liste donc ça il faut faire très attention on a la méthode sol qui nous permet de trier mme liste et qu'il a three directement al'inverse on a la fonction sur le thème qui elle va permettre de trier la liste mais elle c'est une fonction dont elle va trier notre liste et elle va nous retourner la liste trier donc dans ce cas ci il faut bien retournez le résultat de la liste trier dans une liste donc là on écrase notre liste d'origine mais on pourrait mettre par exemple liste trier est affichée ici notre liste trier donc si je relance mon script cette fois ci on a bien la liste trier et si je veut afficher la liste d'origine la liste d'origine elle n'a pas changé vous voyez que c'est toujours la même dans le désordre donc ça c'est très important la distinction entre les deux si on utilise la fonction sur le tijd il faut le récupérer dans une variable et si on utilise directement la méthode salt et bien faites bien attention de ne pas le récupérer dans une variable mais de juste le laisser comme ça donc on agit directement sur notre liste on trie directement notre liste est donc pas besoin de les récupérer al'inverse on a la fonction rigole sans fin jeudi à linverse en fait c'est pas tout à fait l'inversé c'est une autre fonction rivaux shell ne va pas trier la liste elle elle va tout simplement inversé l'ordre de la liste donc si je sauvegarde et que je relance là vous voyez qu'on a la liste dans le sens inverse donc on à alex qui est en premier mais non pas puisqu'il commence par la lettre a mais tout simplement parce qu'il était en dernier donc la liste ne va pas être triés vous voyez que carlos se retrouve en dernier donc on à la lettre c'est ici et pourtant carlos et en dernier puisque à l'origine il était en premier dans la liste donc ça ne va pas trier la liste à fait juste inverser complètement notre liste donc voilà pour ces quatre méthodes in d'aix qui nous permet de récupérer la position d'un élément dans la liste 40 qui nous permet de compter le nombre d'occurrences d'un élément dans une liste salt qui nous permet de trier la liste et rivers qui nous permet d'inverser l'ordre de la liste donc quatre méthodes qui sont assez pratique dans beaucoup de cas de figure et que j'emploie assez régulièrement donc voilà pour ces quatre méthodes qu'on peut utiliser directement sur une liste soit pour comme je vous disais récupérer des informations donc ça c'est le cas de index qui nous permet de récupérer la position d'un élément dans la liste ou de cannes ce qui nous permet de récupérer le nombre d'occurrences d'un élément dans une liste ou directement de la modifier avec salt river qui nous permettent respectivement de trier notre liste dans l'ordre alphabétique ou d'inverser l'ordre des éléments dans notre liste donc voilà pour ces quatre méthodes et comment les utiliser dans cette partie on va avoir deux autres méthodes qui nous permettent d'enlever des éléments de notre liste la première méthode qu'on va voir c'est la méthode pop à leur pop al'inverse 2 ouf ça va nous permettre d'enlever un élément par rapport à son index donc par rapport à sa position dans la liste et non pas par rapport au nom de l'élément donc là encore je reviens avec ma liste d'employés imaginer que le dernier employé qui est arrivé dans votre entreprise ne fait pas la faire finalement il n'a pas réussi sa période d'essai donc vous voulez l'enlever de la liste des employés mais il n'est pas resté très longtemps donc vous ne vous souvenez pas de son donc vous ne pouvez pas utiliser son nom pour l'enlever et en plus on pourrait avoir plusieurs alex dans notre entreprise donc ça pourrait être dangereux d'essayer d'en lever l'élément directement avec la chaîne de caractères alex donc à la place ce qu'on va faire c'est qu'on va utiliser son index on sait que c'est le dernier employé qui est arrivé dans notre entreprise donc on sait qu'on peut enlever le dernier élément de notre liste donc pour ça on n'utilise pas qu'on fait employer point pop et en indique l'élément qu'on veut enlever avec son index donc ce jeu pourrait enlever le premier élément en indiquant 0 enlevé le deuxième élément en indiquant l'index 1 ou enlevé le dernier élément cette fois ci en indiquant - 1 donc là encore on peut utiliser moins un pour cibler directement le dernier élément de notre liste donc je fais ça je print ensuite ma liste d'employés je sauvegarde et je relance et vous voyez que alex a bien été enlevés de la liste grâce à son index si jamais on voulait récupérer en même temps le nom de l'élément qui a été enlevée puisque là on a enlevé l'élément grâce à son index mais on ne sait toujours pas comment s'appelle l'employé qui étaient enlevés donc en fait la méthode pop elle nous permet de récupérer l'élément qui a été enlevé donc je vais mettre ici éléments tout simplement égale employés pour un pote -1 et je vais print et éléments et vous allez voir qu'on va récupérer en fait l'élément qui a été enlevé dans cette variable donc si je relance mon script on a bien alex qui est récupéré dans éléments donc comme ça on a enlevé l'élément - 1 si je fais un print de ma liste vous voyez que ça ne change rien ici je fais une assignation dans ma variable éléments mais j'ai bien enlevé le dernier employé donc j'ai enlevé le dernier employé et en plus je la fiche donc je relance mon script on a bien le nom de l'élément qui a été enlevée alex et quand j'affiche ma liste ici on voit bien que alex a été enlevé de la liste donc voilà comment enlever un élément dans une liste grâce à son index imaginez maintenant que votre compagnie fait faillite et que vous vous les enlevez tous les éléments de votre lit eh bien on peut utiliser une autre méthode qui elle est assez radical qui s'appelle clear et qui va enlever tous les éléments dans notre liste donc là je vais enlever cette assignation ici puisque claire ne va rien retourner elle va tout simplement vidé notre liste donc j'en life ces deux variables et je fais tout simplement un print deux employés et l'a logiquement on va se retrouver avec une liste vide donc voilà les deux autres méthodes qu'on peut utiliser pop pour enlever un élément grâce à son index éclaire qui nous permet tout simplement de vider entièrement notre liste dans cette partie on va voir la méthode jeunes qui nous permet de joindre ensemble différents éléments d'une liste donc cette méthode elle est un petit peu particulière puisque elle s'utilise en fait sur une chaîne de caractères donc comme vous le voyez ici on utilise point de jeunes sur une chaîne de caractères et en fait on va indiquer avec quel caractère on veut joindre les éléments de la liste donc moi je trouve ça un peu bizarre je trouve que ça aurait été plus logique de faire ça dans l'autre sens c'est à dire de dire qu'on veut joindre les éléments de la liste avec tel caractère donc par exemple de faire liste point d'orgue et de dire qu'on veut joindre les éléments avec un espace ça j'aurais trouvé ça assez élégant malheureusement ça ne fonctionne pas donc n'essayez pas de faire ça ça ne va pas marcher c'est l'inversé qu'il faut faire alors au début moi je faisais toujours l'erreur j'essayais toujours de faire ça avec le john sur la liste mais en fait celle inverse donc au bout d'un moment vous allez vous habituer à cette façon de faire on dit d'abord avec quel caractère on veut joindre les éléments on utilise la méthode janus sur ce caractère où ça peut être plusieurs caractères là j'en ai mis qu'un seul donc un espace bon pour en mettre plusieurs et ensuite on donne la liste d'éléments que l'on veut joindre avec ce caractère donc là si je lance le script je vais avoir une phrase qui va me dire python est un langage incroyable donc on a juste ajouté un espace en fait entre chaque élément de la liste comme je vous dis on peut mettre plusieurs choses si je mets un espace un tiret et un autre espace par exemple si ça fonctionne également et je vais avoir ici un espace 1-1 espace entre chaque élément de ma liste si on veut aussi il peut mettre un caractère vide donc une chaîne de caractères vide ici et ça va tout simplement collé les éléments les uns à la suite des autres donc là on n'a aucun espace entre chaque élément donc cette fonction est là ces pratiques notamment quand on veut faire quelque chose qui ressemble au p print on peut mettre ce la chaîne cela chaîne c'est un retour à la ligne donc en fait ce qu'on va faire c'est qu'on va joindre éléments de la liste avec un retour à la ligne et si j'exécute le script vous allez voir qu'on va avoir en fait la même chose qu'avec des primes c'est à dire chaque élément de ma liste affichée sur une ligne donc ça peut être pratique pour de l'affichage de pouvoir mettre ce la chaîne on pourrait mettre seul acheter aussi qui est une tabulation donc si je relance cette fois ci on va avoir une tabulation entre chaque élément donc la méthode jeune et très pratique on utilise assez souvent moi j'utilise personnellement beaucoup pour faire des noms de dossiers donc par exemple si je veux faire un nom de dossiers moi ce n'est pas un espace que je vais vouloir mais un tir et du bas donc là je peux mettre un tir et du bas et vous voyez que ça va joindre chaque élément ici en fait deux mâts liste avec un tir et du bas et je me retrouve donc avec un nombre de dossiers qui est lisible et qui ne contient pas d'espacé donc on essaye de ne pas avoir des espaces dans les nombreux dossiers généralement moi j'utilise donc beaucoup ça pour faire des nombres dossiers comme ceux ci à partir d'une liste donc voilà pour la méthode jeunes donc junk on utilise directement sur une chaîne de caractères et qui nous permet de joindre les éléments d'une liste avec une chaîne de caractères dans la partie précédente on a vu comment joindre des éléments d'une liste ensemble avec un caractère dans cette partie on va voir l' inverse c'est à dire qu'on va pouvoir séparer une chaîne de caractères en différents éléments qui vont constituer une liste pour ça on va utiliser la méthode split donc la méthode split par défaut si on ne lui donne rien ici dans les parenthèses comme argument elle va splitté sur les espaces donc si je lance ce script actuellement en cliquantsur la flèche ici vous allez voir qu'on se retrouve avec une liste d'éléments et si on regarde bien ici on peut voir que notre élément contient également la virgule donc on a le riz ici et on a bien la virgule avec et si on regarde l'élément d'après on a les pommes avec la virgule le lait avec la virgule et c'est donc bien faire attention de distinguer la virgule ici qui séparent les différents éléments de ma liste et la virgule ici qui est contenu à l'intérieur de ma chaîne de caractères donc pourquoi on à la virgule ici bien tout simplement puisque par défaut comme je vous disais hé bien la méthode split va séparer sur les espaces donc on va séparer chaque élément ici on va récupérer un premier élément ensuite on va splitté sur cet espace on va récupérer un deuxième élément etc on peut également spécifié l'élément sur lequel on veut faire la séparation donc je pourrais ici mettre directement la virgule pour dire que je veux séparer les éléments de ma liste par rapport à cette virgule donc là on va se retrouver avec le riz les pommes etc mais vous allez voir que on va voir encore un petit problème si je relance le script on a cette fois ci la virgule qui n'est plus à l'intérieur de notre chaîne de caractères mais si l'on regarde les pommes par exemple ici on a un espace en premier avant les pommes puisque on sépare sur la virgule et donc on va séparer après la virgule et on va récupérer tout ce qui se trouve après la virgule jusqu'à la prochaine donc c'est à dire qu'on va récupérer l'espace ici et le mot pomme ensuite on va se quitter sur la virgule on va récupérer l'espace et le mollet etc etc donc si on veut vraiment récupérer uniquement le nom des aliments ici on peut expliquer sur la virgule et un espace donc si je sélectionne ça ici vous voyez que grâce à la surbrillance de visual studio code je vois précisément ce qui va être split et donc on va voir le riz ensuite on va se quitter sur cet élément donc il ne va pas être dans notre liste on va récupérer ce qui se trouve après donc les pommes le lait la salade et c'est donc si je relance encore une fois mon script vous voyez bien qu'on à chaque élément qui est séparée et on n'a ni la virgule ni l'espace qui est contenu dans chacun de nos éléments il faut bien faire attention également cette méthode elle ne va pas modifier directement notre liste c'est pour ça ici que j'écrase ma liste d'origine avec le résultat de la méthode split si je ne fais pas cette réfection de variables si je fais tout simplement course prince plit ici que je sauvegarde et que je relance mon script vous voyez que ici on a bien toujours notre chaîne de caractères et notre liste n'a pas été modifié donc pour que ces changements se retrouvent dans notre liste il faut l'écraser ou alors faire une nouvelle variable jeu pour l appuyer par exemple course liste ici et là comme ceux ci on garderait notre variable d'origine qui serait égale donc à notre chaîne de caractère et on aurait une deuxième variable ici qui contiendrait notre liste donc si je relance on a bien en premier ici notre chaîne de caractères et ensuite notre liste donc c'est très pratique cette fonction quand on a une chaîne de caractère qu'on veut la convertir en liste à partir d'un élément donc par défaut comme je vous disais si on ne donne rien ici ça va s'appliquer sur les espaces et après on peut spécifier le caractère sur lequel on veut split et donc on peut spécifier un seul caractère comme on l'a vu par exemple juste une virgule ou même plusieurs caractères il faut bien noter aussi que si je mets quelque chose qui n'est pas dans ma chaîne de caractères donc par exemple ici je vais mettre 1-6 je relance mon script vous allez voir qu'on va se retrouver quand même avec une liste mais qui va ne contenir qu'un seul élément donc cet élément ça va être tout simplement l'entièreté de ma chaîne de caractères donc cette méthode split même si on utilise sur un caractère qui n'est pas présent dans notre chaîne de caractères et bien on se retrouvera quand même avec une liste qui ne contiendra qu'un seul élément donc bien retenir ça bien avoir ça en tête si le caractère n'existe pas on n'aura pas une chaîne de caractères on aura quand même une liste donc voilà pour cette méthode qui est très pratique quand on doit traiter des données qui ne sont pas dans le bon type donc si on a une chaîne de caractères et qu'on veut la convertir en liste c'est la méthode à utiliser les opérateurs d'appartenance ils nous permettent de vérifier si un élément appartient ou non à une structure de données dans le cas des listes on va donc pouvoir vérifier si un élément se trouve ou non dans la liste dans un exemple comme celui ci on vérifie si la chaîne de caractères paul est présente dans la liste ici c'est le capiton nous renvoie donc le boulet un trou attention là encore à la casse si on cherche la chaîne de caractères paul sans majuscule sur le pays quittons-nous retournera falls car paul avec une majuscule et bien entendu différent de paul sans majuscule pour vous donner un exemple encore plus concret de l'utilisation de ces opérateurs d'appartenance on pourrait vérifier si un utilisateur ici paul est présent dans notre base de données ici représentée par la liste utilisateurs grâce à une structure conditionnelle et l'opérateur in une autre utilisation assez courante de l'opérateur in nous permet de vérifier qu'un élément est bien présent dans une liste avant de l'enlever en effet la méthode remove nous retourne une erreur si on essaie d'enlever un élément qui n'est pas présent dans la liste avec cette structure conditionnelle nous prévenons ainsi le risque d'erreurs dans le cas où paul ne serait pas présent dans la liste des utilisateurs dernier point important à noter avant de terminer cette partie les opérateurs d'appartenance fonctionne également avec les chaînes de caractères il est ainsi possible de vérifier si un morceau de chaînes de caractères est inclus dans une autre chaîne de caractères dans cet exemple on voit que le mot java est bien contenue dans le javascript même si en fin de compte ces deux langages de programmation n'ont rien à voir et sont souvent confondus l'un avec l'autre dans certains cas de figure il peut arriver qu'on se retrouve avec des listes un briquet donc des listes à l'intérieur de liste il peut y avoir plusieurs niveaux comme ça qui rendent la chose un peu compliqué alors il faut savoir que ça ne change rien on peut toujours accéder à des éléments à n'importe quel élément ici dans le cas de cette liste un briquet avec les crochets et leur index donc par exemple imaginer que je veux récupérer ici le mot java et bien c'est tout à fait possible de mettre des crochets boutabout pour récupérer différents éléments dans une liste un briquet donc par exemple si je veux récupérer japa il faut déjà que je récupère le deuxième élément de ma première liste donc ça c'est ma première liste ici j'ai un crochet qui s'ouvre est dans cette première liste j'ai un premier élément qui est python un deuxième élément qui est la liste qui contient java c++ et une autre liste qui contient uniquement l'élément c est un troisième élément qui contient une liste qui contient l'élément ruby donc ça c'est les trois éléments de ma première liste l'élément python cette liste ici et cette liste là donc si je veux accéder à java il faut déjà que je récupère le deuxième élément de ma liste ici donc je vais faire liste et je vais récupérer le deuxième élément donc avec l'ain 10,1 donc ça ça va me récupérer cette liste ici moi ce que je fais généralement au début si vous avez un peu de mal c'est que j'extrais cette liste donc ça ça veut dire que liszt un ici ça va être égal à cet élément là donc je l'extrait ici pour y voir un peu plus clair donc là je me retrouve avec une liste plus simple et cette liste je vais récupérer le premier élément donc java ici donc le premier élément à un indice de 0 donc je remets décroché à la suite ici et je mets 0 pour récupérer java donc si je fais un print ici de tout ça vous allez voir que ça va ma fiche est tout simplement la chaîne de caractères java donc je sauvegarde et je lance mon script et là on a bien ici le mot java qui apparaît donc ça fonctionne et on peut comme ça allait chercher différents éléments imaginer que je veux aller chercher le sait ici on va continuer avec l'élément 1 puisque ça c'est notre liste ici qui est le deuxième élément de ma première liste donc sa venue récupérer cette liste ici et là je veux récupérer le dernier élément donc cet élément là donc là je pourrais m - tout simplement moins un ou même je pourrais mettre 012 donc de ici qui est l' indice de cet élément donc moins 1 c'est le dernier élément ou deux directement récupérer cet élément ça va donner exactement la même chose donc je relance et là je vais bien avoir la liste c'est donc là j'ai une liste si puisque le dernier élément ici c'est une liste donc si je veux récupérer la chaîne de caractères c est bien il faut que je remette un crochet là encore et que j'allais récupérer dans ce cas ci le premier élément puisque cette liste ne contient qu'un élément donc là je m'accroche à 0 donc je sauvegarde je relance et on se retrouve avec c'est cette fois ci donc la chaîne de caractère ce qui correspond à cette chaîne de caractères donc vous voyez qu'il faut y aller étape par étape quand vous avez des listes un briquet comme ceci il faut vraiment prendre le problème de façon de poser extraire chaque élément les uns à la suite des autres et vous pouvez mettre les uns à la suite des autres ici les index dans des crochets pour récupérer les éléments que vous voulez si vous voulez faire des variables intermédiaire vous pouvez aussi peut mettre ici deuxième élément est égale à la liste crochet 1 pour récupérer cette liste est ensuite plutôt que de faire liste crochet un crochet - un crochet 0 on pourrait dire tout simplement deuxième élément est allé récupérer par exemple l'index un de deuxième élément qui dans ce cas ci va être c++ vous pouvez très bien décomposé comme ça avec des variables intermédiaire ça marche aussi il faut savoir aussi qu'une chaîne de caractères c'est une liste donc imaginer que je veuille récupérer la première lettre du premier élément de cette liste eh bien je pourrais très bien faire print liste crochet 0 et remettre un crochet 0 ici et là qu'est ce que ça ferait et bien tout simplement ça me récupère est le premier élément de mon premier élément donc le pays si puisqu'on à piton donc je sauvegarde et je relance et là on a bien la lettre p qui est affiché donc on récupère le premier élément de ma liste qui correspond à piton est sûre ce télé man pitt on en récupère également le premier élément donc la première lettre qui est la lettre p si je veux récupérer les deux premières lettres de cette chaîne de caractère je pourrais mettre un slice donc zéro 2.2 pour récupérer les deux premières lettres je sauvegarde et je relance et là je récupère les deux premières lettres donc paix y de mon premier élément dans cette liste donc vous voyez que ce soit une chaîne de caractères ou des listes imbriqué dans la liste on peut accéder à toutes les informations qu'on veut directement avec les indices toujours entre crochets et on peut également mettre ses crochets boutabout pour récupérer des listes à l'intérieur de liste ou différents caractères intérieur d'une chaîne de caractère avec les slices des chaînes de caractères c'est assez similaire à des listes finales c'est une liste de caractère donc on peut très bien utiliser cette syntaxe ici avec les slice pour récupérer différents éléments d'une chaîne de caractères donc voilà pour les listes un briquet donc ça fait peur au début dans les prochaines parties vous allez avoir différents exercices qui vont avoir à trait aux listes un briquet et qui vont vous permettre de pratiquer et d'aller chercher directement le bon élément dont vous avez besoin ça arrive par exemple quand on fait du web qu'on ait ce genre de structure avec ce qu'on appelle du data en jason et qu'on se retrouve avec des listes ou des dictionnaires un briquet et donc c'est bien important de d'être capable en fait d'aller récupérer un élément précis dans ce type de données dans cette partie on va voir les erreurs courantes que font les débutants quand il manipule des structures de données la première erreur celle que je vois la plus souvent c'est d'utiliser des parenthèses pour récupérer un élément dans une liste sauf que pour récupérer un élément dans une liste il faut indiqué lundi ce de l'élément qu'on veut récupérer à l'intérieur de crochets cette erreur je la vois le plus souvent quand on utilise des tops holmes vu que pour créer un topol on utilise des parenthèses et non des crochets les débutants sont tentés d'utiliser des parenthèses pour récupérer un élément dans l'auto paul mais là encore il faut utiliser les crochets l'autre erreur que je vois souvent c'est l'utilisation de la méthode remove pour essayer d'enlever un élément dans une liste par son indice la méthode rim ouvre on lui indique directement l'élément qu'on veut enlever et non pas son indice si on veut enlever le premier élément de la liste donc le nombre trois ici il faut spécifier directement cet élément à la méthode rim ouf de la même façon si on voulait enlever une chaîne de caractères on indiquerait directement la chaîne de caractères en question à la méthode weemove si on veut enlever un élément dans une liste grâce à son indice on utilise à la place la méthode pop dans ce cas-ci liste point pop 2-0 enlèvera donc le premier élément de la liste et pour finir il faut savoir que la méthode remove elle n'enlève que la première instance de l'élément qu'on lui indique dans ce cas ci on se retrouvera donc avec une liste qui contient toujours le nombre 3 en dernière position car la méthode weemove n'aura enlevé que le premier 3 qu'elle a trouvé dans la liste comme d'habitude si vous avez eu des erreurs non à perte auriez ici lors de la réalisation des différents quiz et exercices de cette section n'hésitez pas à me les envoyer afin que je puisse les inclure dans cette vidéo pour en faire profiter tout le monde jusqu'à présent dans cette formation on a utilisé beaucoup de fonctions et quelques méthodes on a vu que les deux sont assez similaires et dans cette partie on va donc voir ce qui les différencie une méthode c'est une fonction qui appartient à un objet alors pour bien vous faire comprendre ce que cela signifie je vais vous montrer un exemple très parlant d'un code qui produit le même résultat sous forme de fonction et sous forme de méthode la fonction sur l'eau tiède elle nous permet de trier une liste est la méthode sorte permet elle aussi de trier une liste mais bien qu'elle semble produire le même résultat ce n'est en fait pas tout à fait le cas la fonction sur le tchad elle n'agit pas directement sur la liste comme vous pouvez le voir si on utilise sur le tchat sur notre liste et qu'on affiche la liste par la suite elle reste inchangée la fonction sur le tiède en fait elle va nous retourner une version ordonné de la liste mais sans toucher à notre liste d'origine si on veut que ces changements s'appliquent à la liste il va falloir écrasé notre liste d'origine par la liste que nous retourne la fonction sur le tiède en faisant liste égale à ce solde de liste on récupère ce que la fonction sur lequel nous retourne et on leur et affecte en écrasant notre liste si on print la liste par la suite vous voyez que cette fois ci elle est bien ordonnée avec la méthode salt vu qu'une méthode est associée directement à un objet en l'occurrence ici notre liste la méthode va pouvoir agir directement sur la liste sans qu'on ait besoin de faire une réaffectation c'est d'ailleurs une erreur que vont souvent les débutants c'est à dire qu'ils vont affecter le résultat de la méthode forte dans la liste d'origine le problème c'est que la méthode salt contrairement à la fonction sur l'eau tiède elle ne nous retourne rien et rien en python ça a un nom c'est le mot not vu que la méthode sorte ne retourne rien si on affecte le résultat de liste pour un solde dans notre liste comme on le fait à la deuxième ligne ici on écrase notre liste d'origine par nonnes et on perd donc toutes les valeurs à l'intérieur si vous vous souvenez bien on a déjà eu ce cas similaire au début de la formation quand on a utilisé les fonctions de cons version c'est une erreur également très courante parmi les débutants de penser que la fonction int va directement modifier la variable ah si vous avez bien suivi les premières parties vous vous êtes rendu compte que ce n'était pas le cas la fonction intel va nous retourner la variable à sous forme d'un nombre entier mais ne va pas modifier la variable a directement c'est la raison pour laquelle comme avec la fonction sur le tchad il faut ré affecter la valeur qui nous est retournée par la fonction int dans la variable à pour réellement la modifier et la convertir en nombre entier si vous avez déjà utilisé des méthodes sur des chaînes de caractères vous avez peut-être remarqué que les méthodes qu'on utilise ne modifie pas directement ses chaînes de caractères pourtant dans la partie précédente on n'a vu qu'une des différences majeures entre les fonctions et les méthodes c'est que les méthodes peuvent agir directement sur les objets concernés alors pas de panique je ne vous ai pas dit n'importe quoi seulement c'est un peu plus complexe que ça il faut savoir que tous les objets qu'on manipule se retrouve divisé en deux catégories à savoir les objets meubles et les objets immuable les objets mua bhl ce sont des objets que l'on peut modifier on retrouve par exemple dans les objets mouillable les listes les dictionnaires ou encore les sept on a vu dans les parties précédentes qu'on pouvait en effet ajouter ou enlever des éléments à une liste cela en fait donc un objet mu abl al'inverse les chaînes de caractères et les nombres entre autres sont immuables on ne peut pas en effet directement modifier une chaîne de caractères pour modifier une chaîne de caractères il faut donc en créer une nouvelle et ainsi la récupérer par exemple dans une nouvelle variable c'est donc pour cette raison que quand on utilise la méthode happened sur une liste on modifie directement la liste en question par contre pour une chaîne de caractères étant donné qu'on ne peut pas la modifier la méthode title n'agira pas directement sur notre variable mais nous retournera un résultat qu'il faudra par la suite affecté à une variable donc voilà pour la différence entre les objets mu à bhl est immuable est ce que cela implique au niveau des méthodes et des fonctions que l'on peut utiliser sur ces objets c'est vraiment une différence qui a son importance de bien comprendre que certains objets peuvent directement être modifié en mémoire et que d'autres objets ne peuvent pas être modifiées et que pour les modifier il faut donc créer de nouveaux objets dans cette partie on va voir cette fois ci quelques fonctions supplémentaires qui vous seront utiles dans de nombreuses situations la première fonction qu'on va voir c'est la fonction l'aisne cette fonction on peut l'utiliser sur différents types de données et notamment les chaînes de caractères et les listes dans le cas d'une chaîne de caractères la fonction l'aisne va nous retourner le nombre de lettres à l'intérieur de la chaîne de caractères donc six dans le cas du mot python pour une liste la fonction l'aisne nous retourne tout simplement le nombre d'éléments contenus à l'intérieur de la liste cette fonction est utilisé dans beaucoup de situations vous êtes notamment déjà probablement inscrit sur un site web qui vous demandaient un mot de passe contenant au moins huit caractères avec la fonction l'aisne on peut donc effectuer cette vérification est indiqué à l'utilisateur si oui ou non le mot de passe qui la rentrée contient suffisamment de caractère trois autres fonctions qu on utilise souvent notamment si vous travaillez beaucoup avec les nombres ce sont les fonctions warned mines et max la fonction world elle nous permet d'arrondir tout simplement un nombre décimal au nombre entier le plus proche louarn de 2,2 nous donnera donc le nombre entier 2 est loin de 2,7 nous retournera le nombre 3 on a ensuite les fonctions mines et max qui comme leurs noms l'indiquent nous permettent de récupérer la valeur minimum et la valeur maximum à l'intérieur d'une structure de données comme une liste la fonction minimum ne retournera donc le nombre 1 et la fonction maximum le nombre trois là encore rien de bien compliqué peu de gens sont au courant par contre qu'on peut aussi utiliser ces deux fonctions sur des chaînes de caractères donc dans le cas d'une chaîne de caractères la fonction miner la fonction max vont se baser sur la place des lettres dans l'alphabet avec mines on obtient donc la lettre a et avec max la lettre c alors pour le coup je n'ai jamais eu besoin d'utiliser ses fonctions sur des chaînes de caractères mais sachez que c'est tout de même possible et que python ne vous retournera pas d'erreur toujours dans le domaine des nombres on a la fonction sommes qui nous permet de récupérer la somme des éléments dans une liste dans ce cas ci la fonction sommes-nous retournera donc le nombre 30 faites bien attention cependant à utiliser cette fonction que sur des structures de données qu'ils contiennent uniquement des nombres si vous avez une chaîne de caractères à l'intérieur de votre liste python vous retournera une erreur ce qui est logique puisqu'il ne peut pas ajouter des chaînes de caractères avec des nombres et pour terminer cette partie sur les fonctions on la fonction orange qui pour l'instant ne vous semblera pas forcément très utile mais qui révélera tout son intérêt quand on abordera plus tard les boucles la fonction orange elle permet de facilement et rapidement créer une liste de nombre avec un seul argument la fonction orange va créer une liste de nombre allant de zéro au nombre indiqué entre les parenthèses - 1 donc avec le winch 2 5 on obtient une liste qui va de 0 à 4 et qui contient donc au total 5 nombre il est également possible de passer deux arguments à la fonction orange pour spécifier un intervalle là encore le deuxième argument est exclusif on se retrouve donc avec une liste qui va de 2 à 4 le nombre 5 étant exclus donc voilà pour toutes ces fonctions qui nous permettent de vérifier des conditions ou de faire des calculs sur des structures de données ou des nombres on aura l'occasion d'utiliser ses fonctions de différentes façons tout au long de la formation donc ne vous inquiétez pas vous les reverrai assez rapidement dans cet exercice on va demander à l'utilisateur d'entrer un mot de passe et on va devoir vérifier si le mot de passe est valide donc je vais vous montrer à quoi ressemble le script final donc je lance le script on me demande d'entrer un mot de passe et là on va avoir trois cas de figure le premier cas de figure qui peut arriver si si on entre carrément aucun mot de passe et bien là on va nous dire votre mot de passe est trop court tout en majuscules donc c'est cette phrase qu'on a ici récupérer dans notre variable mdp trop court si jamais on entre un mot de passe qui n'est pas vide mais qui est trop court qui fait moins de huit caractères on va nous dire tout simplement votre mot de passe est trop court et la dernière chose qui peut arriver c'est ici on entre un mot de passe qui fait suffisamment de caractère mais que cette fois ci il ne contient que des nombres dans ce cas-ci donc le mot de passe contient au moins huit caractères mais il ne contient que des nombres donc on affiche votre mot de passe ne contient que des nombres vous remarqué deux choses ici on a notre phrase qui est en majuscule est ici notre phrase qui a une majuscule sur la première lettre dans notre variable mdp trop court on n'a pas de majuscules ici donc cette variable il ne faut pas y toucher vous n'avez pas le droit de la modifier et de rajouter une majuscule ici ou de faire une autre variable avec cette phrase en majuscules il faut partir de cette variable mdp trop court et utiliser les méthodes qu'on a vu dans les parties précédentes pour dans ce cas ci la m tout en majuscules et dans ce cas-ci rajouter une majuscule au début de la phrase donc ces deux méthodes qu'on a vu dans les parties précédentes après pour vérifier ici c'est aussi une méthode qu'on a vu c'est la méthode qui permet de vérifier si une chaîne de caractères ne contient que des nombres donc ces trois méthodes là qu'on va devoir utiliser à l'intérieur deux structures conditionnelle pour vérifier ici le mot de passe est bon on va regarder le dernier cas de figure donc dans le cas où j'entre un mot de passe qui fait suffisamment de caractère et qui contient des nombres et des lettres j'appuie sur entrée et là ça fonctionne et on me dit à la toute fin que l'inscription est donc terminée donc voilà pour cet exercice ça c'est le fichier de départ donc mdp ici qui récupère et dans une poutre à vous donc de faire les structures conditionnelle et d'utiliser les méthodes qu'on a vu dans la partie précédente pour réaliser cet exercice dans cet exercice vous deviez vérifier la longueur d'un mot de passe est également d'autres choses comme par exemple est ce que le mot de passe ne contenait que des nombres ou pas donc pour ça on a besoin d'utiliser une structure conditionnelle avec un if de elif et 1 else donc on avait les deux variables ici la variable mot de passe qui nous permettait de récupérer le mot de passe entrée par l'utilisateur est une variable ici mots de passe trop courts qui contenait la phrase a affiché donc la première vérification qu'on fait c'est de vérifier si le mot de passe est trop court donc s'il est égal à zéro donc on utilise pour ça la fonction l'aisne donc si la longueur du mot de passe est égal à zéro donc là on a deux symboles égale donc si c'est égal égal à zéro ça veut dire que la longueur du mot de passe est égal à zéro et dans ce cas si on fait un print de la variable mots de passe trop courts avec la méthode peur qui me permet donc de l'affiché en majuscules donc on récupère cette chaîne de caractère et on la fiche en majuscules automatiquement avec harper on a ensuite une deuxième condition donc avec un ellis donc si on n'a pas une longueur qui est égal à zéro ça veut dire qu'on a une longueur qui est soit plus petit soit plus grande que zéro donc plus petit que 0 ça n'est pas vraiment possible pour une chaîne de caractères on ne peut pas avoir moins trois caractères donc là dans ce cas ci ça veut forcément dire qu'on a une longueur qui est au moins deux un caractère donc ce qu'on veut vérifier nous c est ce que le mot de passe fait au moins huit caractères donc là ce qu'on vérifie c'est est-ce que la longueur du mot de passe et cette fois strictement inférieure à 8 donc si c'est le cas ça veut dire qu'on n'a pas au moins huit caractères et dans ce cas ci on affiche mots de passe trop courts cette fois ci avec capital risque capital risque qui va rajouter une majuscule au début de la phrase la troisième condition et bien c'est tout simplement de vérifier si le mot de passe ne contient que des nombres donc la fonction input avec python elle retourne tout le temps une chaîne de caractères nous ce qu'on veut c'est sur cette chaîne de caractères utilisés donc cette méthode easyjet qui va nous retourner si la chaîne de caractères ne contient que des nombres donc si on met par exemple 1 2 3 4 5 6 7 8 9 on aura passé toutes ces conditions puisque le mot de passe sera plus grand que 0 il sera plus grand que huit puisqu'on aura neuf caractère par contre il ne contiendra que dénombre donc 1 2 3 4 5 6 7 8 9 et donc le mot de passe ne sera pas valide donc là on affiche tout simplement votre mot de passe ne contient que des nombres et si on n'a aucune de ces conditions qui sont vérifiées donc si le mot de passe n'est pas égal à zéro qu'il n'est pas plus petit que 8 et qu'il ne contient pas que des nombres et bien on fait tout simplement un hells ça veut dire que on a un mot de passe qui est valide et donc on affiche inscriptions terminées donc ça c'est une des façons de faire avec une seule structure conditionnelle il fallait faire attention par contre à certaines choses là vous voyez qu'on a bien commencé avec la vérification pour vérifier que le mot de passe est égal à zéro peut-être que vous avez interverti ces deux conditions donc que vous avez déjà commencé par vérifier si le mot de passe était plus petit que 8 et ensuite s'il était égale à zéro le problème c'est que si vous faites ça en fait et bien quand il est plus petit cuite il est potentiellement aussi égale à zéro donc si je rentre un mot de passe qui est égal à zéro cette condition va être vrai puisque 0 c'est plus petites suit donc dans ce cas ci on ne va pas affiché la bonne chose on va afficher le mot de passe tout en majuscules alors qu'on pourra avoir un mot de passe par exemple qui fait 6 caractères ou qui fait zéro caractère donc toutes les conditions en fait dans lesquels on a un mot de passe qui est plus petit donc strictement inférieure à 8 et donc cette condition égale égal à zéro on ne peut pas l'atteindre en fait puisque quand on met un mot de passe qui est égal à zéro on va obligatoirement tomber dans cette condition et comme le elle y fit ci ne sera pas exécuté si on a une condition qui est exécutée et bien python va exécuter ce qu'on a ici donc le print et ensuite il ne va pas vérifié les autres conditions il va directement allé à la suite et continuer avec notre script puisque là on a une seule structure avec de elif un hells et le xv de départ donc si on tombe par exemple dans cette deuxième condition on ne peut pas tomber dans une autre condition il ya vraiment qu'un seul résultat possible ici en fonction de la première condition en fait qui est vérifiée donc si cette première condition est bien c zéro qui est plus petit 8 eh bien on va rentrer dans cette condition et non pas celle là donc l'ordre est très important il faut vraiment faire attention à ça pour ne pas avoir des comportements qui ne sont pas ceux que l'on souhaite donc là je remet dans le bon ordre avec déjà la condition égale égal à zéro ensuite plus petit que 8 et ensuite la troisième condition ici qui était de vérifier si le mot de passe ne contenait que des nombres donc voilà pour la solution à cet exercice qui nous permet de vérifier la validité d'un mot de passe dans les prochaines parties on va découvrir les boucles les boucles c'est l'autre élément que vous allez utiliser très souvent on va notamment beaucoup les utiliser avec les listes puisque les boucles vont nous permettre de parcourir ce qu'on appelle des hits érable dont les listes font partie avec les boucles on va commencer à pouvoir automatisée des actions c'est vraiment la force de n'importe quel langage de programmation c avec les boucles par exemple que l'on va pouvoir passer à travers tous les fichiers d'un disque dur un par un pour les trier ou l'ergonomie on pourrait également utiliser une boucle pour aller récupérer des informations sur chaque site web que l'on a mis dans une liste on va ainsi pouvoir répétés des opérations et laisser notre script faire le travail à notre place là encore avec la simplicité de la syntaxe de python tu vas voir que très rapidement il est possible d'automatiser des actions avec les boucles et les boucles wild que l'on va voir dans les prochaines parties dans cette partie on va voir un autre concept fondamental de la programmation qui est la cli de l'automatisation de processus qui peuvent être très longs pour l'être humain que nous sommes mais très rapide à exécuter pour une machine ce concept c'est le concept des boucles une boucle ça sert principalement à deux choses la première c'est de pouvoir répéter une opération un certain nombre de fois jusqu'à présent si on voulait exécuter une opération deux fois ou plus on n'avait pas vraiment d'autre option que de dupliquer nos lignes de codes avec les boucles on va pouvoir exécuter une opération des milliers de fois avec seulement quelques lignes de code la deuxième utilité des boucles c'est de pouvoir parcourir des structures de données comme les listes par exemple ainsi on va pouvoir passer à travers une liste de fichiers pour les trier et supprimer les fichiers trop volumineux donc c'est vraiment un exemple parmi tant d'autres vous allez voir qu'une fois qu'on sait utiliser les boucles on ne peut plus s'en passer tout d'abord il faut savoir qu en python il existe deux types de boucle les boucles folles et les boucles wilde dans cette partie on va s'intéresser à la boucle fois la boucle fort elle nous permet principalement de parcourir des structures de données la syntaxe d'une boucle fort elle est assez simple et elle ressemble à la syntaxe d'une structure conditionnelle on retrouve les deux points à la fin de la ligne et la notation sur la ligne suivante qui indiquent un bloc d'instruction on comprend donc avec l'indentation que le print appartient à la boucle pour définir une boucle on utilise le mot fort et le mot in fort ça signifie pour et insa signifie dans donc si on traduit cette boucle en français ça donne ça pour éléments dans liszt print éléments cette boucle elle va nous permettre donc de parcourir une structure de données en l'occurrence ici une liste éléments ici c'est tout simplement une variable qu'on peut donc appeler comme on veut et qui va être affecté à chaque itération de la boucle a une valeur de notre liste donc pour que vous compreniez bien comment fonctionne une boucle on va prendre un exemple plus concret d'une boucle qui passe à travers une liste de nombres vous voyez ici que j'ai changé le nom de ma variable et que je les appelais y donc c'est une convention que vous allez retrouver très souvent quand on boucle sur une liste de nombres on utilise généralement comment deux variables y comme je voulais dit il ya quelques instants on pourrait appeler cette variable n'importe comment on peut l'appeler éléments i ou même jean paul dans tous les cas ça va fonctionner mais c'est tout de même important de bien nommé vos variable de suivre les conventions pour que votre code reste compréhensible ce qu'il faut bien comprendre avec les boucles c'est que python va se charger tout seul d'assigner à il a valeur de l'itération courante une itération c'est le fait de répéter un processus ici on boucle sur une liste qui contient cinq membres on dira donc que cette boucle contient 5 itération donc si on se met dans la tête de l'interpréteur python vous allez avoir un code qui va être exécuté de la façon suivante on commence avec la première itération quitte on va donc automatiquement a signé la première valeur de notre liste à la variable y conva ensuite affichée avec la fonction print il sera donc égale à zéro et en affiche donc le nombre 0 à l'écran l'interpréteur python revient à la ligne du dessus pour continuer avec la deuxième itération de la boucle dans laquelle la variable y sera cette fois-ci égal à la deuxième valeur contenus dans la liste donc dans ce cas ci le nombre 1 on rentre là encore une fois à l'intérieur de la boucle et en exécutent la fonction print pour afficher cette valeur à l'écran on recommence encore une fois avec la troisième itération et y qui prend maintenant la valeur de 4 quatrième itération avec ea qui est égal à 7 et pour finir on va avoir la cinquième et dernière itération avec ea qui est égale à la dernière valeur contenu dans notre liste donc dans ce cas ci le nombre de huit on passe une dernière fois sur la fonction print pour afficher cette valeur à l'écran et vu qu'on est rendu à la dernière itération on sort donc de la boucle folle et on continue avec la suite de notre script voilà donc comment fonctionne une boucle folle pour l'interpréteur python donc dans ce cas ci on a utilisé notre boucle pour passer à travers une liste en plus des listes on peut également utiliser une boucle folle pour passer à travers par exemple chaque caractère d'une chaîne de caractères donc dans ce cas ci on utilise la boucle fois pour passer à travers le mot python la boucle fort elle permet donc d'afficher toutes les lettres du mot python les unes à la suite des autres comme si on avait tout simplement utilisé six fois la fonction print je vous ai dit au début de cette partie qu'on pouvait également utiliser les boucles pour répéter une opération un certain nombre de fois c'est là que rentre en jeu la fonction orange qu'on a déjà vu ensemble dans une partie précédente la fonction orange elle nous permet de rapidement créer une liste de nombre de la taille qu'on lui indique en passant le nombre 10 à la fonction orange on se retrouve donc avec une liste qui contient 10 nombre et donc cette fonction on peut s'en servir à l'intérieur d'une boucles folles pour répéter une opération un très grand nombre de fois avec sept boucles folles on affiche dix mille fois le mot bonjour à l'écran vous êtes d'accord avec moi que si on avait dû créer à la main une liste de dix mille nombre ça aurait été un peu long la fonction orange elle nous permet donc de rapidement créer des listes vraiment le gigantesque dont on peut ensuite tiré profit pour répéter une opération avec la boucle foule donc voilà pour la syntaxe et le fonctionnement de la boucles folles donc pour résumer une boucle frôle ça permet soit de répéter une opération un certain nombre de fois comme on l'a vu par exemple avec la fonction orange en parcourant une liste où on peut aussi parcourir directement une structure de données donc dans ce cas ci on va utiliser les valeurs à l'intérieur de notre structure de données par exemple pour les afficher à l'écran pour faire des calculs pour faire des structures conditionnel donc comme l'exemple que je vous avait indiqué au début par exemple pour parcourir une liste de fichiers pour trier par exemple tous les fichiers qui sont de type il maj donc c'est de cette façon qu'on va principalement utilisé la boucle fort et dans la prochaine partie on va tout de suite voir un autre type de boucles qui est assez similaire et qui permet généralement de faire la même chose mais qui fonctionne un peu différemment et sept autres boucles c'est la boucle way avant de vous montrer en détail le fonctionnement de la boucle au wild je tiens à préciser que la boucles folles comme la boucle while permettent généralement de réaliser le même type d'opération c'est vraiment juste leur façon de fonctionner qui est différente la syntaxe d'une boucle miles est la suivante à la différence de la boucles folles qui demandait une structure de données comme une liste même une chaîne de caractères la boucle le wild elle va s'exécuter temps qu'une condition est vrai dans la partie précédente on a utilisé une boucle folle pour répéter une opération dix mille fois mais vous êtes d'accord que ça paraît un peu bizarre car au final on crée une liste de dix mille nombre avec la fonction orange mais on n'utilise pas vraiment cette liste directement c'est juste un moyen d'exécuter une action un certain nombre de fois donc on peut à la place d'une boucle fort utilisé pour ce faire une boucle au wild qui va fonctionner exactement de la même façon mais avec une logique différente à la place de passer à travers une liste on va donc exécuter la boucle tant que la condition qu'on a dit qu a while est vérifiée on initialise donc une variable y qui est égal à zéro en indycar while qu'on veut exécuter la boucle tant que ea est strictement inférieure à 10 milles et à l'intérieur de la boucle en imprimantes y21 en même temps qu'on print le mot bonjour on va donc affiché 10 mille fois bonjour car lors des dix mille premières itérations il sera bien plus petit que 10000 et c'est uniquement quand il va atteindre la valeur de 10000 que la condition il strictement inférieure à 10 milles sera fausses et qu'on va donc sortir de la boucle donc au final vous voyez que ces deux boucles sont équivalentes c'est juste la méthode qui change donc les boucles away c'est très pratique mais c'est aussi très dangereux avec une boucle folle on passe à travers une structure de données d'une taille déterminée on ne peut en effet pas créer une liste qui contiendrait des valeurs à l'infini la liste est donc d'une taille définis dès le départ la boucle while par contre si elle est mal utilisée elle peut aboutir sur ce qu'on appelle une boucle infinie vous voyez ici que j'ai enlevé la ligne de code qui incrémente est la variable et à chaque itération il sera donc toujours égale à zéro et la condition y plus petit que dit miller havrais le script va donc afficher le mot bonjour à l'infini ce qui aura pour conséquence de faire planter votre script voir votre ordinateur puisque le script ne s'arrêtera jamais et va exécuter des milliers d'opérations à la seconde dans certains cas de figure cependant on ne sait pas d'avancé combien de fois une opération peut être répétée dans ce cas ci la boucle le wild a son intérêt imaginez un script dans lequel vous demander à l'utilisateur à chaque itération de la boucle s'il veut continuer l'opération dans un cas comme celui-ci vous ne pouvez pas prévoir davance si la personne va exécuter l'opération une fois dix fois ou dix mille fois ici tant que la variable continu et est égale à la lettre o on exécute la boucle et on demande à l'intérieur de la boucle si l'utilisateur veut continuer avec la fonction input si l'utilisateur ne retourne la lettre o pour wii alors on continue et sinon avec n'importe quel autre valeur la variable continu et ne sera donc plus égale à la lettre o et on va sortir de la boucle donc la différence ici avec la boucle infinie qu'on avait précédemment c'est que la fonction input elle va momentanément interrompre l'exécution de la boucle puisque on attend à une faute de l'utilisateur ça limite donc les risques puisque tant que l'utilisateur ne rentre aucune information notre script python ne va rien faire et va juste attendre un autre cas de figure dans lequel on pourrait vouloir une boucle infinie c'est dans le cas où on veut répéter une opération par exemple toutes les dix minutes la condition qu'on indique à la fonction royale ici c'est tout simplement le boulet un choo donc là vraiment la boucle est infini à coup sûr vous n'avez aucun autre moyen de sortir de cette boucle que d'arrêter directement le processus python dans le gestionnaire des tâches là encore à la différence de la boucle infinie qu'on avait précédemment et qui exécutaient des milliers d'opérations à la seconde ici on utilise un module le module times qui nous permet avec la fonction sleep de dire à notre script qu'il doit attendre un certains nombre de secondes entre chaque opération ici on fait donc une sauvegarde de la base de données toutes les 600 secondes c'est à dire toutes les dix minutes donc c'est un exemple concret d'un script qui pourrait rouler en arrière-plan sur une machine pour réaliser par exemple comme ici une sauvegarde de la base de données on veut que cette sauvegarde s'effectue toutes les 10 minutes et ce tant et aussi longtemps que l'ordinateur sur lequel roule le script est à lui donc pour résumer on n'a vu qu'une boucle rail est exécuté temps qu'une condition est vrai ce qui implique donc qu'il faut bien faire attention avec ce type de boucles à ce que la condition ne soit pas tout le temps vrai pour éviter rentré dans une boucle infinie à moins que ce soit intentionnel comme dans les deux derniers exemples que l'on a vu dans cette partie on va avoir deux instructions qui nous permettent d'altérer le déroulement d'une boucle l'instruction can't i knew et l'instruction prijck quand une boucle fort ou une boucle while rencontre l'instruction continued elle va passer directement à la prochaine itération sans exécuter le reste du code qui se trouve à près dans l'exemple que vous avez devant vous on vérifie à l'intérieur de notre boucle avec la méthode easyjet si la chaîne de caractères éléments contient un nombre si c'est le cas on utilise l'instruction canteen ue et onu print donc pas l'élément puisque python va passer directement à la prochaine itération dans le cas de paul et de pierre easyjet va nous retourner falls don't put on ne passera pas sur l'instruction continued et affichera donc paul et pierre à l'écran avec la fonction print donc le résultat de tout le code que vous avez devant vous ça va être uniquement paul et pierre on sera quand même passé à travers l'entièreté de notre structure de données puisque cantine yuna est pas l'exécution de la boucle elle fait juste passé allitérations suivante si maintenant à la place de cantines you on utilise break cela aura pour effet de sortir cette fois ci de la boucle dans cet exemple le premier élément de la liste contient bien un nombre donc dès la première itération python va rencontrer l'instruction break et va sortir de la boucle le script on affichera donc rien puisque la boucle n'aura même pas eu l'occasion de se rendre jusqu'aux éléments paul et pierre donc dans ce cas ci par rapport à cannes signe où on arrête dès la première itération et on ne passe même pas sur l'entièreté de notre structure de données donc pour résumer quand in youth a fait passer à la boucle directement à la prochaine itération et briques sahara est l'exécution de la boucle au complet dans cette partie on va voir ce qu'on appelle les compréhensions de liste que vous retrouverez également sous le nom de liste en compréhension ou même liste comme prennent chaîne en anglais les compréhensions de liste ça nous permet dit terré sur une liste et de filtrer les éléments grâce à des structures conditionnelle tout ça en une seule ligne actuellement si on veut filtrer les éléments d'une liste on doit écrire pas mal de lignes de code par exemple ici on veut récupérer uniquement les nombres positif dans la liste on commence donc par créer une liste vide qui va contenir les nombreux positif on boucle ensuite sur chaque élément de notre liste d'origine on vérifie si l'élément sur lequel on iter est plus grand que 0 et si c'est le cas on ajoute à la liste que l'on l'a défini au début du script tout ça on va pouvoir l'écrire beaucoup plus simplement sur une seule ligne grâce au compréhension de liste dans son expression la plus simple une compréhension de liste ça ressemble à ça on retrouve les crochets qui définissent une liste et l'instruction forli une liste qui nous permet d'y tirer sur notre liste d'origine et pour finir on indique ce qu'on veut faire avec dans ce cas ci on fait juste retourner y tel quel donc on ne change rien en l'état cette compréhension de liste du coup elle ne change absolument rien à notre liste d'origine la liste nombre positif elle contiendra tous les éléments de la liste qu'on a défini à la première ligne là où ça devient intéressant c'est qu'on peut ajouter à la fin de notre compréhension de liste une structure conditionnelle pour filtrer les éléments on indique ici qu'on veut récupérer uniquement les éléments qui sont supérieures à 0 on aura donc dans notre liste nombre positif uniquement les nombres 1 2 3 4 et 5 on peut également directement à l'intérieur de notre compréhension de liste modifier la valeur de i comme ici par exemple pour la x 2 on aura donc toujours uniquement les nombreux positif et cette fois-ci x 2 donc deux quatre six huit et 10 au lieu de 1 2 3 4 et 5 donc y x 2 pour i in liste s'il y est plus grand que 0 tout ça à l'intérieur deux crochets et on a notre compréhension de liste donc les compréhensions de listes elles sont très pratiques et elles nous permettent d'écrire du code beaucoup plus efficace forcément ça prend un peu de pratique afin de savoir les manipuler correctement et c'est pour ça que vous retrouverez donc plusieurs exercices dans les prochaines parties pour vous familial c'est avec ce concept et pouvoir les utiliser à bon escient dans cet exercice on va remplacer des boucles par des compréhensions de liste donc vous allez voir qu'on va grandement réduire le nombre de lignes de code à l'intérieur de ce script pour l'instant j'ai quatre boucles ici qui vont itérer sur quatre listes et qui vont faire des choses différentes à chaque fois donc je vais exécuter le script pour vous montrer le résultat donc dans le premier cas ici on a une liste de nombre et on va récupérer uniquement les nombres qui son père donc c'est à dire les nombres dont i modulo 2 est égal à zéro donc on a notre liste nombre ici qui contient un certain nombre on a une liste nombreux pères ici qui pour l'instant est vide on boucle sur tous les nombres on vérifie si le module haut de chaque nombre est égal à zéro ici c'est le cas on ajoute ce nombre dans la liste nombreux pères on affiche ensuite cette liste donc on se retrouve avec uniquement les nombres qui son père dont 44 4 et 38 donc c'est les nombres pairs dans cette liste ici donc ça il va falloir le remplacer en une seule ligne à l'intérieur d'une compréhension de liste donc on va mettre notre compréhension de liste ici directement sur la ligne où on fait la déclaration de la liste sauf que plutôt que de déclarer une liste vide on va mettre la compréhension de liste ici donc comme ça on pourra supprimer ces trois lignes et on va faire l'opération en une seule ligne donc ça c'est le premier exercice le deuxième ici on a une liste avec des nombres négatifs et des nombreux positif et on va vouloir récupérer uniquement les nombres positif donc le résultat ici c'est 0 1 2 3 4 5 6 7 8 9 donc j'ai compté le zéro comme étant un nombre positif donc la même chose on déclare une liste vide on boucle sur les nombres si les nombres sont plus grand ou égal à zéro on les ajoute dans notre liste nombre positif donc il va falloir faire la même chose mais à l'intérieur d'une compréhension de liste sur cette ligne troisième cas de figure on a une liste qui va 2 0 à 4 012 3,4 grâce à orange 5 ici et on va doubler chaque nombre dans cette liste donc plutôt que d'avoir 0 1 2 3 4 on va avoir ici 0 2 4 6 8 donc là on a une liste vide encore une fois on boucle sur les nombres et on ajoute le if x 2 dans notre liste nombreux doubles troisième cas de figure est le dernier cas de figure ça va être une liste qui va aller de 0 à 9 donc avec fringe de 10 ici et on va en fait inverser les nombres qui sont un père c'est à dire en fait les maîtres négatif donc si on regarde le résultat on va avoir zéro puisque c'est un nombre qui espère donc on n'y touche pas ensuite on a moins un qui lui va être négatif on comprend le 1 et on le met négatif le 2 c'est un nombre pair donc on n'y touche pas le 3 c'est un nombre appert donc on récupère sa version négative et c'est donc là au niveau du code vous voyez que cie modulo de est égal zéro donc c'est un nombre pair et donc on ajouter directement le i sinon donc avec le l6 si donc ça veut dire que c'est un nombre qui est un père et on ajoute - i dans notre liste donc cette dernière façons de faire on l'a pas vu dans les parties théoriques donc je vous laisse essayé essayé de mettre le health en fait à l'intérieur d'une compréhension de liste je ne vous ai pas montré comment faire donc si vous n'y arrivez pas assez normal mais je vous conseille quand même d'essayer et même de rechercher sur google si jamais vous essayez que vous ne trouvez pas la solution pour vous habituer à faire des recherches sur un moteur de recherche qui peut être autre que google j'ai fait de la pub pour google mais ça peut être n'importe quel autre moteur de recherche et donc pour voir comment en fait à l'intérieur d'une compréhension de liste eh bien on peut avoir une structure i felt puisque c'est possible je ne vous ai juste m'a montré comment donc essayer de faire ça et on se retrouve tout de suite pour la solution à ces quatre boucles qu'on va donc réduire à l'intérieur de compréhension de liste donc voilà la solution à cet exercice dans lequel on devait réduire le script en utilisant des compréhensions de liste à la place des boucles donc comme je vous disais ici on a mis notre compréhension de liste directement sur la ligne où on déclarait notre liste vide donc là on va tout simplement en fait récupéré y pourri in nombre donc là c'est notre boucle failli nombre qu'est-ce qu'on récupère bien et on ne change rien on fait juste récupérer la valeur telle qu'elle est dans quelqu'un on la récupère et bien si immo du lot 2 est égal à zéro donc c'est ça qui est assez mélangeant au début avec les gens qui utilisent les compréhensions de liste et que tout est un peu mélangé on l'a notre boucle qui se retrouve au milieu ici ce qu'on veut récupérer dans notre boucle donc qui est au tout début et la condition qu'ils se retrouvent à la fin donc yves faurie in nombre if i me du lot 2 est égal à zéro donc si on lit en français ça c'est assez logique quand même y pourri dans nombre six modules de est égal à zéro donc ça se lit bien aussi et c'est pour ça que au début ça fait un peu peur mais une fois que vous êtes habitué à la syntaxe vous allez voir que finalement c'est quelque chose qu'on utilise très souvent et c'est beaucoup plus simple moi je trouve au final que ce qu'on avait à auparavant avec les trois ou quatre lignes de code où il fallait créer une liste vide etc etc donc au début moi je me rappelle avec les compréhensions liste j'avais beaucoup de mal donc je passais tout le temps par la boucle puisque je trouvais ça très clair donc je préférais en fait vraiment voir ce qui se passait ligne par ligne après une fois qu'on est habitué à des trucs comme ça c'est l' inverse on trouve que le fait de passer par une boucle c'est au final plus complexes et moins lisible que quelque chose comme ça qui une fois qu'on est habitué à la syntaxe est assez claire pour un programmeur quelque peu avertis donc ça c'est la première liste ici la deuxième liste c'était exactement la même syntaxe sauf que plutôt que de vérifier immo du lot de on vérifiait seulement s'ils y est plus grand ou égal à zéro donc là on récupère lé nombre 0 1 2 3 4 5 6 7 8 et 9 donc même syntaxe ici donc rien de bien compliqué c'est juste la condition qu'ils changent là on a quelque chose d'un peu différent ce qu'on veut dans ce cas ci c'est pas filtré notre liste mais modifier notre liste donc on a enlevé la condition à la fin on a plus de if par contre plutôt que de retourner le i donc le nombre telle qu'elle est bien ici on retourne y x 2 donc on peut très bien retourner n'importe quoi ici je pourrais même mettre si je veux 5 est là à chaque fois en fait j'aurais 5 qui serait retombe donc j'aurai une liste de cinq nombre qui serait égal à 5 donc ça ne sert pas à grand chose mais c'est possible donc là moi ce que je veux faire c'est retourner la valeur de y x 2 donc je mets directement y x 2 on peut faire des trucs très complexe ici on pourrait mettre des parenthèses des calculs on pourrait mettre une fonction n'importe quoi ici c'est juste du code python donc y x 2 pourri nombre là vous voyez que vraiment c'est très simple en une ligne avec une toute petite ligne comme ça on arrive à modifier une liste qui peut faire des centaines de milliers d'éléments avec juste cette instruction ici donc très pratique la dernière chose donc c'est la partie qu'on n'avait pas vus ensemble qu'on n'avait pas vu en théorie que je vous avais demandé d'essayer avec le s est alors là vous allez voir que c'est encore un petit peu plus mélangeant puisque quand on a un hells en fait la condition se retrouve au début dans les parties précédentes on avait la condition qu'ils étaient à la fin donc quand on a un if unique sans le health la condition se retrouve à la fin par contre quand on a un hells et bien là le hic se retrouve au début donc c'est assez mélangeant jeu c'est une fois que vous le savez bon c'est pas c'est pas très compliqué la syntaxe tu reste quand même assez facile mais c'est juste que c'est inversé par rapport à l'euro cote qu'on avait quand on n'a pas le health donc là on dit i 6 modules o2 est égal 0 elles sont moins et donc là en fait on a les deux les deux conditions donc avec le if et le hells qui sont à la suite donc les deux cas de figure qu'on regarde ici c'est donc est ce que ea mobile o2 est égal zéro donc si ça c'est vrai on va retourner y donc retourne le premier truc ici et sinon donc elle sait bien on retombe ce qu'on a mis ici donc moins un et on boucle encore donc pourris ils nombreux donc la boucle et se retrouve toujours ici le hi fi n'est plus à la fin on le met au début et on a ce qu'on veut récupérer si cette condition est vrai au tout début et le health avec moi ni à la fin donc tout ça c'est notre condition et tout ça c'est notre boucle donc regarder bien ça lentement de votre côté pour vous faire à cette syntaxe et essayer de bien comprendre ce qui se passe ici où sont les valeurs qui sont retournés et dans quels cas de figure avec quelles conditions et vous verrez qu'une fois que vous comprenez bien ce qui se passe ici vous allez commencer à aimer cette façon de faire puisque ça nous permet vraiment de travailler sur des listes de façon très rapide donc de modifier des listes ou de les filtrer carrément directement avec une compréhension de liste donc voilà pour la solution à cet exercice je vais lancer le script pour vous montrer qu'on a bien la même chose donc on a les nombres pairs seulement ici ensuite on a uniquement les nombreux positif ensuite on allait nombre x 2 donc 0 2 4 6 8 au lieu de 0 1 2 3 4 et ensuite les nombres impairs qui sont avec un négatif donc moins un -3 -5 -7 -9 et les nombreux repères auxquels on ne touche pas donc on a bien exactement la même chose mais vous voyez avec beaucoup moins de lignes de code donc voilà pour cet exercice sur les compréhensions de liste dans cet exercice vous allez devoir afficher 10 utilisateurs à l'aide d'une boucle donc je vais vous montrer à quoi doit ressembler le script et je vous en parle un peu plus après donc vous voyez ici qu'on a 10 utilisateurs qui sont affichés avec tout simplement le mot utilisateurs et le numéro de l'utilisateur concerné donc on à utilisateur 1 2 3 etc jusqu'à 10 alors une petite particularité de cet exercice et qu'il faut commencer avec l'utilisateur 1 donc si votre script commence avec l'utilisateur 0 ce n'est pas correct il faut avoir utilisateurs un jusqu'à 10 donc c'est une boucle assez simple il ya besoin de deux lignes de code et il ya quelques petites choses auxquelles il faut bien penser pour ne pas avoir d'erreur donc je vous laisse avec ça et on se retrouve dans la prochaine partie pour la solution donc voilà la solution pour cet exercice dans lequel on devait afficher 10 utilisateurs avec leur numéro d'utilisateur qui allait de 1 à 10 donc je fais une boucle fort donc j'ai une variable ici que j'ai appelé i puisque par convention on met souvent y quand on boucle sur une structure de données qui contient des nombres donkey ici va consister en un nombre donc ce le nombre ça va être 0 1 2 3 4 5 6 7 8 9 puisque ici j'ai la fonction orange et je lui ai donné 10 donc fringe de 10 avant de retourner une liste qui va commencer à zéro et qui va aller jusqu'à neuf donc on aura bien 10 nombre mais on va commencer à zéro donc c'était ça la petite subtilité sais que je vais devoir afficher donc ce nombre donc je fais un print je mets un f ici pour faire un ace tring et je mets donc utilisateur est ici entre accolade jeu mais y plus un don qu'il +1 pour qu'on commence à 1 et non à zéro donc comme ça on va en fait décaler chaque nombre sur lequel on boucle donc plutôt que d'avoir zéro 3 4 5 6 7 8 9 on va avoir 1 2 3 4 5 6 7 8 9 10 donc ça c'est la première façon de faire en mettant e-plus indirectement ici dans l'accolade grâce au web streaming avec les strings on peut tout à fait faire une addition ici directement dans notre chaîne de caractères dans les accolades la deuxième solution c'est de m 1,11 ici donc en fait ici plutôt que d'utiliser un orange avec une seule valeur donc qui par défaut commence à 0 on va lui dire qu'on veut une liste qui commence à 1 et qui s'arrêtent à 10 donc cette exclusive c'est à dire que là on a mis 11 mai la fonction orange elle est exclusif donc on va commencer à 1 et on va aller jusqu'à 10 donc si je fais ça et bien je n'ai plus besoin ici de mettre le i + 1 je peux tout simplement m i puisque ea va déjà avoir la bonne valeur on va commencer à 1 et on va s'arrêter à 10 donc ça c'est l'autre façon de faire directement en modifiant la fonction reach donc voilà pour les deux solutions à cet exercice avec la fonction orange qui contient deux arguments 1,11 pour avoir directement la bonne liste ou alors une fonction orange qui n'acceptent qu'un seul argument donc dit ce qu'il me donne une liste de 0 à 9 et en incrémente y21 ici directement dans le east wing dans cet exercice on va afficher les lettres d'une chaîne de caractères à l'envers donc j'ai une variable mot ici qui contient la chaîne de caractères python et on va voir que quand on exécute le script et bien on va afficher chaque lettre une à une dans l'ordre inverse donc on va commencer par le n et on va continuer avec haut à acheter y ep donc pour ça on va utiliser une fonction que l'on n'a pas vus ensemble et les boucles alors la fonction si vous voulez que je vous la donne est bien continuer la vidéo si vous voulez chercher par vous-même arrêtez-vous ici et essayer de chercher par vous même avec google ou avec toutes les autres façon qu'on a vu par exemple avec dirait helpe pour analyser un peu en fait les objets que vous avez et savoir ce que vous pouvez faire avec donc si vous voulez avoir un petit bout de solutions pour ne pas être complètement dans le flou et bien en fait on va utiliser la fonction weaver est donc cette fonction ici qui nous permet d'inverser les lettres d'une chaîne de caractères donc ça va nous permettre en fait d'inverser le mot donc le mot ici python et après à l'aide d'une boucle donc vous allez devoir afficher chaque lettre de ce mot donc dans le sens inverse donc je ne vous en dis pas plus et on se retrouve dans la prochaine partie pour la solution donc voilà pour la solution de cet exercice donc on a notre variable ici mot qui est égal à piton qui est définie au début du script et on a ensuite une boucle donc comme je vous avais dit on va utiliser cette fonction ici rivers ce qui nous permet d'inverser le mot donc si je fais tout simplement un print de rivers et que je commente les lignes suivantes pour ne pas les exécuter je vais exécuter mon script qui vous allez voir ce que ça nous donne donc en fait que ça nous donne c'est un livre the object donc si vous êtes tombé là dessus c'est normal avec python 3 il ya plein de fonctions comme ça qui ne vous retourne plus directement des listes mais qui vous retourne des objets dans ce cas ci on a un objet river est en fait si vous voulez l'affiché une façon un peu plus lisible on peut utiliser la fonction liste qui va nous permettre de convertir cet objet en liste donc là vous voyez que ça fait beaucoup de choses on a le print on a ensuite la fonction liste qui nous permet de convertir le résultat de la fonction rives lost qui est appliqué sur notre variable mots donc je relance tout ça on s'assure d'avoir bien le bon nombre de parenthèse dans les deux sens donc ici on a trois parenthèse qui ouvrait on en a trois qui ferment donc c'est bon je ne vais pas avoir d'erreur donc je relance le script et là vous voyez qu'on se retrouve donc avec une liste dans le sens inverse donc on a le n en premier ensuite au acheter y est pays donc c'est bien notre chaîne de caractères qui est inversé si maintenant je veux bouclée sur cette liste eh bien je vais tout simplement faire une boucle frôle est bouclée sur chaque lettre dans cette liste donc là je n'ai pas besoin de convertir cette fonction ici en liste puisque automatiquement on peut boucler sur cet objet river est donc je n'ai pas besoin de le convertir en liste ici c'était uniquement pour l'affichage pour qu'on ait quelque chose d'un peu plus lisible que juste ce we trust object qui nous retourner donc je supprime cette ligne et je fais une boucle donc pour pourquoi pour l'être donc là c'est la variable qui va être assigné à chaque élément dans notre liste donc à chaque lettre ici de notre liste est bien dans quoi dans we trust mot donc la fonction révolte qui nous permet d'inverser les lettres de notre chaîne de caractères donc la lettre ici c'est une variable je pourrais mettre n'importe quoi je peux m elle tout simplement ça va marcher aussi c'est juste un nom de variables et vous n'avez pas besoin de définir à quoi va être égal cette variable puisque c'est et python qui automatiquement va s'occuper d'assigner chaque lettre dans notre liste à cette variable donc là je vais laisser l je sauvegarde et je relance le script et on va bien avoir le résultat attendu c'est à dire chaque lettre de mon mot qui est affiché et qui est affichée donc dans le sens inverse grâce à cette fonction rives lost donc voilà pour la solution à cet exercice donc une boucle fort assez simple si vous commencez à bien maîtriser ses boucles ça ne devrait pas être très compliqué je sais qu'il ya beaucoup de gens qui sont un peu mélangé avec cette assignation automatique de la variable dans la boucle frôle puisque ce n'est pas vous qui a signé cette variable c'est automatiquement python qui se chargent d'assigner une valeur à cette variable en fonction de la structure de données sur laquelle on est en train de déterrer donc voilà pour la solution à cet exercice dans cet exercice cette fois ci on se retrouve avec une boucle while la particularité de cette boucle wild c'est qu'elle est infinie donc ça ne va pas faire planter notre ordinateur dans ce cas ci puisque on a la fonction input qui va nous demander de rentrer quelque chose et donc la boucle ne va pas s'exécuter des milliers de fois à la seconde puisqu'elle va attendre notre input à chaque fois donc ce n'est pas une boucle au wild infinie très dangereuse mais quand même on ne peut pas en sortir directement avec le script donc si je l'exécuté tel quel en faisant un clic droit brad peyton farine terminaux vous allez voir ce que je veux dire donc là on me demande si je veux continuer je peux mettre n'importe quoi je peux m oui ou non dans les deux cas ça va continuer je peux mettre n'importe quelle chose n'importe quelle lettre un non pour quoi que ce soit on va toujours continuer à exécuter cette boucle donc la seule façon d'en sortir c'est d'arrêter l'exécution du script en la forçant donc dans le terminal on peut faire contrôler si ou pomme c est ça va arrêter vous voyez grâce à la commande qui mord l'hinterland ça va arrêter le script mais ce n'est pas une très belle façon de sortir du script donc là vous allez devoir modifier cette boucle way le modifier quelque chose dans ces quatre lignes de code ici pour qu'on puisse sortir de cette boucle temps l'utilisateur va le décider donc dans ce cas ci ça va être quand l'utilisateur va dire non quand il va entrer la lettre n eh bien on va sortir de la boucle et on va donc sortir du script donc voilà pour l'énoncé de cet exercice et on se retrouve dans la prochaine partie avec la solution donc là encore comme souvent en python on a plusieurs façons de résoudre cet exercice la première façon de faire qui est la plus logique et bien c'est de tout simplement à signer le résultat de ce qui est envoyé à une goutte dans la variable continue donc je vais tout simplement faire continuer égale input de voulez vous continuer oui ou non donc dans ce cas ci si l'utilisateur rentre la lettre o et bien continuer sera égale à o et la boucle va continuer puisque cette condition ici sera toujours vrai par contre si on rentre n'importe quoi d'autre que la lettre o donc par exemple la lettre est nous-mêmes n'importe quel autre lettre est bien cette variable continuer ici ne sera plus égale à o et donc on va sortir de la boucle donc ça c'est la première façon de faire je sauvegarde mon script et je les exécute pour vous montrer donc on commence une première fois avec la boucle avec on continue ici puisque par défaut à la première ligne ont défini la variable continu et qui est égale à la lettre o donc cette condition est vrai on affiche ont continué ensuite on demande à l'utilisateur s'il veut continuer donc là je vais m oui et donc on va mettre la valeur au donc la lettre aux dents continuez donc cette condition sera toujours vrai et on va continuer avec la boucle si je mets n'importe quoi d'autre donc comme par exemple un est nous-mêmes n'importe quel autre lettre je suis maître 1p par exemple eh bien cette variable continu et ne sera plus égale à zéro et vous voyez qu'on sort bien de la boucle et donc du script donc ça c'est la façon de faire la plus logique de modifier ici la variable pour pouvoir modifier la condition est donc sortir de cette boucle ce qu'on pourrait faire aussi et bien c'est tout simplement ne pas modifier cette valeur mais par exemple récupérer donc dans une variable résultat ce que l'utilisateur nous envoie et icifer une structure conditionnel donc dire que if résultat est différent de la lettre o et bien qu'est ce qu'on va faire on va faire un break donc le break ça nous permet de sortir d'une boucle donc vous voyez que ça fait un peu plus de lignes de code et c'est un peu moins logique mais ça fonctionne également donc on récupère dans une variable résultats à ce que l'utilisateur ne retourne si résultat est différent de haut eh bien on sort de la boucle donc là on ne modifie pas la variable continue et on fait juste une structure conditionnelle qui nous permettent dans certaines conditions de sortir de cette boucle donc je sauvegarde et je relance le script et vous allez voir qu'on va avoir eh bien le même fonctionnement si je mets en haut on continue tant que je mets la lettre o et bien cette condition n'est pas vérifiée puisque résultat est bien égale à o donc elle n'est pas différente de haut donc on ne fait pas le break et on continue avec la boucle si je mets n'importe quoi d'autre comme par exemple un f et bien f la lettre f est bien différente de la lettre o donc on fait le break et en sort de la boucle et du script donc voilà deux façons de résoudre cet exercice la première phase on est celle que vous devez préféré puisque on va directement modifier la condition et ça évite quelques lignes de code et c'est un peu plus logique que de faire une structure conditionnelle ici mais ça marche très bien également avec ça et ça permet d'utiliser ce break ici qui est très pratique dans certains cas pour pouvoir sortir d'une boucle notamment quand on fait comme ici des vérifications avec des structures conditionnelle dans ce projet de la calculatrice vous allez devoir demander à l'utilisateur de saisir deux nombres et afficher ensuite l'addition de ces deux nombres dans une phrase il va falloir également gérer les erreurs qui peuvent arriver si l'utilisateur ne rentre pas de nombre je vais vous montrer à quoi doit ressembler le script final on me demande d'entrée imprimés nombre jeu mais par exemple 4 1 2e nombre avec 6 et on me dit bien que le résultat de l'addition de 4 avec 6 est égal à 10 donc ça ça marche correctement si je rentre de nombre ici mais il faut également gérer le cas de figure où en fait on va avoir l'utilisateur qui ne rentrent pas des données valides par exemple si je rentre la lettre a et la lettre y est bien on va me demander dans très de nombreux valide donc je peux recommencer ensuite entrer un premier nombre donc là vous voyez que tant que je mets quelque chose qui n'est pas en fait valide on va me demander de rentrer de nombreux valide et dès que je mets un nombre pour le premier et le deuxième nombre là ça marche il faut évidemment que ça soit bon pour les deux nombres si je mets un premier nombre ici qui est validé un deuxième qui ne l'est pas ça ne fonctionne pas pareil si je mets un premier nombre qui n'est pas valide et un deuxième qui est valide ça ne fonctionnera pas non plus donc il faut bien que les deux nombres rentrée soit valide pour que l'on puisse ensuite avoir le calcul qui se fait correctement et qui s'affiche à l'écran ici donc voilà pour l'énoncé de ce projet de la calculatrice dans lequel vous devez faire l'addition de deux nombres et validé également ses deux nombres pour que le script ne produisent pas d'erreur au cas où l'utilisateur rentre des nombres qui ne sont pas valides voilà ma solution pour cet exercice de la calculatrice dans lequel on devait demander à l'utilisateur de saisir deux nombres et afficher le résultat de l'addition de ces deux nombres on devait également gérer le cas de figure où l'utilisateur ne rentre pas des nombres valide ce que j'ai commencé par faire s'est déclarée deux variables a et b qui sont égales à des chaînes de caractères vide donc ça en fait c'est parce que ça va me permettre à près de faire une vérification une première vérification ici dans notre boucle le wild et si je ne déclare pas assez variable au tout début et bien pu tomber retournera logiquement une erreur pour me dire que a et b n'existe pas donc il faut déjà que je crée des variables ce que je fais ici avec une assignation multiples donc jeudi à égal b égale une chaîne de caractères vide ici je pourrais très bien le faire sur deux lignes comme ceux ci à égal une chaîne de caractères vide et b égale une chaîne de caractères vide mais quand on a quelque chose comme ceci on peut simplifier tout ça en mettant à égal b égale chaînes de caractères éviter donc on va avoir deux variables a et b qui vont être initialiser avec une chaîne de caractères vide ensuite on va faire une boucle qui va rouler tant qu' on n'a pas ce qu'on veut donc en fait tant que à n'est pas un nombre et b n'est pas un nombre on va boucler comment est-ce qu'on peut vérifier qu'une chaîne de caractères contient bien un nombre avec la méthode easyjet donc si aïssi contient un nombre si on a dans la chaîne de caractères par exemple le nombre 5 ça va fonctionner si on a une chaîne de caractères comme ceci avec des leds ça ne fonctionnera pas même si on a un nombre mais à la suite une lettre ça ne fonctionnera pas non plus il faut obligatoirement qu'on est uniquement des chiffres à l'intérieur de notre chaîne de caractères pour que cette méthode nous retourne joue donc là en fait avec une chaîne de caractères vide easyjet ne nous retournera pas de sous donc on va voir a et b qui vont être falls et cette condition ne sera pas vérifié donc si je lis cette condition ici qu'est ce que je fais premièrement c'est que j'ai deux conditions j'ai à easyjet et b is dead gîtes dont il sait ce que je vérifie c'est ci a et b contiennent tous les deux des nombres et si ce n'est pas le cas et bien je continue donc c'est pour ça que j'ai un note ici tant que a et b ne contiennent pas des nombres je boucle donc on pourrait faire comme ceci également while note ait dit jim and not be easy jet ça fonctionne pareil sans la parenthèse ici on aurait deux fois le note donc je veux bouclé tant qu'on n'a pas à easyjet et tant qu'on n'a pas bs dj tu mets quand on a quelque chose comme ceci c'est plus simple de faire un seul note donc d'enlever le note ici est de mettre tout ça entre parenthèses donc en fait on va vérifier ces deux conditions on veut vérifier que a et b contiennent des nombres et tant que ce n'est pas le cas eh bien on va boucler donc qu'est-ce qu'on fait ensuite eh bien on va demander à l'utilisateur de rentrer dénombre donc avec la fonction input on en demande de rentrer un premier nombre un deuxième nombre et ensuite on va refaire cette même vérification et si ce n'est pas le cas donc si adoubé ne contiennent pas un nombre on va afficher cette phrase ici print veuillez rentrée de nombres valide on pourrait très bien enlever cette structure conditionnel est ici et on aurait tout simplement ces deux phrases qui seraient affichés à chaque fois tant qu'on n'a pas quelque chose de valides moi je veux en fait afficher à l'utilisateur qu'il a fait une erreur qui n'a pas rentrer quelque chose de valide donc je refais cette vérification ici à l'intérieur d'une structure conditionnelle et si l'utilisateur n'a pas rentrer les bonnes valeurs pour a et b eh bien on lui affiche cette phrase si jamais l'utilisateur rentre un nombre pour les deux variables de a et b et bien cette condition ne sera pas vérifier ici on ne va donc pas afficher cette phrase là et on sortira de la boucle puisque cette condition ne sera plus vrai et donc on sortira de la boucle le wild une fois qu'on sort de la boucle au wild on arrive ici et à ce stade si on est donc assuré que dans a aidé en b on a bien des chaînes de caractères qui contiennent des nombres donc on peut ensuite sans problème utiliser la fonction int sur la variable à et sur la variable b sans avoir peur que cela ne cause d'erreurs et là on est absolument assurée puisque tant qu'on n'a pas des nombres et si on va boucler on va boucler et on ne pourra pas sortir de cette boucle whale c'est uniquement quand a et b vont contenir des nombres qu'on va sortir de cette boucle le wild et qu'on va afficher cette phrase donc voilà ma solution pour cet exercice il y en a plein d'autres deux possibles ça c'était ma façon de faire avec une boucle le wild qui me permet de m'assurer et de redemander à l'utilisateur de saisir des valeurs valide tant que ce n'est pas le cas donc avant de vous laisser je vais juste vous montrer en lançant le script que ça fonctionne donc on me demande d'entrée un premier nombre je vais rentrer n'importe quoi ici donc une suite de lettres et vous voyez que dans ce cas ci on a bien la phrase qui s'affiche donc veuillez entrer de nombreux valide et on revient au début de la boucle avec le programme qui nous demandent de rentrer un premier nombre donc là si je met par exemple 5 pour le premier nombre et que je mets quelque chose d'autre pour le 2ème nombre là encore ça ne fonctionne pas et ça ne fonctionnera que si j'ai bien de nombre qui sont données pour le premier et le deuxième cas de figure donc là pour la première variable à et la deuxième variable bg bien de nombre 7 et 23 donc on peut correctement effectuée l'addition et afficher la phrase le résultat de l'addition de 7 avec 23 est égal à 30 donc voilà pour la correction de cet exercice de la calculatrice dans lequel on devait valider les données rentrée par l'utilisateur dans ce projet vous allez devoir créer un programme qui va nous permettre de manipuler une liste on va pouvoir ajouter ou retirer des éléments à cette liste affichée ce que la liste contient est également vidé le contenu de la liste donc je vais vous montrer à quoi doit ressembler le programme donc je lance le script on a donc le choix entre cinq options ajouté un élément retirer un élément afficher la liste donc afficher des éléments qui sont contenus dans la liste videz la liste et enfin quitter le programme donc je vais commencer par vous montrer en ajoutant un élément ce qui se passe donc on me demande le nom de l'élément que je veux ajouter donc je vais ajouter par exemple des pommes ça me dit que l'élément pomme a bien été ajouté à ma liste ici on va ensuite me redemande et une des cinq options donc là je vais choisir d'afficher la liste donc je vais faire le choix numéro 3 j'appuie sur rentrée pour valider et là on voit que j'ai bien l'élément pomme qui est contenu dans ma liste à chaque fois que j'ai un élément qui est affichée dans ma liste on a le numéro de l'élément ici donc on a un pour la pomme et si j'ajoute un autre élément donc je refais l'option 1 pour ajouter par exemple des bananes si je refais 3 pour afficher la liste on a bien un pommeau de bananes donc à chaque fois le nombre ici va être rajoutées automatiquement devant le nom de l'élément que l'on a ajouté dans notre liste je peux ensuite retirer un élément de la liste avec l'option numéro 2 donc là je vais choisir de retirer les pommes donc j'entre le nom de l'élément que je veux retirer et ça m'indique que l'élément pomme a bien été supprimée de la liste si j'essayais de retirer un élément qui n'est plus dans la liste donc si j'essayais de nouveau de retirer les pommes qui ne sont donc plus présentes dans la liste puisque je viens de les retirer et bien là on indique que l'élément pomme n'est pas dans la liste et donc ne peut pas être retiré de la liste je vais affiche la liste pour voir où j'en suis j'ai donc bien les bananes qui sont restantes ici en numéro 1 donc ici on a un banane et si je veux je peux donc vidé la liste avec l'option numéro 4 donc je valide avec entrée et on me dit que la liste a été vidé de son contenu donc si j'affiche la liste de nouveau on me dit que votre liste ne contient aucun élément et je peux ainsi continuer à ajouter ou enlever des éléments de ma liste de la même façon que je les fais précédemment si je veux quitter le programme je choisi l'option numéro 5 et je valide en appuyant sur entrée on me dit à bientôt et je reviens au niveau du terminal donc le programme s'est bien terminé et j'ai fini de manipuler ma liste dans ce projet ici on fait juste manipuler la liste à l'intérieur de notre script on ne la sauvegarde nulle part donc ça n'a pas énormément d'intérêt puisque on fait juste modifié notre liste en y ajoutant ou retirant des éléments tant qu'on est à l'intérieur du programme mais dès qu'on quitte le programme la liste n'est pas sauvegardé donc ce n'est pas grave là l'important c'est de bien maîtriser les différentes options qu'on va devoir faire ici donc les cinq options ajouté un élément retirer un élément afficher la liste avec à chaque fois le numéro de l'élément donc comme on l'a vu avec un pommeau deux bananes donc ça il faut bien le gérer automatiquement on va aussi également vidé la liste et pour finir quitter le programme donc il faut réussir à afficher ses différentes options à faire un comportement différent dans notre script en fonction de l'option qu'ils aient choisi par l'utilisateur à boucler tout ça à chaque fois tant qu'on ne quitte pas le programme et à manipuler donc notre liste de différentes façons pour ajouter retirer ou vider notre liste donc voilà pour ce projet il ya plein plein plein de façons de le faire comme d'habitude donc fait que de la façon qui vous semble la plus logique n'hésitez pas à bien entendu écrire d'abord ce que votre programme doit faire avant de rentrer directement dans les lignes de code pour bien mettre sur le papier ce que votre programme doit faire et ne pas directement vous mélanger avec du code python donc voilà pour l'énoncé je vous souhaite bonne chance pour ce projet dans cette vidéo je vais vous montrer une des solutions possibles pour l'exercice de la liste de courses donc on a ici tout le code de l'exercice et je vais passer avec vous au travers de tous les éléments qui constituent ce script la première chose qu'on fait c'est d'importer le module 6 ce module 6 on va s'en servir dans le cas de l'option numéro 5 donc on aura l'occasion d'y revenir par la suite mais vous pouvez voir déjà qu'on va utiliser en fait la fonction exit du module 6 qui va me permettre de sortir du script est de revenir au niveau du terminal donc ça c'est dans le cas du choix numéro 5 dans lequel on va quitter le programme on y reviendra plus tard mais sachez que pour l'instant donc j'importe ce module 6 pour pouvoir sortir de mon script donc les imports on les fait tout le temps tout au début du script donc je laisse c'est un peur ici ensuite on va avoir trois variables qu'on appelle des variables globales alors pourquoi global parce qu'elles sont définies dans l'espace globale de notre script dont elles ne sont pas à l'intérieur d'une fonction d'une classe ou quoi que ce soit elles sont directement dans l'espace globale de notre script par convention ces variables on va les mettre tout en majuscules donc si ces trois variables ici la variable liste menu et minutes shuai 6 on pourrait très bien les écrire tout en minuscules et ça fonctionnera de la même façon ce n'est ici qu'une convention donc toutes les variables que l'on définit dans l'espace globale de notre script on va les mettre en majuscules on commence donc par créer une variable liste qui est égale à une liste vide ici avec les crochets et qui va contenir tous les éléments de notre liste de courses on a ensuite une variable menu qui est une chaîne de caractère multi lignes que vous pouvez voir ici grâce aux 3 guillemets au début et à la fin et donc ça ça nous permet de créer une chaîne de caractères qui s'étend sur plusieurs lignes cette chaîne de caractères ça va être le menu que l'on va proposer à l'utilisateur avec les cinq options qu'il peut entrer donc l'option pour ajouter un élément pour retirer un élément afficher la liste vider la liste et enfin quitter on affiche au final ici une phrase qui demandent en fait le choix de l'utilisateur on est un espace ici pour que l'utilisateur puisse rentrer son choix après cette phrase ici et j'ai même inclus un hymne aux gee donc les moggi vous pouvez l'inclure directement dans le script et ça va être affiché dans votre terminal sur mac os pour ouvrir la palette des émeutes si vous faites contrôle commande et par des espaces et ça va ouvrir ce petit panneau dans lequel vous pouvez insérer des emoji vous avez également normalement une touche sur votre clavier sur windows ou un raccourci clavier qui vous permet d'afficher cette même palette donc avec windows 10 normalement maintenance est disponible et vous pouvez également ajouter des imoges sur windows donc après ça on va avoir une autre variable globale qui s'appelle menu choices cette variable globale en fait ça va à contenir tous les choix possibles que l'utilisateur peut rentrer et on va s'en servir pour vérifier que l'utilisateur rentre un choix qui est valide donc les cinq choix disponibles c'est 1 2 3 4 et 5 ici à chaque fois j'ai mis des guillemets puisque ça va être des chaînes de caractères qu'on va vérifier la fonction input qu'on veut utiliser dans la suite du script pour récupérer la saisie de l'utilisateur va nous retourner avec python 3 automatiquement une chaîne de caractères donc quand on va vérifier la saisie de l'utilisateur et bien cette saisie va être sous forme de chaînes de caractères donc c'est pour ça qu'on a ici les cinq options sous forme de chaînes de caractères donc ça c'est nos trois variables globales et on va les utiliser dans la suite du script on a donc ici la logique de tout notre script avec une première boucle wild qui a comme condition choo donc ça c'est une boucle infinie qui peut être dangereuse la plupart du temps si elle est mal utilisée dans ce cas-ci en fait on va avoir un cas de figure dans lequel on va pouvoir sortir de cette boucle while c'est le dernier cas de figure avec l'option numéro 5 qui nous permet de sortir du script pourquoi elle n'est pas dangereuse cette boucle royal ici tout simplement parce qu'on va avoir l'input qui va attendre la saisie de l'utilisateur donc on n'a pas le risque ici avec cette boucle wild avoir un script qui s'emballe et qui va tourner des millions de fois à la seconde puisque à chaque fois on va avoir cette fonction input qui va attendre la saisie de l'utilisateur si on n'avait pas ça ça pourrait être un peu plus délicat d'utiliser une boucle while mais dans ce cas ci on est protégé donc par le une poutre et on va pouvoir sortir de cette boucle grâce ici à ces conditions et le 6 points exit qui va sortir de notre script tant qu'on ne choisit pas en fait l'option 5 on va boucler dans cette boucle wilde et on va demander à l'utilisateur de faire un choix parmi les cinq choix que l'on a ici donc la première chose qu'on va faire ici c'est déclarer une variable use of choice qui est égale à une chaîne de caractères vide alors on l'a déclare ici au préalable avant de rentrer dans une autre boucle while dans laquelle on va s'assurer que l'utilisateur rentre un choix correct donc cette boucle ouaïli si elle va tourner tant que your soul choice n'est pas dans mes notes chase donc temps que cette variable ici n'est pas contenu parmi les valeurs que l'on a ici donc un deux trois quatre ou cinq eh bien on va continuer avec cette boucle le wild comme on l'a initialiser ici avec une chaîne de caractères vide et bien cette chaîne de caractères vide n'étant pas contenue dans cette liste on va au moins boucler une fois et demandez donc le choix de l'utilisateur ce qu'on fait ici avec la fonction input à laquelle on passe notre variables globales menu qui va afficher donc le menu que l'on avait défini ici dans le terminal pour que l'utilisateur fasse un choix on va récupérer ce choix là donc dans cette même variable use of choice et on va faire une autre vérification ici pour afficher tout simplement cette phrase si l'utilisateur faire un choix qui n'est pas valide donc ça on pourrait l'enlever ce n'est pas absolument essentiel c'est juste que je veux vérifier en fait après que l'utilisateur est rentré quelque chose eh bien si ce qui la rentrée et contenus là encore dans minute choc ou non donc si ce n'est pas contenue dans mary chase ce que l'on vérifie ici avec not in donc si le choix de l'utilisateur n'est pas dans menu chase donc s'il entrevoit que ce soit d'autre que 1 2 3 4 ou 5 ont valu affiché veuillez choisir une option valide et on va revenir ici dans la boucle while puisque use the choice ne sera pas dans mary chase si par contre on a quelque chose qui est contenu dans cette liste donc si l'utilisateur rentre un deux trois quatre ou cinq et bien cette condition ne sera pas vérifié on ne va donc pas afficher cette option et on europe bouclera pas une deuxième fois avec cette boucle wild puisque cette condition qui est la même que celle ci ne sera donc pas vérifié et on va donc sortir de cette boucle whale donc ces quatre lignes de code ici nous assure juste en fait que l'utilisateur va rentrer quelque chose qui est valide et qu'on va pouvoir donc continuer avec la suite si ce n'est pas valide eh bien on va lui dire que ce n'est pas valide et on va lui demander de choisir quelque chose et si c'est valide on continue avec la suite puisque on sort de cette boucle while on va ensuite vérifié avec une structure conditionnelle dans quels cas de figure on se trouve donc est ce que l'utilisateur a rentré un deux trois quatre ou cinq et en fonction du choix qu'il a fait on va effectuer différentes actions la première action c'est d'ajouter un élément à notre liste donc là c'est assez simple on va tout d'abord demandé le nom de l'élément qu'il souhaite ajouter là encore grâce à la fonction input et on va récupérer ça dans une variable que j'ai appelé items ensuite on va ajouter cet item grâce à la méthode happened à notre variables globales liste que l'on a défini au début du script et on va tout simplement finir par un print et on va afficher que l'élément items a bien été ajoutés à la liste donc là on utilise un f string qui est représenté par le f avant les guillemets de la chaîne de caractères et à l'intérieur de ce f tring on peut donc afficher l'élément qui a été rentré par l'utilisateur et que l'on a récupéré dans la variable items à l'intérieur de cette chaîne de caractères grâce aux accolades donc on met les accolades et on met le nom de la variable que l'on souhaite afficher à l'intérieur de la chaîne de caractères donc rien de bien compliqué ici juste le input on demande à l'utilisateur le nom d'un élément à ajouter on la joute dans la liste et on indique à l'utilisateur qu'il a bien été ajouté ça c'est pour la première option la deuxième option on va retirer un élément donc on va encore une fois demandé le nom d'un élément cette fois ci a retiré de la liste de courses et on va devoir faire une petite vérification ici avec une structure conditionnel puisque on ne peut pas retirer un élément qui n'existe pas dans une liste si vous faites liste point we move et que vous essayez d'enlever un élément qui n'est pas dans la liste vous aurez une erreur donc il faut s'assurer au préalable que l'élément que l'on veut enlever et bien présent dans la liste on va faire ceci avec l'opérateur in qui nous permet de vérifier si un élément est présent dans une structure de données donc on va vérifier if it m in liste donc si l'élément que l'utilisateur à rentrer et dans la liste et si c'est le cas et bien on va utiliser cette méthode weemove sans risquer de faire planter notre script puisque notre élément sera bien dans la liste donc on va faire listes point remove et items pour enlever cet élément de la liste et comme on l'a fait pour l'option numéro 1 on va afficher une phrase qui lui dit que l'élément à cette fois ci bien été supprimée de la liste donc là encore on utilise un f string si jamais l'élément n'est pas dans la liste donc on va se rendre dans le health et on va tout simplement afficher là encore un f string en indiquant cette fois ci que l'élément n'est pas dans la liste donc ça c'est pour la deuxième option pour retirer un élément avec cette vérification pour s'assurer que le script ne plante pas et avec ici le remove qui nous permettent d'enlever l'élément de la liste on va ensuite avoir la troisième option qui nous permettent d'afficher les éléments qui sont contenus dans la liste donc là encore on va faire une vérification puisque si la liste ne contient aucun élément on veut afficher cette phrase qui indique que la liste ne contient aucun élément dans ce qu'on va faire ici c'est tout simplement une structure conditionnelle qui va vérifier que la liste contient bien au moins un élément par défaut une liste qui est vide est évaluée comme fausse donc le boulet à un false donc si on fait une liste ici si la liste est vide et bien cette condition ne sera pas vérifié et on va passer dans le health si par contre la liste contient au moins un élément et bien ce sera évaluée comme vrai et cette structure conditionnelle sera exécuté donc là si la liste contient au moins un élément on va tout simplement afficher une première phrase qui dit voici le contenu de votre liste et ensuite on va boucler à travers tous les éléments de la liste ce qu'on veut ici s'est affiché à la fois l'élément est la position de l'élément dans la liste pour ça on va utiliser la fonction et numéro it any mérite ça nous permet de récupérer à la fois l' indice est l'élément sur lequel on boucle ça on va les récupérer donc dans deux variables qui sont définies ci la première c'est lundi ce donc que j'ai appelé i on met ensuite une virgule et on va mettre la deuxième variable qui va elle récupérer l'élément donc je les appelais items on a ensuite un deuxième argument ici qui est le nombre 1 ça ça nous permet de spécifier en fait à quel indice on veut commencer donc en fait le ici va prendre la valeur de 1 à la première itération de la boucle si on ne met pas ça ici si on enlève le 1 par défaut on va commencer à zéro donc ça voudrait dire qu'on affichera ici par exemple 0 pomme 1 banane de poires etc nous ce qu'on veut c'est commencer à 1 ce qu'on pourrait faire c'est tout simplement garder ça ici comme ceci donc 100 m le un après a énuméré wright et on pourrait ajouter y +1 directement ici donc là ça nous permettrait de commencer à zéro mais d'ajouter un donc en fait on commencerait à 1 moi je préfère utiliser énumère ait ici puisque cela ce n'est pas forcément très clair pourquoi on fait une addition on finit par comprendre qu'on va en fait commencé à 1 et que donc là sans donner de deuxième argument a énuméré on commence à zéro et qu'il faut donc ajouter 1 mais le deuxième paramètre de la fonction et du mérite sert précisément à faire commencer lundi à autre chose que 0 donc je trouve ça plus claire de m ici indirectement dans la fonction et numéro wright et de ne pas faire un calcul je trouve que pour quelqu'un qui ne connaît pas mon script qui arrive dans le script et bien il comprend plus facilement ici que je veux tout simplement commencé avec un indice et à 1 et non pas à 0 ensuite donc est ce qu'on fait ici à l'intérieur de cette boucle eh bien on va tout simplement afficher chaque élément avec là encore un f string on met en premier donc lundi ce qui va commencer à 1 ensuite un point un espace est l'élément de l'itération actuel de la boucle donc là si on a une liste qui contient pommes bananes foire on va afficher un pommeau de bananes et 3 poire donc ça c'est pour l'affichage de la liste et comme on l'a vu précédemment si la liste ne contient rien donc on va aller dans le elle s'est tout simplement afficher votre liste ne contient aucun élément donc ça c'est pour l'affichage de la liste on va ensuite avoir tout simplement l'option numéro 4 qui nous permet de vider la liste donc pour ça on utilise la méthode clé qui nous permet de supprimer tous les éléments d'une liste on pourrait également recréer une liste vide ça fonctionnerait de la même façon mais là encore je trouve que c'est plus clair d'utiliser cette méthode clear qui nous indique bien qu'on vide la liste actuelle plutôt que d'en créer une nouvelle là encore si on en crée une nouvelle je trouve que ce serait pas forcément très clair pour quelqu'un qui arrive dans notre script il pourrait se demander pourquoi est-ce qu'on crée une nouvelle liste là vraiment le but c'est de vider la liste existante donc on ne va pas recréer une nouvelle liste en mémoire on va juste vider tous les éléments qui essaie dans notre liste grâce à cette méthode crir et ensuite on va tout simplement refaire un print pour indiquer que la liste a bien été vidé de son contenu et pour finir donc comme on l'avait vu au tout début on a la dernière option qui est l'option numéro 5 qui nous permet de sortir du script donc là ça va être grâce au module 6 on veut utiliser six points exit qui nous permet de sortir du script actuelle quand on est dans un script en ligne de commande juste avant ça on affiche une petite phrase pour dire à bientôt et ensuite on sort donc avec 6 points existe pour finir on fait juste un print de ce caractère donc un tiret x 50 donc ça c'est tout simplement pour séparer les différentes itérations de ma boucle là on a notre grande structure conditionnelle avec tous les ifs et halliche et à chaque fois qu'on aura traité le choix de l'utilisateur on va repartir en haut de notre boucle au wild et on va redemander à l'utilisateur de faire un choix donc on va afficher en fait à chaque fois tout ce menu ici et donc c'est pour ça que je fais un print de ce caractère à la fin juste pour séparer les différents choix qui ont été faits par l'utilisateur ça c'est une technique que j'utilise assez souvent en fait tout simplement multipliée le caractère sain mais évite par exemple d'avoir faire quelque chose comme ceci c'est à dire mettre directement la chaîne de caractère avec 50-6 n'est pas très pratique c'est assez long à taper là vous pouvez directement m x 50 et si jamais ce n'est pas assez et bien vous pouvez tout simplement augmenter ce nombre pour avoir une ligne qui prend un peu plus de place je vais maintenant lancé le script pour m'assurer que tout fonctionne correctement donc je lance le script on commence avec le menu qui s'affiche on me demande de choisir parmi les cinq options suivantes et j'ai bien l'espace ici juste avant mon choix donc comme escompté je vais ensuite pouvoir choisir entre les cinq options qui sont face à moi et si je mets n'importe quoi d'autre que 1 2 3 4 ou 5 on va me re proposer le menu donc si je met par exemple 7 on a bien la phrase ici qui s'affiche qui me demande de choisir une option valide si je mets n'importe quoi donc des chiffres des lettres ou quoi que ce soit qui ne soit pas un deux trois quatre ou cinq et bien à chaque fois on va m'afficher ici que l'option n'est pas valide et on va me demander de faire un choix correct donc là je vais ajouter un élément à la liste donc avec l'option numéro 1 je vais choisir d'ajouter des pommes on me dit que l'élément pomme a bien été ajoutés à la liste donc ça fonctionne et on a bien ici à notre séparation qui s'affiche donc ce fameux caractère tirait qui est affiché 50 fois donc grâce à ce prix à la fin de ma boucle je vais ensuite pouvoir par exemple afficher la liste donc on affiche la liste on commence bien ici à 1 grâce à la fonction est nu mérite que l'on avait vu ici et lundi ce qui commence à 1 grâce à ce deuxième argument que l'on avait passé à la fonction et numérique on va pouvoir ensuite retirer un élément de la liste je vais essayer de retirer un élément qui n'existent pas par exemple pouvoir qui n'existe pas dans la liste et là on me dit bien que l'élément poire n'est pas dans la liste donc ça c'est grâce à la vérification que l'on avait fait ici pour vérifier que items était bien présent dans ma liste et si ce n'est pas le cas on affichait donc cette phrase ici qui m'a été retournés puisque l'élément pouvoir n'était pas dans ma liste si maintenant j'essaie d'enlever un élément qui est dans ma liste donc par exemple les pommes que j'ai ajouté précédemment cette fois ci on me dit que l'élément a bien été supprimée de la liste donc si j'affiche mali cette fois ci on me dit bien que votre liste ne contient aucun élément puisqu'il est en effet évident si je rajoute un élément donc par exemple là encore des pommes je vais pouvoir vider la liste cette fois ci avec l'option numéro quatre et on me dit que la liste a bien été vidé de son contenu je vais m'assurer que c'est le cas avec l'option numéro trois pour afficher la liste et là on me dit bien que votre liste ne contient aucun élément je vais ensuite pouvoir quitter mon programme en utilisant l'option numéro 5 et si je valide on me dit à bientôt et je reviens au niveau du terminal donc tout fonctionne parfaitement et voilà donc ma solution pour cet exercice de la liste de courses donc comme je vous disais il ya plein de façons de le faire différemment on aurait pu faire autre chose qu'une boucle wild tous ici on aurait pu ne pas créer deux variables menu est directement l'affiché dont il ya plein de façons de faire ce projet ça c'est ma façon de faire donc voilà pour la correction de ce projet de la liste de courses dans ce projet vous allez devoir créer un jeu que j'ai appelé le jeu du nombreux mystères dans lequel vous allez devoir faire jouer l'utilisateur un certain nombre de coûts pour qu'ils trouvent un nombreux mystères aléatoire défini entre 0 et 100 donc je vais vous montrer à quoi ressemble le jeu donc je lance mon script donc on a le jeu de nombreux mystères qui s'affiche ici on m'indique qu'il me reste cinq essais et on me demande de deviner le nombre donc je vais pouvoir saisir un nombre ici si je tape n'importe quoi d'autre qu'un nombre ça ne va pas fonctionner on va me dire d'entrée un nombre valide on va me remettre ici le nombre d'essais et on va me demander de nouveau de choisir un nombre donc là tant que je mets quelque chose qui est différent d'un nombre ça ne fonctionnera pas dès que je mets un nombre donc là je vais commencer à 50 puisque on cherche un nombre aléatoire entre 0 et 100 donc si on a un peu de logique on va commencer au milieu avec 50 donc je commence avec 50 hélas le programme va me dire si le nombre mystère et plus grand ou plus petit que le nombre que j'ai entré on a également la possibilité d'avoir trouvé le nombre mystère auquel cas le jeu se termine et on nous dit qu'on a gagné le jeu donc là le nombre mystère est plus petit que 50 ont ma fiche le nombre d'essais restant donc dans ce cas-ci 4 et on me demande de nouveau de deviner le nombre donc là je vais couper encore la poire en deux je vais aller à 25 me dis que c'est plus grand que 25 je vais essayer 33 plus grand que 33 ans qu'il me reste encore deux essais on va essayer 40 plus petit on va essayer 36 et donc là le nombreux mystères tu es plus petit que 36 étaient 34 donc là une fois qu'on a épuisé le nombre d'essais qu'il nous restait là vous voyez qu'il est a indiqué qu'il ne me reste qu'un essai et bien le jeu se termine soit j'ai trouvé et donc ça me dis bravo soit j'ai perdu ici dans le cas présent et on me dit donc dommage de nombreux mystères était irma fiche le nombreux mystères en question avec ici un dernier print qui m'indique la fin du jeu donc je vais essayer de gagner une partie pour vous montrer ce que ça donne dans le cas d'une partie réussie donc je vais essayer encore 50 plus petit 50 on va essayer 25 on va essayer 35 plus grands on va essayer 42 plus de petits 40 de jeu 6 et 40 cédait 37 donc je vais essayer encore une fois donc là il me dit que c'est plus petit on va essayer 25,35 plus grand 40 et voilà donc là j'ai réussi il me reste donc deux essais j'ai essayé avec nombre 40 c'était bien ça donc là on sort de notre programme et ça nous indique donc que le nombreux mystères était bien 40 on nous félicite avec un bravo et ça nous indique pour finir le nombre d'essais qu'il nous a fallu pour trouver ceux nombreux mystères donc là vous voyez que j'ai réussi en quatre essais et là encore c'est moins dit qu'à la fin le la phrase ici la fin du jeu donc voilà pour ce programme donc vous devez créer un nombre aléatoire entre 0 et 100 et ensuite permettre à l'utilisateur de deviner ce nombre aléatoire en cinq essais s'il réussit en cinq essais ou moins et bien vous affichez bravo et vous lui dites en combien d'essais il a réussi à trouver ce nombre et s'il n'y arrive pas au bout des cinq essais vous lui dites dommages aient voulu donner la réponse donc en affichant le nombre mystère qu'il fallait trouver et dans les deux cas après on termine le jeu à la fin de cette partie donc voilà pour l'énoncé de ce projet du nombreux mystères voici donc ma solution pour ce projet du nombreux mystères donc je vais passer avec vous à travers tout le code là encore il ya plein de façons de faire on peut faire plein de conditions différentes notamment pour la boucle wilde et on peut sortir de cette boucle de plein de façons différentes également donc moi je vais vous montrer une des façons de faire qui selon moi est une des plus efficaces donc la première chose qu'on va faire c'est utiliser une fonction du module rindom qui nous permet de créer des nombres aléatoires cette fonction c'est la fonction rensing donc gelin porte directement depuis le module random en faisant from around them in paul trending je pourrais également importer directement le module rindom comme ceux ci et dans ce cas là il faudrait à chaque fois que je préfixe le nom de la fonction du nom du module donc si j'apporte le module rindom au complet il faut ensuite que je fasse rindom point renting si je l'importent comme je lé fais ici eh bien on peut l'utiliser directement donc là je fais from london himpens hunt et on peut ensuite donc utiliser cette fonction pour générer un nombre aléatoire entre 0 et 100 donc le premier nombre ici est le 2ème nombre c'est l'étendue à partir de laquelle on va générer ce nombre aléatoire donc là entre 0 et 100 si vous vouliez faire quelque chose de plus difficile on pourrait mettre par exemple ici un nombre entre 0 et 5 cents mais là en cinq essais ce serait un petit peu difficile à deviner donc ça on le récupère dans la variable number two fine qui est donc le nombre que l'on va devoir trouver dans le reste du programme on a ensuite une deuxième variable ici que j'ai initialise à 5 qui constitue le nombre d'essais que l'utilisateur peut effectuer avant que le jeu ne se termine et qu'ils perdent donc je les appelais remaining atteinte ce qui veut dire le nombre d'essais restant en français on affiche ensuite le jeu du nombreux mystères donc qui indique le début du jeu et on va commencer avec notre boucle principale donc là j'ai fait une boucle wild qui va tourner tant que remaining adams est plus grand que zéro donc tant qu'on a des essais disponible donc temps que cette variable ici est plus grande que 0 ça veut dire que l'utilisateur n'a pas encore épuisé le nombre d'essais auxquelles il a droit donc on va continuer de boucler pour lui demander de deviner le nombre à l'intérieur de cette boucle on affiche déjà le nombre d'essais qu'il lui reste donc on va faire un string ici qui est symbolisé par le f devant notre chaîne de caractère et on va pouvoir donc insérer cette variable remaining à 100 à l'intérieur de cette chaîne de caractères donc on va lui dire il te reste remaining adams essai et là vous allez voir que j'ai fait un truc qui peut paraître assez compliquée qui est en fait ce qu'on appelle un opérateur ternaire alors là c'est vraiment pour aller chercher la petite bête en fait ce que ça fait ici c'est tout simplement que ça va rajouter un s à la fin de s es si on a plus que 1 essai restant donc ça c'est vraiment juste si vous voulez avoir une orthographe irréprochable si j'enlève ça en fait on va toujours avoir et c'est qui va être au singulier on pourrait mettre tout le temps au pluriel mais la danse classique quand on aurait plus qu'un essai restants on aurait une faute d'orthographe puisqu'il n'ya pas de s quand on a un seul essai qui est restant donc là j'ai fait cette condition ici donc j'ai des accolades qui me permettent d'insérer du code python et à l'intérieur de ce code python je dis tout simplement que je veut insérer la chaîne de caractères s6 remaining à times est plus grand que 1 donc strictement supérieur à 1 sinon j'insère une chaîne de caractères vide alors il faut faire ici attention de ne pas utiliser des guillemets double là j'ai mis des guillemets simple parce que on a des guillemets double ici pour ma chaîne de caractères donc pour ne pas avoir d'erreur et pour ne pas que python pense que l'on faire notre chaîne de caractères ici j'ai utilisé des guillemets simple pour les différencier des guillemets de ma chaîne de caractère principal donc ça voilà c'est pour la petite histoire avec cette structure ici ne vous inquiétez pas je ne m'attendais pas à ce que vous alliez jusque là dans ce projet donc ensuite on va récupérer la saisie de l'utilisateur pour ça on va utiliser la fonction input qui nous permet de demander la saisie d'un utilisateur et ça ça va nous retourner constamment en fait une chaîne de caractères donc même si l'utilisateur rentre un nombre il va falloir en fait le convertir en nombre entier donc en objet nombre entier parce qu'on va avoir une chaîne de caractères avec la fonction il coûte donc ce qu'on va devoir faire déjà s'est vérifié si l'utilisateur rentre bien un nombre pour ça on peut utiliser la méthode easyjet qui s'utilise sur une chaîne de caractères et qui nous permet de vérifier si une chaîne de caractères ne contient que des chiffres donc là on va faire une structure conditionnel puisque en fait on ne veut pas continuer le programme si l'utilisateur ne rentre pas un nombre donc on va dire que si not your soul 3.6 dj donc si your soul chase ici ne contient pas un nombre eh bien on va lui dire ici veuillez entrer un nombre valide et on va utiliser l'instruction continue continue qu'est ce que ça fait en fait ça va passer tout ce qui est après dans ma boucle et ça va revenir au début de la boucle wild alors attention à ne pas le confondre avec break break ça va sortir de la boucle donc si je mettais un break ici si l'utilisateur ne rentre pas un nombre valide eh bien on sortirait directement de la boucle whale à moi ce que je veux c'est pas sortir de la boucle c'est juste éviter de procès c'est le reste puisque si en fait l'utilisateur ne rentre pas un nombre et qu'on utilise par la suite la fonction in this i pour convertir l'entrée de l'utilisateur en nombre mais qu'ils rentrent par exemple la lettre à eh bien on aurait une erreur donc il faut absolument être certains ici que l'utilisateur à bien rentrer à un nombre pour pouvoir continuer donc si ce n'est pas le cas on utilise cette instruction qu en chine ue qui va tout simplement passé le reste du script ici et revenir au début de ma boucle au wild pour redemander une nouvelle fois à l'utilisateur de rentrer un nombre donc voilà pour cette structure conditionnelle if not use of choice président jette donc si use of choice n'est pas un nombre eh bien on continue et on revient au début de la boucle si l'utilisateur rentre bien un nombre on ne rentrent donc pas dans cette structure conditionnelle ici et on continue et on va tout simplement écrasé ce qu'il y avait à l'intérieur de young boys par l'équivalent en nombre entier donc pour ça on utilise la fonction ici inc qui est en fait une classe mais ne vous en faites pas avec ça je vais l'appeler fonctions pour le reste de cette vidéo donc c'est en fait tout simplement une fonction qui nous permet de convertir ce qu'on a ici qui est une chaîne de caractères donc par exemple la chaîne de caractères 56 et ce nombre là que l'utilisateur avait rentré eh bien on va pouvoir le convertir pour ne plus avoir une chaîne de caractères 50 mais pour bien avoir le nombre 50 puisqu'après en fait on va vouloir comparer l'entrée de l'utilisateur avec un nombre et avec python on ne peut pas comparer des objets qui ne sont pas du même type donc si on veut comparer un nombre avec un nombre il faut au préalable s'assurer que l'entrée de l'utilisateur ici et bien un nombre si on ne fait pas cette vérification ici qu'on enlève cette ligne est bien là on aura une erreur puisque pitt on va nous dire qu'il ne peut pas comparer des chaînes de caractères avec dénombre donc bien faire attention de faire cette conversion ici ensuite on va rentrer dans une structure conditionnelle qui va nous permettre de vérifier si le nombre est plus petit plus grand ou et galons nombreux mystères donc pour ça on va utiliser tout simplement les opérateurs de comparaison on va avoir une première condition is in order to find plus grand que use of choice donc ça c'est ici le nombre à trouver et plus grand le nombre d'entrées par l'utilisateur eh bien on va tout simplement afficher la phrase le nombreux mystères est plus grand que you the chase là encore on utilise un f string pour inséré à l'intérieur de ma chaîne de caractères le nombre que l'utilisateur a rentré le deuxième cas de figure et bien c'est tout simplement linverse on va vérifier si normal to find est plus petit que use of choice donc si c'est le cas on va indiquer que le nombre mystère est plus petit que use of choice donc là rien de compliqué jusqu'à présent et le dernier cas de figure et bien c'est le cas de figure où les deux nombres sont égaux donc là on pourrait spécifier la condition on pourrait dire l ihf noble to find & gas légal a huge boys ça pourrait être plus explicite de mettre sa plus clair pour quelqu'un qui arrive dans notre script là dans ce cas ci c'est assez clair de voir que s'il n'est pas plus grand ou plus petit il est forcément égale donc moi dans ce cas ci je vais juste mettre un hells qui va forcément considéré que les deux nombres sont égaux puisqu'il signe n'est pas plus grand ni plus petit il est forcément égale donc là dans le elle ce qu'est ce que je fais et bien tout simplement un break donc brake comme je vous ai expliqué tout à l'heure ça nous permet de sortir de la boucle donc si le nombre est égal eh bien on sort de la boucle et on arrive à la fin du script ici pour vérifier si l'utilisateur a gagné ou perdu et si oui à combien d'essais ce que je fais à la fin ici c'est tout simplement des crémants t.rim henning à 100 donc là ce que je fais c'est moins égal 1 ce qui est équivalent à faire en fait tout simplement remaining adam segal riz manigat times - 1 donc c'est juste une façon plus rapide de l'écrire puisque là vous voyez qu'on répète deux fois le nom de la variable donc si on veut juste enlever un à cette variable on va faire rimer ndinga times moins égal à noter que ça peut marcher avec n'importe quel opérateur on pourrait faire plus égale fois égale divisé égal et c'est là dans ce cas ci je veux enlever un à cette variable ici donc je fais moins égal 1 ça ça va me permettre tout simplement de décret menthe et le nombre d'essai puisque si vous vous rappelez bien au-dessus la condition de la boucle c'est de boucler tant que remaining adams est plus grand que 0 donc si en fait on ne fait pas cette décret mentation ici si on enlève pas un as est variable eh bien oui manigat thanh tu seras toujours plus grand que zéro puisque on la définit à 5 ici donc 5 est plus grand que 0 et donc si on ne décrète pas cette variable ici on va avoir une boucle qui ne se termine que quand l'utilisateur aura trouvé le nombre ici avec la condition health et le break donc il faut bien faire attention de décret mentez cette valeur pour que l'utilisateur n'est que cinq essais de disponible donc une fois qu'on sort ici en fait on va afficher si l'utilisateur a gagné ou perdu donc là en fait je vais tout simplement vérifier si oui manning a time est égal à zéro ou pas ça ça va me permettre de varier le message que je vais afficher à la fin puisque le fait de sortir de la boucle ne me dit pas si j'ai gagné ou perdu en fait on peut sortir de la boucle soit parce qu'on a trouvé le nombre mystère donc avec la condition elle 6,6 soit parce qu'on n'a plus dé c'est donc dans ce cas là on a perdu donc si remaining adams est égal à zéro ça veut dire qu'on a plus d'essais du disponible et donc on va afficher que le nombre mystère était égal au nombre à trouver là encore avec un f string et on termine avec fin du jeu si par contre oui mais ni gâteuse n'est pas égal à zéro donc ça veut dire qu'on va aller dans le health et ça veut dire qu'il est forcément plus grand que 0 donc s'il est plus grand que 0 et bien on affiche bravo le nombre mystère était bien et on affiche le nombre est là on va afficher le nombre d'essais que ça a pris en fait à l'utilisateur donc ce qu'on va faire ici c'est afficher 6 - remaining athens alors pourquoi si c'est bien parce que si je retourne ici au début on a ri manigat times qui est égal à 5 imaginez que j'arrive ici et que directement l'utilisateur trouve le bon nombre donc imaginons que le nombreux mystères ses seins quand on arrive ici on demande à l'utilisateur de rentrer un nombre est directement l'utilisateur trouve le nombre qui était le nombreux mystères donc le nombre 50 et bien dans ce cas ci on va directement passé sur le break et on ne va même pas enlever un à la variable oui mais ni gâteuse donc ça veut dire que la variable rimington ce sera toujours égale à 5 donc quand on arrive ici rimini ghatam serait égal à 5 dans le cas où l'utilisateur à trouver le nombre du premier coup et donc si on veut dire qu'il a trouvé en un essai il faut faire 6 - 5 et ça nous donne bien s'ils trouvent en deux essais et bien la variable sera égal à 4 donc on aura bien 6 - 4 qui est égal à 2 et ainsi de suite donc c'est pour ça ici qu'on a mis 6 et pas 5 si je mets 5 dès que l'utilisateur trouve le nombre si le trouve dès le premier essai on aura 5 - 5 et ça va afficher 0 nous c'est parce qu'on veut on veut vraiment affiché 1 s'il trouve en un essai de s'il trouve man 2 et 7 c donc voilà pour la dernière condition ici avec louis manigat times qui est égal à zéro ou la condition elle skie et qu'il a gagné là alors vous pouvez faire en fait l'un vers si vous voulez moi je trouve ça plus claire de m & gas légal on pourrait très bien faire l' inverse c'est à dire mettre différents 2 0 et mettre ces deux 'prince' si à l'intérieur de ce bloc et se prennent ici à l'intérieur du health là c'est à vous de voir dans quel sens vous le faites là dans ce cas ci je vérifie que c'est égal à zéro donc si c'est égal à zéro c'est qu'on a perdu et si ce n'est pas égal à zéro c'est qu'on a gagné là encore on pourrait être un peu plus explicite et faire un et leaf en disant que oui mais nick adams est plus grand que 0 ça marcherait également mais dans ce cas ci je préfère également utiliser tout simplement un hells donc voilà pour la solution de cet exercice comme je vous disais au début il ya plein de façons de réaliser cet exercice donc ne vous inquiétez pas si vous n'avez pas exactement la même chose que moi l'important comme toujours c'est d'avoir un script qui fonctionne dans ce projet vous allez devoir créer un jeu de rôles textuel dans le terminal donc on a plusieurs règles pour ce jeu que vous trouvez donc en bas de cette vidéo ici donc à savoir que le jeu comporte deux joueurs donc vous est un ennemi vous comme le joueur vous commencez avec le même nombre de points de vie donc avec 50 points de vie donc toutes ces valeurs que je vous donne dans l'énoncé des valeurs que j'ai déterminé et qui vous permettent d'avoir un jeu qui n'est ni trop difficile ni trop facile mais vous êtes totalement libre de l'échangé d'utiliser d'autres valeurs bien sûr donc vous est l'ennemi vous commencez les deux avec 50 points de vie vous vous avez un avantage c'est que vous avez trois potion qui vous permettent de récupérer des points de vie l'ennemi lui il ne dispose d'aucune potion ses potions elles vous permettent de récupérer un nombre de points de vie qui va être aléatoire et qui va être compris entre 15 et 50 points de vie votre attaque elles infligent à l'ennemi des dégâts aléatoire qui sont compris entre 5 et 10 points de vie donc un peu moins que l'ennemi qui lui va pouvoir vous infliger des dégâts supérieurs car il n'a pas de potion donc des dégâts compris entre 5 et 15 points de vie également lorsque vous utilisez une potion vous passer le tour d'après donc quand vous choisissez d'utiliser une position plutôt que d'attaquer vous récupérer des points de vie sauf que l'ennemi va vous attaquer au même tour pendant lequel vous prenez la potion est le tour d'après vous ne jouez pas et l'ennemi vous attaquent encore donc il va vous attaquez deux fois de suite parce que vous vous prenez une potion il vous passer le tour d'après donc je vais vous montrer ce que ça donne si je lance le script dans le terminal et on va jouer une partie ensemble r que je vais gagner donc je lance on me demande est ce que je souhaite attaquer ou utiliser une potion donc j'ai uniquement deux choix de disponible il va falloir gérer les cas où l'utilisateur ne rentre pas quelque chose de valide donc par exemple si je rentre le nombre 3 ou une chaîne de caractères ou quoi que ce soit qui n'ait pas soit un soin d'eux donc là pour commencer je vais choisir d'attaqué donc je vais choisir l'option numéro 1 et on va voir que j'ai dans ce cas-ci infligé cinq points de dégâts à l'ennemi et que l'ennemi m'a infligé huit points de dégâts donc à chaque tour vous allez devoir afficher ces deux phrases qui indique le nombre de points que vous avez infligées à l'ennemi et le nombre de points que l'ennemi vous a infligé on affiche ensuite le nombre de points de vie qu'il reste à vous et à l'ennemi donc dans ce cas ci il ne me reste que 42 points de vie et 45 points de vie pour les demies j'ai ensuite une ligne ici qui me permet de séparer les différents tours et on me demande de nouveau par la suite si je souhaite attaquer ou utiliser une potion donc là on est à 42 45 je vais continuer d'attaquer on est à 34 37 donc là on a infligé les 2 8 points de dégâts rappelez-vous que moi je peut infliger des points qui sont compris entre 5 et 10 et l'ennemi entre 5 et 15 donc là on à 34,37 c'est encore assez proches l'un de l'autre donc je vais continuer d'attaquer 29 32 22 25 je continue là je commence à être en situation critique 8 à 18 donc je vais prendre une potion donc je choisi l'option numéro 2 là vous voyez que donc j'ai choisi de récupérer des points de vie avec la potion malheureusement je suis vraiment dans la fourchette la plus basse je n'ai vraiment pas de chance puisque la potion peux vous donner de 15 à 50 points de vie et là on voit que j'ai vraiment le minimum j'ai récupéré 15 points de vie il m'en reste donc deux ce qui est affiché ici deux positions restantes donc je me suis amusé à mettre des emoji pour que ça rende le truc un peu plus sympa que juste avoir du texte blanc sur un fond bleu donc là l'ennemi pendant ce tour ci m'a infligé 11 points de dégâts et le tour d'après donc vous voyez que je passe mon tour donc c'est indiquer ici vous passez votre tour donc ça c'est après que vous ayez utiliser une potion est l'ennemi il m'a infligé sept points de vie à ce tour ci donc là je suis encore en mauvaise posture donc je vais continuer en réutilisant une potion là encore j'ai eu quand même un peu plus de chance 27 points de vie il me reste plus qu'une potion là sauf que l'ennemi n'a infligé 12 points de vie dans ce tour ci est encore douze points de vie après donc là je vais je vais continuer on va essayer de reprendre une potion on va tenter le tout pour le tout et là j'ai eu de la chance ont beaucoup de chance puisque j'ai 48 points de vie qui m'ont été redonnés dont je n'ai plus de pression mais là je suis en bien meilleure posture puisque j'ai maintenant trente points de vie et uniquement 18 pour les demies donc là vous voyez encore une fois qu'à chaque fois que j'utilise une potion je passe mon tour je vais en profiter également pour vous montrer ce qui se passe quand j'essaye d'utiliser une potion alors qu il ne m'en reste plus donc là je vais volontairement choisir l'option numéro deux alors qu'il ne me reste plus de potions de vie et là vous voyez que ça va tout simplement nous afficher qu'on a plus de potions il nous re demander si on veut attaquer ou utiliser une potion donc dans ce cas ci je vais attaquer puisque je n'ai pas grand chose d'autre que je puisse faire donc j'attaque et là on est à 17,12 dont je vais tenter le tout pour le tout j'ai plus grand-chose à faire 3 à 5 alors là on va voir qui des deux gagne et j'ai gagné donc là j'étais obligé de gagner puisque il reste en fait cinq points de vie à l'ennemi et mes attaques étaient comprises entre 5 et 10 donc même dans la fourchette la plus basse même si j'avais un nombre aléatoire qui était à 5 vu que c'est moi qui commence à attaquer et bien au minimum j'enlevais cinq points de vie donc l'ennemi n'aurait plus que 0 points de vie l'ag infligé sept points de vie en plus donc il est forcément mort donc là il n'ya pas effectivement il n'ya pas veille avait pas beaucoup de suspense j'étais obligé de gagner puisque forcément comme vous attaquer en premier si vous attaquez suffisamment pour que l'ennemi n'est plus suffisamment de points de vie donc zéro ou moins et bien l'ennemi n'a plus le temps d'attaquer et donc vous gagnez donc voilà pour l'énoncé de cet exercice n'hésitez pas à relire tout ça plus calmement de façon textuelle donc en dessous de cette vidéo est d'essayer ensuite de créer le script qui puisse permettre de faire le déroulé de ce jeu n'hésitez pas bien entendu avant de rentrer dans le code directement à décrire les étapes en français à bien analyser ce que vous avez besoin de faire et quelles notions en python vous avez besoin d'utiliser pour régler ces problèmes et ensuite commencé à coder et essayer de faire ce petit jeu en variant les règles si vous souhaitez en changeant les points de vie où le nombre de potions ou en rajoutant des ennemis amusez vous faites ce que vous voulez c'est l'intérêt d'avoir des projets comme celui-ci qui permettent de faire des trucs assez sympathique en même temps qu'on apprend à développer en python dans cette vidéo qui risque d'être un peu longue on va explorer ensemble ma solution à ce projet de jeu de rôle dans lequel vous devez combattre un ennemi alors vous connaissez le refrain il y a des centaines de façons de faire ce genre de scripts surtout quand on commence à avoir pas mal de lignes de code comme ici donc moi c'est ma façon de faire il ya probablement des choses qui peuvent être améliorées des choses que vous aurez fait différemment mais ce n'est pas grave l'important c'est d'avoir un script qui fonctionne et qui quand même ne soit pas trop horrible au niveau du code mais pour ça quand on apprend forcément on ne peut pas avoir le code le plus beau du monde l'important c'est déjà d'avoir dans quelque chose qui fonctionne et avec ma solution j'espère que vous pourrez voir différentes façons de résoudre ce problème donc la première chose que je fais c'est d'importer le module rindom puisqu'on va devoir générer des nombres aléatoires pour l'attack et pour le nombre de points de vie qu'on va pouvoir récupérer avec une potion donc les imports ont les faits tout au début du fichier donc je mets déjà c'est un port ici et par la suite on utilisera la fonction rensing du module rindom dans la boucle principale du jeu ensuite j'ai un nombre de variables globales ici qui sont définies directement au premier niveau de mon script et qui vont me servir là encore à l'intérieur de la boucle du jeu donc j'ai les points de vie de l'ennemi les points de vie du joueur également le nombre de potion est également une variable que j'appelais skipton qui va me permettre de savoir si je dois passer un tour ou non puisque dans l'énoncé je vous avais dit que quand on utilise une potion et bien en fait le joueur va passer le tour d'après donc on a besoin d'avoir une variable qui va contenir cet état pour pouvoir à l'intérieur de notre boucle savoir si l'utilisateur doit passer son tour ou non donc pour l'instant je lé initialise à foils puisque la première fois qu'on va jouer et bien on ne va pas passer notre tour et c'est uniquement quand on va prendre une position qu'on va changer l'état de cette variable pour indiquer dans notre boucle que l'on ne doit pas jouer donc les pointes de vie pour l'ennemi et pour le joueur sont à 50 le nombre de positions est à 3 donc on a trois nombres entiers ici qui vont être utilisés à l'intérieur de notre boucle pour savoir quand est ce que l'ennemi où le joueur a perdu et combien de position il nous reste j'ai à la fin ici un print qui m'indique que le jeu est terminé maintenant on va avoir tout le code du jeu qui se retrouve donc dans cette belle boucle while que j'ai mis à tchô dans quoi ils jouent ça veut dire que c'est une boucle infinie cette condition ne peut jamais être fausse puisque tchoyi ci sera toujours vrai donc moi ce que j'ai décidé de faire c'est en fait en fonction de certaines conditions de faire un break donc brake qui me permet de sortir de cette boucle et c'est uniquement quand ces conditions vont être vérifiées par exemple quand l'ennemi aura moins de 0.2 vie ou quand le joueur aura moins de zéro point de vue ou 0 et bien qu'on va sortir de cette boucle avec l'instruction break donc il y aurait d'autres façons de faire on pourrait également choisir de sortir de cette boucle avec d'autres conditions par exemple quand l'ennemi ou le joueur ont des points de vie qui sont inférieures ou égales à zéro donc c'est une autre façon de faire le script moi j'ai préféré y aller comme ça avec une boucle choo donc une boucle infinie et après à l'intérieur de cette boucle en fonction de certains paramètres et bien sortir de cette boucle et finir le jeu donc on va voir un peu plus en détail ce qu'il y a à l'intérêt de cette boucle donc on va commencer déjà avec le jeu du joueur c'est le joueur qui joue en premier est la première chose qu'on va vérifier c'est est ce que le joueur doit passer son tour donc si ce clip tourne donc la gemmi if people ça veut dire que si cette variable et tatchou eh bien on va rentrer à l'intérieur de cette structure conditionnelle qu'est ce qu'on fait à l'intérieur de cette structure conditionnelle et bien on affiche tout simplement vous passez votre tour et en mai ce qui pulse a fault donc ça veut dire qu'on va réinitialiser cette variable à sa valeur par défaut qui était à falls pour que tout simplement quand on continue à la prochaine itération de notre boucle eh bien on ne repasse pas dans cette structure conditionnel puisque on passe notre tour une seule fois et après on revient au jeu du joueur donc ça c'est si on passe notre tour donc je commence avec cette condition c'est pas la condition dans laquelle on va rentrer la première fois qu'on lance le script forcément puisque l'âge est initialisée comme je voulais 17 variable à false donc la première fois qu'on lance le script on va rentrer dans la boucle au wild cette variable sera égale affole donc on ne va pas rentrer dans ce cas de figure là on va aller directement dans le health et c'est uniquement quand on va utiliser une potion est que cette variable va devenir floue et bien que l'on va rentrer à l'intérieur de cette structure est passé notre tour donc nous là on va passer dans le lte dans le elle ce qu'est ce qu'on va faire on va déjà demander à l'utilisateur ce qu'il veut faire donc pour ça j'ai initialise une variable use of choice que génissiat lisa une chaîne de caractères vide puisque l'utilisateur n'a pas encore fait de choix et je vais à prayssas vérifier en fait si use of choice et contenus ou non dans cette liste donc si ce n'est pas le cas et là ce n'est pas le cas puisqu'il est initialisée à une chaîne de caractères vide eh bien on va demander à l'utilisateur de choisir une option alors pourquoi je fais ça et bien c'est tout simplement pour m'assurer que l'utilisateur choisit une des deux options qui sont disponibles donc le 1 ou le 2 donc là en fait je suis obligé de définir cette variable au préalable si je ne le fais pas si j'enlève cette ligne là quand je vais arriver à cette ligne de code python va me dire que use of choice n'est pas défini donc il faut bien la définir au préalable et là il faut il faut mettre quelque chose en fait qui est autre que 1 et 2 parce que si je mets un ou deux et bien là on va en fait présélectionnés le choix de l'utilisateur moi je veux qu aucun choix ne soit fait par défaut et que tant que use of choice n'est pas donc not in dans cette liste donc n'est pas soi soit 2 eh bien on va demander à l'utilisateur ce qu'il veut faire donc là avec une poutre on va demander à l'utilisateur s'il souhaite attaquer ou utiliser une position si l'utilisateur rentre un ou deux et bien cette condition ne sera plus vérifié use of choice sera dans la liste 1 et 2 et donc on ne va pas continuer à boucler par contre si l'utilisateur choisi une autre option qui n'est pas valide par exemple 3 4 5 ou une chaîne de caractères qui n'est pas valide qui n'est pas contenue en fait dans cette liste eh bien on va revenir au niveau de cette boucle le wild et on va redemander à l'utilisateur de choisir une option valide donc j'ai juste vous montrer ce que ça donne si je lance le script on va déjà se concentrer sur cette partie ici je vais vous montrer que si je lance le script actuellement on a bien donc la phrase qui s'affiche qui me demandent souhaitez vous attaquer ou utiliser une potion et si je rentre autre chose que 1 ou 2 donc par exemple 3 ou une lettre où une chaîne de caractères aléatoires et bien vous voyez qu'à chaque fois on va boucler avec ce wild pour redemander à l'utilisateur de choisir une option valide donc ça c'est pour la boucle whale ici une fois qu'on a une option valide donc quelque chose qui est compris dans cette liste donc soit l'option 1 soit l'option 2 on va aller dans cette autre structure conditionnelle qui va effectuer soit une attaque soit boire une potion pour récupérer des points de vie donc on refait une structure if he leaf avec you're the chase qui soit égal à la chaîne de caractères soit égal à la chaîne de caractères deux donc faire bien attention d'ailleurs avec input on récupère à chaque fois une chaîne de caractères donc même si on récupère le nombre ou deux il faut toujours comparer que ce soit dans notre liste ici ou dans la comparaison ici avec notre structure conditionnelle eh bien il faut comparer par rapport à la chaîne de caractère qui va contenir le nombre un ou deux donc dans le cas d'une attaque qu'est ce qu'on va faire et bien on va déjà calculé combien de points de dommage on va affligé à l'ennemi donc pour cela j'utilise cette fameuse fonction rendina du module rindom donc le module rindom on n'oublie pas qu'on l'a emporté ici tout au début de notre script si vous ne portez pas vous ne pourrez pas utiliser le random point lundin tu es je vais utiliser donc une attaque qui va être aléatoire entre 5 et 10 donc cinq à dix points de dommage qu'ils vont être infligées à l'ennemi j'utilise ensuite cette ligne ici qui va me permettre de soustraire mon attaque au point de vie de l'ennemi donc je fais et demi elle qui est en fait cette variable ici qu'on avait défini à 50 au départ eh bien je vais soustraire à cette variable les points de dommage que j'ai récupéré à la ligne précédente donc par exemple si on a ici la fonction rensing qui nous retourne le nombre 7 on va faire 50.7 est l'ennemi n'aura plus que 43 points de vie et pour finir on affiche avec print et af tracking le nombre de points de dommage qu'on a infligées à l'ennemi donc on dit vous avez infligées on a sert à l'intérieur de notre rêve string le nombre de points de dommage qu'on a affligé donc notre variable une attaque ici et on dit donc points de dégâts à l'ennemi j'ai rajouté une petite épée pour pimenter un petit peu le truc à la fin et on n'oublie pas de mettre le mi6 qui définit le f string sans ça on ne pourrait pas inséré deux variables à l'intérieur de notre chaîne de caractères on va ensuite avoir le choix de la potion donc avec le elle y fit ci est l'option numéro 2 donc quand on voit une potion qu'est ce qu'on va faire on va déjà vérifié s'il nous reste des potions donc pour ça on refait une structure conditionnelle à l'intérieur de cette structure conditionnel donc faites bien attention aux différentes orientations ici si vous faites ça comme ça ici et bien ça ne marchera pas il faut bien que notre structure soit contenu à l'intérieur du et leaf qui est le cas de figure où on choisit d'utiliser une potion donc si il me reste des potions ça veut dire que number of fashion est plus grand et strictement supérieur à 0 eh bien on va pouvoir calculer le nombre de points de vie qu'on veut récupérer donc là encore avec rindom points lundin et on va récupérer un nombre entre 15 et 50 cette fois ci que je mets dans une variable ocean eyes et je vais rajouter ces points à la santé de mon joueur donc appelé year r dc si je fais un plus égales cette fois ci puisque on veut rajouter ses points de vie que nous donne la potion à la santé de l'utilisateur on va des crémants t par contre le nombre de positions donc on fait moins égale 1 1 comme ça si on avait par exemple 3 potion il ne nous en restera plus que deux et ainsi de suite on a ensuite cette fameuse variable skipton que l'on va passer à chew puisque quand on boit une potion on veut passer le tour d'après donc là on indique à notre programme que le tour suivant quand on va revenir au niveau de notre boucle au wild et bien skipton comme il sera égal à chew et bien ça va nous faire passer ici dans cette structure conditionnelle on va passer notre tour on aura donc pas le choix ici de faire une attaque ou d'utiliser une position et on aura uniquement l'ennemi par la suite il m'a nous attaquer donc toute cette logique de passer un tour si on voit une potion elle est gérée grâce à cette variable ici skipton que l'on passe à tous ils ont pas une potion et quand on a passé notre tour ici en la réinitialiser un folk comme on l'avait vu précédemment et pour finir on fait là encore un print donc je vais pas vous faire le truc au complet vous voyez c'est assez explicite on a le f string avec la phrase qui indique le nombre de points de vie qu'on a récupéré et le nombre de positions restantes là encore avec des petits emoji pour faire un truc un peu plus sympa si par contre on a plus de potions donc ça veut dire que number of fashion ici est égal à zéro ou moins eh bien on va aller dans le health et dans le esse qu'est ce qu'on fait et bien on dit tout simplement que vous n'avez plus de potions et on va utiliser l'instruction continued donc quand in you qui permet de passer à la prochaine itération de ma boucle donc de la boucle qui est cette boucle while ici donc ça veut dire que si on a plus de potions en fait on va revenir tout au début de la boucle while on va refaire une vérification donc là skipton sera égal à falls on ne va donc pas passer dans cette structure ici on va aller directement dans le health et on va redemander à l'utilisateur s'il souhaite attaquer ou utiliser une potion donc moi c'est la façon de faire que j'ai préféré ici c'est juste de faire un continued et comme ça si l'utilisateur veut utiliser une potion mais qu'il n'en a plus et bien on va tout simplement lui réafficher cette phrase pour lui demander ce qu'il veut faire donc là forcément s'il choisit de réutiliser une potion il va un peu tourner en rond mais c'est assez logique si vous utilisez une potion et qu'on vous dit que vous n'avez plus de potion est bien la seule option qu'il vous reste c'est d'attaquer donc on mais cette phrase ici et l'utilisateur comme ça peut corriger son choix si vous le voulez pour à la place d'utiliser une potion qu'il n'a plus et bien attaquer j'en profite pour faire une petite parenthèse ici juste pour vous indiquer que souvent quand on a deux ifa la suite comme ceci donc là on a un et leaf et ensuite un if on pourrait également mettre cette condition à la suite de la première donc on pourrait dire l if you're the chase égale égale à 2 end donc utiliser end pour mettre les deux conditions l'une après l'autre donc pour n'utiliser la potion en fait que s'y est bien l'utilisateur choisit le choix numéro deux et que le nombre de potion est plus grand que 0 dans ce cas ci on pourrait donc enlever ce if prendre toutes ses lignes ici et les décalés d'une incantation maîtres le health ici après le l ihf donc moi j'ai choisi de ne pas faire ça parce que je trouve que ce n'est pas forcément très claire dans ce cas-ci que le health est attaché au cas en fait où l'utilisateur n'a plus de potions donc si vous lancez ce script là ça va marcher sans problème mais voilà je trouve que c'est pas forcément la façon la plus claire ça marche ça fait une invitation - moi personnellement j'ai préféré garder les deux structures ici séparés pour qu'on est bien déjà l'indication clair en fait qu'on choisit une potion est ensuite la vérification de est-ce qu'on a la potion donc si oui on fait ça et sinon eh bien voilà quand on a le hells qui directement avec suez leaf comme je dis ça marche aussi mais je trouve que on a l'impression que le health et par rapport au fait que l'utilisateur aurait choisi une autre option alors que ce n'est pas le cas donc voila moi je préfère faire comme ça mais juste pour vous dire que ça marche également en utilisant le hand et en mettant les deux conditions sur la même ligne donc ça c'est pour l'utilisation de la potion donc là on a géré les attaques du joueur donc l' attaque où la prise d'une potion avec cette structure ici donc tout ça c'était contenu dans notre aile ce que l'on avait ici donc le if el sissi qui est le jeu du joueur et ensuite on va faire jouer les nuits donc toute cette structure i fell si si elle sert uniquement à savoir si on va passer un tour ou non par contre l'ennemi lui il n'a pas cette logique de passer un tour il ne peut pas prendre de position il peut juste attaquer donc l'ennemi il va attaquer directement ici avant ça on va vérifier quand même qu'il n'est pas mort donc c'est ce qu'on va faire ici on va vérifier si la santé de l'ennemi est inférieur ou égal à zéro donc si elle est inférieure ou égale à zéro ça veut dire qu'on a infligé suffisamment de points de dégâts à l'ennemi pour qu'il soit tué donc on va afficher tu as gagné et on va utiliser cette fameuse instruction break qui va nous faire sortir de la boucle choo donc on ne donne même pas l'occasion à l'ennemi d'attaqué et c'est normal puisque il l'a des points de vie qui sont inférieures à zéro donc il est mort et on sort donc de la boucle wilde et on affiche la fin du jeu si par contre cette condition n'est pas vérifié ça veut dire que l'ennemi est toujours vivant et il va pouvoir donc attaquer ce qu'on va gérer ici donc là comme je vous disais c'est et demi il n'a pas de notion de de passer un tour ou non donc on n'a pas cette structure i fell ce que l'on avait pour le joueur on va directement calculer le nombre de points que l'ennemi va infliger avec random point lundin tu là il peut infliger des points de dégâts de 5 à 15 donc des points de dégâts un peu plus fort que les notes qui était juste de 5 à 10 c'est logique puisque l'huile ne peut pas utiliser de potions qui ne peut pas utiliser de potions mais par contre il peut nous infliger un peu plus de points de dégâts on va avoir la même logique ici où on va décret menthe et la vie du joueur donc players ici en faisant un moins égale et on va enlever la tacc de l'ennemi vous vous demandez peut-être en passant pourquoi on utilise cette cette variable ici pour qu'on ne fait pas tout simplement directement rindom point lundin tu es en les enlève comme ceux ci en se passant note variable et bien tout simplement parce qu'on va afficher ensuite le résultat dans notre print donc là le problème c'est que si on reprend cette ligne ici et qu'on la fiche à l'intérieur de notre de notre phrase on n'aura pas forcément le même résultat puisque à chaque fois qu'on veut utiliser leur endings eelv a recalculé un nombre aléatoire entre 5 et 15 donc là on pourrait par exemple enlever 12 points de dégâts à la vie du joueur et après affiches etc on enlève 15 par exemple donc il est bien important de le calculer cette information qu une seule fois on le stock donc dans une variable et ensuite cette variable on utilise à la fois pour enlever de la vie à notre joueur est également pour l'affiché donc c'est bien important ici de ne pas répéter cette fonction que ce soit pour l'attack de l'ennemi ou l'attaquent du joueur et c'est pour ça en fait que l'on va créer cette variable ici qui nous permet de garder le résultat de la tacc de l'ennemi et de l'infliger aux joueurs ensuite on va faire une petite vérification pour cette fois-ci s'assurer que le joueur n'est pas mort donc si players and est plus petit 0 ça veut dire qu'il est mort et donc s'il est mort on affiche cette fois ci qu'on appelle du avec là encore un petit smiley triste et ont fait un break donc là c'est exactement la même logique qu avec l'ennemi sauf que plutôt que de vérifier la santé de l'ennemi on vérifie la santé du joueur là on vérifiait si la santé de l'ennemi était plus petit ou égal à zéro et dans ce cas si on avait gagné là après l' attaque de l'ennemi et bien logiquement on va vérifier si le joueur est encore en vie et s'il n'est pas envie donc si ses points de vie sont inférieures ou égales à zéro on dit qu'on a perdu un break et on affiche la fin du jeu pour finir on a quelques affichages de statistiques qui nous permet de savoir à peu près où on en est donc on fait là encore des print avec des f string et on affiche le nombre de points de vie qu'il reste pour le joueur pour l'ennemi et pour finir un petit séparateur ici donc c'est quelque chose que je fais assez souvent que vous avez probablement vu dans d'autres de mes vidéos j'ai des guillemets je mets un caractère à l'intérieur de ces guillemets donc dans ce cas-ci 1-1 et je le multiplie par un nombre donc ça m'évite d'avoir à taper plein de fois comme ça le caractère ici jamais je veux changer de caractère par exemple ne pas mettre un tiret mais un symbole égal ou 1-1 symbole multiplier un tiret ou des petits trucs comme ça qui peuvent vous permettre d'effectuer une ligne de séparation entre les différents tours de jeu eh bien vous avez juste à changer quelques éléments ici et ensuite vous les multipliez donc ça évite de retaper tout ça à la main donc voilà pour la structure du jeu vous voyez que en fait c'est assez logique c'est vraiment si vous avez écrit toutes les étapes avant de les faire en code normalement vous devriez arriver à quelque chose d'assez similaire est vraiment tout ce qu'on a fait ici en python c'est juste l'expression de la logique de jeu qui était décrite dans l'énoncé après il faut savoir bien entendu traduire toutes ces étapes donc par exemple soustraire des points de vie qu'on va faire avec moins égale faire des vérifications qu'on va faire avec des structures conditionnel donc des ifs des hells faire une boucle avec le wild donc tout c'est toute cette logique en fait que l'on va faire dans notre jeu et qui peuvent être traduits à partir d'un énoncé en français donc avant de vous laisser on va quand même tester que tout fonctionne donc je vais lancer le script et on va voir si mon projet fonctionne c'est le cas normalement puisque je les tester avant d'enregistrer cette vidéo donc on me demandait déjà si je souhaite attaquer ou utiliser une potion on va tester donc déjà autre chose que ces deux options pour voir si ça fonctionne donc là ça fonctionne dans le sens où ça ne fonctionne pas si vous me comprenez c'est à dire que ça ne fait pas planter le script ça me raf ich le choix puisque j'ai fait un choix qui n'était pas valide donc là tant que jamais quelque chose qui n'est pas valide on me repose la question si j'ai quelque chose d'eux valide donc par exemple avec le 1 qui va me permettre d'attaquer on va calculer les points de dégâts que j'ai inflige donc dans ce cas-ci 8 points de dégâts à l'ennemi on va vérifier ensuite si l'ennemi est toujours vivant ou non là comme on a des points qui sont compris entre 5 et 10 et que l'ennemi à 50 points de vie et bien c'est impossible de le tuer dès le premier tour donc forcément on ne peut pas passer dans cette structure ici donc la structure qui indique que j'ai gagné voilà celle ci ici puisque les points de vie sont encore supérieures à zéro donc dans ce cas si l'ennemi attaque lui il m'a infligé sept points de dégâts donc il m'en reste 43 l'ennemi 42 on a bien à cette ligne qui s'affiche entre les différents tours qui me permet de séparer les choses il y voit un peu plus clair et je vais pouvoir continuer donc les boucles comme ceci donc je vais attaquer de nouveau 9 points pour les deux donc j'ai encore un peu plus de points de vie que lui je continue d'attaquer je continue encore d'attaqué alors il m'en reste encore pas mal je vais continuer à attaquer et là vous voyez qu'il m'a infligé pas mal plus de points de dégâts que moi donc là je suis en mauvaise posture g 7 points de vie lui il en a 10 donc on va utiliser une potion et on va par la même occasion vérifier que je passe bien mon tour donc j'utilise l'option numéro 2 j'ai utilisé l'option numéro 2 ici ça a fait en sorte qu'on a récupéré des points de vie donc j'ai récupéré 34 points de vie il me reste deux potions donc c'est logique on commence avec 3 j'en ai utilisé une donc il ne m'en reste plus que deux l'ennemi ensuite m'afflige des points de dégâts donc on affiche ensuite les points qu'il me reste donc il me reste 35 et 10 pour lui on a bien le tour qui est passé donc vous passez votre tour donc ça c'est normal l'ennemi qui attaque lui il ne passe pas son tour ils attaquent à tous les tours donc ils attaquent on est à 24,10 donc là je veux continuer d'attaquer et j'ai gagné puisque j'ai infligées précisément dix points de dégâts et il ne restait plus que 10 points de vie à l'ennemi donc là on est rentré dans cette condition puisque enders étaient dans ce cas ci égal à zéro et là la condition c'est inférieur ou égal à zéro donc on est passé dans cette condition on a affiché tu as gagné on a fait un break qui nous permet de sortir de la boucle et on affiche fin du jeu et voilà j'ai gagné la partie donc voilà pour ma solution à ce projet ce projet de jeu de rôle vous voyez qu avec la façon dont on a créé novare yable ici c'est assez facile de tester en fait différentes configurations avec par exemple un ennemi qui aurait moins de points de vie où plus de points de vie ou avec un nombre différent de potions on pourrait même penser récupérer ses valeurs ici donc le 5 et le 15 qui est là l'étendue en fait de l'attak que peut infliger l'ennemi est pareil avec mon tour ici donc si je vais dans l' attaque avec le users qui est égal à 1 voilà 5 et 10 on pourrait penser à mettre ses valeurs donc le 5 et le 10 et le ce1 quelqu'un ici dans des variables globales qu'on mettrait au début de notre script comme ça ce serait encore plus facile de tester avec différentes étendu pour mon attaque et pour l'attack de l'ennemi donc ça c'est quelque chose qu'on fait assez régulièrement de mettre toutes les valeurs qui peuvent être modifiés tout au début de notre script pour ne pas avoir à aller fouiller à l'intérieur du script pour modifier ces valeurs qui peuvent nous faire tester en fait différentes configurations pour ce jeu de rôle donc voilà pour ce script n'hésitez pas à faire des tests à l'améliorer a ajouté des trucs à ajouter des différentes attaques différents ennemis à vous de voir ce que vous préférez il ya vraiment beaucoup de possibilités avec ce genre de jeu donc amusez vous et profitez en pour pratiquer python en même temps alors félicitations vous voilà arrivés à la fin de la première partie de cette formation et donc je vous propose de prendre quelques minutes pour passer en revue les principaux éléments théoriques que l'on a abordé durant cette première partie alors tout d'abord on a vu les variables avec différents types de variables on en a vu trois au début les chaînes de caractères les nombres entiers et les nombres décimaux donc string integer et float en anglais on a vu ensuite comment récupérer des informations de l'utilisateur grâce à la fonction input on a vu les fonctions de conversion dont qui nous permettent de convertir des variables d'un type à un autre on a vu notamment la fonction c't'une et la fonction int qui nous permettent de convertir une variable respectivement en chaîne de caractères et en nombre entier on a vu également comment récupérer le type d'une variable puisque pour faire en fait dès concaténation on a besoin de savoir le type des variables puisque python n'est pas aussi permissif que certains autres langages de programmation donc il faut absolument s'assurer de quel type sur nos variable avant de faire certaines opérations on a vu ensuite donc logiquement la concaténation avec notamment les strings qui est une nouveauté de python 3.6 et qui nous permet d'intégrer du code python et des variables directement à l'intérieur d'une chaîne de caractères et ce avec une syntaxe très ému oui on a vu ensuite les comparaisons avec notamment les boules est un donc les comparaisons qui nous permettait de comparer différents nombre ensemble et les bouley un qui nous permettent avec les structures conditionnelle qu'on a vu également dans cette première partie d'effectuer certaines opérations en fonction de ces résultats donc les boules et un qui sont vrais ou faux et les structures conditionnelle qui sont donc les ifs et 10 fait elle donc ces trois petits mots qui nous permettent de créer des structures conditionnelle et de modifier la logique de notre script on a vu également les blocs d'instruction donc qui sont en fait la mise en page de python qui nous permettent de créer des blocs qui appartiennent à différentes lignes de code donc comme dans les structures conditionnel notamment et des boucles qu'on a également vu dans cette première partie on a vu les opérateurs logique qui nous permette de chaîner différentes comparaisons les unes avec les autres et qui nous permettent donc en une seule ligne dans une structure conditionnelle par exemple de vérifier plusieurs conditions donc les opérateurs logique or and i note on a vu les listes donc les listes qui nous permettent de stocker plusieurs variables d'un coup plusieurs informations d'un coup à l'intérieur d'une même structure de données et on a vu comment ajouter enlevés et comment récupérer des éléments d'une liste on a vu également à ce propos les opérateurs d'appartenance donc in et not in qui nous permettent de savoir si un élément se trouve à l'intérieur ou non d'une liste on a vu la différence entre les fonctions et les méthodes donc une différence assez majeur et qu'est ce que ça signifie au niveau du code qu'on a exécuté avec ça on a vu du coup les objets mu à bhl est immuable donc nue à bhl qui signifie qu'un objet peut changer et immuable qui signifie qu'un objet ne peut pas changer est ce que ça implique au niveau des méthodes qu'on utilise sur ces objets on a vu deux modules le module rindom et le module os qui nous permettent de générer des nombres aléatoires pour le module rindom et d'effectuer des opérations sur notre système d'opération avec le module os donc avec ça on a commencé à voir qu'on pouvait vraiment manipuler beaucoup de choses notamment notre système d'exploitation directement avec python pour finir on a vu les boucles donc les boucles qui nous permette de répéter des opérations un certain nombre de fois on a vu deux boucles en fait les deux boucles qui existent en python qui sont la boucle fort et la boucle wilde et comment les utiliser sur des structures de données ou pour répéter une opération un certain nombre de fois alors dans la deuxième partie de cette formation on va s'attaquer à des concepts plus avancée du langage comme les fonctions les modules et les classes donc ce qu'on appelle en fait la programmation orientée objet alors rien de tout ça n'est absolument essentiel en fait ça va juste nous servira à mieux organiser notre code et éviter les répétitions principalement toute la logique de notre programme en fait elle va être réalisée grâce au concept qu'on a vu dans la première partie comme avec les variables les structures conditionnelle et les boucles donc c'est vraiment sous ses aspects qu'on a vu dans la première partie qui vont constituer 90% des scripts que vous allez écrire tout ce qu'on va voir dans la prochaine partie c'est plus des concepts avancés mais ça permet quand même de faire beaucoup de choses et vous ne seriez pas un programmeur python vraiment compétents si vous ne savez pas manipuler les fonctions les modules et les classes ne vous arrêtez pas ici continuer mais sachez que la plupart de ce que vous allez écrire au final ça va être en fait tout ce qu'on a vu dans la première partie et voilà c'est terminé pour la première partie de cette formation python que je vous ai mises disponible gratuitement sur youtube situe à apprécier ma pédagogie et que la suite t'intéresse et si tu veux plus de quiz d'exercice de codes et de projets je t'invite à aller voir la formation complète sur eu d'ennemis ou à ta bonne et à doc string pour pouvoir profiter de plus de 50 heures de contenu sur le langage python et si tu souhaites soutenir la chaîne n'oublie pas de mettre un pouce bleus et partage cette vidéo à tout ton entourage parlant autour de toi et bien sûr abonne toi à la chaîne pour plus de contenu de ce genre