bienvenue dans ce cours d'une heure pour apprendre à coller en python ce cours est destiné au débutants donc vous n'avez besoin de rien savoir pour pouvoir le suivre pas besoin de connaissance en programmation ni même en Python et pas besoin non plus d'être fort en math on va partir de la base en commençant par installer tout ce dont vous avez besoin pour commencer à coder en Python ensuite on voit tous les concepts de base de la programmation qui vous donneront des fondations solides pour continuer votre apprentissage en python en plus on va faire plusieurs projets
et exercices concrets ensemble pour assimiler la théorie de manière durable avec de la pratique à la fin de ce cours vous serez capable de vous orienter dans la direction que vous voulez avec Python vous pourrez par ex exemple apprendre à faire des sites web avec le développement web backend vous orienter vers la data science ou bien vers l'apprentissage machine faire de l'automatisation ou même coder des jeux vidéos python vous permettra de faire bien plus que ça il est utilisé partout et c'est le langage le plus populaire en 2024 et ce depuis des années d'après plusieurs
classement et même si vous décidez de passer à un autre langage de programmation après phython est parfait pour commencer à apprendre à coder et comprendre les bases donc démarrons sans plus tarder mais avant de commencer et comme d'habitude je vais vous demander de liker cette vidéo et vous abonner à cette chaîne si vous voulez plus de tutoriels de ce genre pour pouvoir coder en Python on va devoir installer python sur votre machine et un éditeur de texte pour pouvoir écrire du code pour Python rendez-vous sur les site officiel de pythonpython.org ou suivez le lien en
description une fois sur le site appuyez sur Download et télécharger la dernière version de Python une fois le téléchargement fini rendez-vous dans votre explorateur de fichier et double cliquer sur le fichier que vous venez de télécharger si vous êtes sur Windows faites bien attention python au Pass ça permettra à votre ordinateur de savoir où se trouve python ensuite cliquez sur Installer maintenant et suivez le processus d'installation après quelques secondes pon a fini de s'installer et vous pouvez fermer la fenêtre ensuite on va avoir besoin d'un éditeur de texte pour ça on va choisir Visual Studio
code pour installer Visual Studio code rendez-vous sur code.visualstudio.com encore une fois je vous mets le lien en description une fois sur le site vous pouvez télécharger l'installateur pour Mac Windows ou Linux nous on va prendre celui pour Windows le téléchargement se lance quand le téléchargement est fini rendez-vous dans l'explorateur de fichier et double cquez sur ce que vous venez de télécharger l'installateur se lance accepter les Conditions d'Utilisation appuy sur Suivant suivant suivant installer et si tout s bien passé vous devrez voir cet écran appuyez sur Terminer et Visual Studio code se lance Visual Studio code
est un environnement de développement intégré complet qui permet de développer dans à peu près tous les langages et pour ça il fonctionne avec des extensions comme on veut interagir avec Python on va devoir installer l'extension python rendez-vous dans la partie extension à gauche de Visual stud code et taper python choisissez la première extension développée par Microsoft et appuyez sur installer une fois l'installation de l'extension python fini allez dans fichier faites nouveau fichier et chois yon on va sauver ce fichier en file et puisve en appuant sur contr S et je vais appeler mon fichier hell
Baras World suivi de l'extension l'extension étant celle réservé au fichier python le programme typique qu'on fait à chaque FO qu'on apprend un nouveau langage on peut coder un H World avec la fonction print la fonction print une fonction qu'on va très souvent et qui permet d'afficher des valeurs c'est le mot print suivi de parenthè dans ces parenthèses on va mettre des simples ou des doubles guillemets avec une phrase ici hello virgule World une fois que vous avez écrit ça vous pouvez appuyer sur le bouton Play pour lancer votre programme python si tout s'est bien passé
en bas de votre écran vous devriez voir la phrase Hello World s'affiché et voilà c'est tout ce dont vous avez besoin pour commencer à créer des programmes en Python et suivre ce tutoriel on a vu comment afficher du texte en python avec la fonction son print et maintenant on va voir comment afficher d'autres types de valeurs à savoir des entiers on peut afficher des entiers en python en fournissant la valeur du nombre directement à la fonction print en lançant notre programme on voit que la valeur 3 a été affichée dans le terminal ces entiers sont
sujets aux mêmes règles en ma ça veut dire qu'on peut effectuer dessus des additions des soustractions on peut aussi les multiplier les diviser faire l'exposant faire la division entière donc ici la division entière de 3 par 2 ça sera pas 1,5 mais 1 car on garde juste l'entier on peut avoir le reste de la division entière avec le signe modulo qui est représenté par le signe pourcentage ces opérations arithmétiques ont le même ordre de priorité qu'en math ça veut dire que si on a 4 x 3 + 2 on va d'abord faire 4 x 3
12 auquel on va ajouter 2 pour faire 14 et ça sera pas 4 x 3 + 2 ça veut dire 4 x 5 20 donc on a bien 4 x 3 12 auokel on va ajouter 2 pour avoir 14 si on voulait avoir 4 x 3 + 2 on devrait mettre C 3 + 2 entre parenthèses et là on aurait bien 4 x 5 ça veut dire 20 ça c'est pour les nombres entiers mais on a aussi les nombres décimaux qui ne sont du même type que les entiers pour voir le type d'une valeur on
utilise une autre fonction qui est la fonction type comme print elle s'écrit avec le mot type suivi de parenthèse et puis la valeur pour laquelle on veut savoir quel est le type on voit que pour les entiers ils sont du type int pour integer entier en anglais et pour les nombres décimaux ils sont du type flot pour nombre flottant tant qu'on y est on peut voir que notre phrase hello world était de type STR pour string ou chaîne de caractère en français on a vu ensemble comment afficher des valeurs en python on a vu les
trois premiers types de chaînes de caractères d'entier et de nombre décimaux on a aussi vu les différents opérateur arithmétique et l'ordre de priorité des opérations on a vu la fonction type qui permet de savoir quel est le type d'une valeur on va maintenant voir un concept important qui est les variables pour le moment on a juste écrit nos valeurs en dur en les fournissant directement à la fonction print ou type serait quand même pratique de pouvoir sauver ces valeurs pour les réutiliser plus tard et les manipuler et c'est ce à quoi servent les variables vous
pouvez voir les variables comme des boîtes dans lesquelles on met des valeurs pour pouvoir les réutiliser après donc pour déclarer des variables en python on utilise une typologie qui s'appelle le snake case qui est simplement un ou plusieurs mots séparés par des bares en bas donc par exemple on peut déclarer notre première variable en écrivant ma barre en bas variable on peut donner n'importe quelle valeur à cette variable disons par exemple 42 on peut ensuite afficher le contenu de cette variable en faisant print de ma variable si on lance le programme python on voit bien
qu'on a la valeur 42 d'afficher écrire le nom du variable s'appelle déclarer une variable et lui donner une valeur s'appelle lui assigner une valeur ici on a déclaré la variable ma variable et on lui a assigné la valeur 42 on peut réassigner une valeur à une variable en lui donnant une nouvelle valeur par exemple ma variable ne va plus être égale à 42 mais va être égale à Hello World qui est même d'un autre type si on lance le programme on voit bien que maintenant ma variable contient la valeur hello world on a vu les
types nombre entier nombre flottant et chaînne de caractère et ça va nous être utile maintenant parce qu'en python on peut pas mélanger n'importe quel type de variable prenons par exemple deux types de variables la première variable qu'on va appeler mon entier et la deuxième variable qu'on va appeler ma string imaginons qu'on veuille écrire hello world suivi de la valeur 42 on peut se dire qu'on peut écrire ma string plus mon entier mais si on lance le programme en python on voit qu'on a une erreur qui nous dit qu'on peut concaténer que des strings avec des
strings et là on a essayé de concatener une string avec un entier pour ça on peut faire ce qu'on appelle un cast on peut caster mon entier en string en disant une autre fonction qui est la fonction STR tout ce qu'onit fourni à la fonction STR sera transformé en string et donc dans notre exemple on se retrouve avec deux strings la string Hello World et 42 qui n'est plus un entier mais bien une chaîne de caractère si on lance le programme on voit qu'on a hello world suivi de 42 et on a plus d'erreur on
peut aussi transformer 42 en string directement dans la déclaration de variable en lui assignant le résultat de la fonction string qu'on a appliqué à 42 il faut faire cependant attention parce que maintenant disons qu'on ve ajouter 1 à 42 pour avoir 43 maintenant que ce n'est plus un entier mais une string on va avoir une nouvelle erreur qui qu'on ne peut pas ajouter un entier à une string si on caste un en string donc lançons le programme et on se retrouve avec 421 parce qu'en fait on a la string 42 àquelle on a ajouté 1
421 les mêmes règles s'appliquent sur les flottants donc si je déclare mon float et que assigne la valeur 1,2 on va ici de nouveau avoir un entier on peut facilement effectuer des opérations arithmétique entre des entiers et des flottants à savoir que le résultat d'une opération arithmétique entre un entier et un flottant donnera toujours un flottant ici on a 43,2 qui est de type float mais en ce qui concerne les chaînes de caractères c'est la même chose que pour les entiers à savoir que my string plus plus float va nous renvoyer une erreur qui dit
qu'on ne peut pas concaténer des strings avec des float pour ça encore une fois la fonction STR vient à la rescous et en transformant notre float en string on voit qu'on a h World 1,2 en python il existe des fonctions pour transformer des types en un autre pour chaque type donc on a vu le type STR string mais il existe aussi la fonction in pour transformer des floots en entier donc là on a transformé notre flottant 2 en entier 1 et on peut aussi transformer un entier en nombre décimal avec la fonction float on va
ici lui fournir mon entier 42 et on voit qu'on a 42.0 et non pas 42 simplement car notre entier est devenu un flot si ça vous semble complexe je vous conseille d'expérimenter avec ce que vous savez déjà c'est-à-dire les trois types entiers string et float la fonction print et la fonction type qui permet de savoir de quel type est une valeur maintenant qu'on sait manipuler les types de base entier float et string qu'on sait aussi les écrire sur la sortie standard on va apprendre comment lire des valeurs que l'utilisateur nous fournit avec une nouvelle fonction
qui est la fonction input la fonction input prend en paramètrre ça veut dire qu'on peut lui mettre dedans une chaîne de caractère qui représente ce qui va s'afficher dans le terminal par exemple la question qu'on veut poser à l'utilisateur si on lui demande quel est votre âge et qu'on lance le programme on voit que Python nous demande quel est votre âge disons 20 ans voilà là il s'est rien passé parce qu'en fait pour récupérer le résultat de la fonction input on doit déclarer une variable dans laquelle on met la fonction input on a aussi vu
qu'on avait pas d'espace entre la question et la valeur pour ça il suffit de rajouter un espace à la fin de notre question dans la chaîne de caractère on va afficher le contenu de la variable âge et si tout va bien on devrait récupérer la valeur qu'on vient de fournir donc quel est votre âge on va mettre 20 et on va que Python affiche bien la valeur 20 avec la fonction print maintenant on sait lire et écrire il a sependant une chose à laquelle on va faire attention et c'est le type de la variable âge
donc là on a un âge on peut se dire qu'on a un entier mais en fait si on regarde notre variable âge est de type String car tout ce que Python lit dans l'entrée standard est par définition une string si quand python n demande quel est votre âge et qu'on lui dit je ne sais pas et ben pas de problème ge contiendra je ne sais pas d'ailleurs la fonction Print permet d'afficher plusieurs choses pour que ce soit plus clair on va afficher le contenu de la variable âge suivi de son type donc recommençons quel est
votre âge je ne sais pas on voit qu'on a la chaîne de caractère je ne sais pas et qu'elle est bien du type string pour que âge soit considéré comme un entier et non pas comme une string on a déjà vu la fonction pour transformer un type en un entier et c'est la fonction int on peut l'utiliser sur la fonction input pour que soit directement transformé auou casté de string vert entier vérifions ça donc on lance le programme maintenant si on tape je ne sais pas on va avoir une erreur car python n'arrive pas à
transformer la phrase je ne sais pas en un entier donc en relançant notre programme on va lui dire quel est votre âge on va le fournir 20 et là on a bien 20 qui est de type entier ça veut dire que maintenant on peut lui ajouter par exemple 1 et que 20 auquel on ajoute un deviendra bien 21 maintenant qu'on sait tout ça on va créer notre premier projet en Python qui est un convertisseur de degrés Celsus vers les degrés fahenheit qui sont utilisés aux États-Unis par exemple l'énoncé du projet est simple on va demander
à l'utilisateur de rentrer des degrés Celsus et on va lui afficher des degrés en Fahrenheit pour ça on va devoir utiliser la fonction input et la fonction print et je vous invite à trouver la formule pour transformer des degrés Celsus en fahenheit sur Google voilà donc vous pouvez mettre la vidéo en pause et on se retrouve une fois que vous avez terminé j'espère que vous avez vraiment mis la vidéo en pause et que vous avez au moins essayé de faire ce projet maintenant on va faire la solution ensemble ces degrés seront des nombres on peut
décider de ne prendre que des entiers mais pour avoir un programme plus complet on va er des flottants donc on caste le résultat de la fonction input en float pour avoir des nombres décimaux et la question qu'on va poser à l'utilisateur c'est entrée des degrés Celsus maintenant qu'on a nos degrés Celsus on va les transformer en fahenheit donc on va déclarer une nouvelle variable qui s'appelle fahenheit et donc j'ai cherché la formle sur Google et la formule pour transformer des Celsus en fahenheit est Celsus x 9 div 5+ 32 on va ensuite afficher le contenu
notre valeur fenhe et lancer le programme notre programme nous demande d'entré des degrés celus on va entrer 36 et notre programme nous renvoie 96,8 pour vérifier que c'est correct on va se rendre sur Google et on va taper combien font 36° Celsus en fahenheit on voit que 96,8°g fahenheit équivale bien à 36° celus on peut un peu améliorer notre programme en voyant qu'on a oublié de mettre un accent à degrés il nous manque aussi un espace avant les deux points et puis là le programme est très brut il nous renvoie juste la valeur de la
variable phahenhe pour rendre ça un peu plus sympa on va mettre on vaer la fonction print de manière un peu plus avancée en lui passant plusieurs paramètres et en disant que Celsus degré Celsius équivale à fahenheit degré degré fahenheit on peut lancer notre programme on va reprendre 36 on voit que 36°g celus équivale bien à 96,8°g fahheit et on do juste retirer l'espace ici car quand on sépare des valeurs par des virgules dans la fonction print on ajoute automatiquement des espaces donc relançons pour vérifier 36 et on voit que 36° celus équivale bien à 96,8°
fahenheit félicitation vous avez fini votre premier projet en python on a vu comment représenter le type chaîne de caractère nombre décimaux et nombre entier maintenant on va voir un nouveau type qui est le type Boulant le type Boulant permet d'afficher des valeurs qui sont soit vrai soit fausse il peut prendre deux valeurs possibles soit le motcé réservé trou soit false comme le reste des types en python il a une fonction qui permet de transformer d'autres types d'objets en boulet 1 c'est la fonction boule dans la logique boulenne tout type d'objet qui est égal à Z0
nul ou un ensemble vide sera considéré comme fausse et tout le reste sera considéré comme vrai prenons quelques exemples avec la valeur 20 qui en boulet 1 sera considéré comme vrai on peut aussi prendre la valeur 42.0 un nombre décimal qui lui aussi sera considéré comme vrai ou bien une chaîne de caractère non nul comme par exemple ABC qui elle aussi sera évalué à vrai maintenant si on prend une chaîne de caractère vide elle sera évaluée à fausse car c'est un ensemble vide ainsi que 0 le nombre entier et 0.0 pour avoir un flot qui
lui aussi est faux en programmation quand on parle de valeurs qui peuvent être interprété comme vraie ou fausse bien qu'ell ne soient pas les valeurs Boulen directes trou et false on parle de valeurs TR C ou falsey on a vu les opérateurs arithmétiques voyons maintenant les opérateurs de comparaison il existe six opérateurs de comparaison qui permettent de comparer tout types d'objets en pthon on a l'opérateur strictement plus petit que plus petit ou égal àri plus grand que plus grand ou égal a différent ou égal à noter que l'opérateur de comparaison égal est composé de deux
signes égales il n pas à confondre avec un égal simple qui est réservé à l'assignation de variable voyons quelques exemples ensemble pour mettre ça en pratique si on fait print 2 est strictement plus petit que 3 puis on dit que la comparaison est vraie maintenant si on dit 2 est strictement plus petit que 1 là puant dit c'est faut pour voir si 2 est différent de 1 c'est pareil e puthon n dit que c'est vrai 2 n'est pas égal à 1 par contre si on essaie de voir si 2 est égal à 1 puon dit
que c'est faux est-ce que 2 est plus grand ou égal à 1 oui est-ce qu'il est strictement plus grand que 1 oui par contre est-ce qu'il est plus petit ou égal à 1 non en python on peut aussi mettre plusieurs opérateurs de comparaison les uns à la suite de l'autre par exemple on peut dire un est strictement plus petit que 2 qui lui-même strictement plus petit que 3 et tout ça sera interprété comme vrai en python on a aussi deux opérateurs logiques qui sont et or qui permettent d'associer plusieurs conditions entre elles les unes à
la suite des autres avec le mot or qui veut dire ou il faudra que ou bien la condition de gauche ou bien la condition de droite soit vrai pour que l'ensemble soit vrai et pour le mot end qui veut dire et il faut que les deux conditions celle de gauche et celle de droite so vrai pour que l'ensemble soit considéré comme vrai maintenant qu'on a vu le type bouléant les opérateurs logique et les opérateurs de comparaison on va pouvoir rentrer dans le vif du sujet avec notre première structure de contrôle qui est la condition if
if permet d'exécuter du code si et seulement si la condition est validée on va évaluer une condition et exécuter un bloc de code si la condition est vraie ce bloc de code est indenté ça veut dire qu'il commence pas à la ligne directement mais il y a des espaces ça peut être autant d'espac que vous voulez ou autant de tabulation que vous voulez mais il faut juste que ce nombre d'espaces ou de tabulation soit consistant dans tout votre code ici j'ai deux espaces ça fonctionne j'aurais pu en avoir quatre mais si j'en ai quatre ici
il faut que j'en ai quatre tout le long de mon bloc et les autres bloc en python donc par exemple si la condition 2 est plus petit que 3 on affiche c'est vrai et si je lance mon code on voit qu'on a bien affiché c'est vrai par contre si la condition devient fausse 4 est plus petit que 3 c'est faux et donc on va jamais passer dans ce bloc pour illustrer tout ça prenons l'exemple d'un programme qui demande à l'utilisateur d'entr un mot de passe une fois qu'il a entré son mot de passe on va
tester si son mot de passe est bien le mot de passe qu'on sait qu'il a ici 1 2 3 4 5 6 donc si mot de pass est bien égal à 1 2 3 4 5 6 alors on lui affiche c'est bon t son notre programme quel est votre mot de passe 1 2 3 4 5 6 notre programme affiche bien que c'est bon ensuite on va lui dire que le programme est terminé si on lance et que cette fois-ci on met un autre mot de passe on voit qu'il a bien affiché le programme est
terminé mais qu'il est pas rentré dans le bloc qui dit que c'est bon par contle si on met 1 2 3 4 5 6 il rentre dans le bloc et il affiche quoi qu'il arrive C cette ligne là qui n'est pas indentée et qui sera donc exécutée parce qu'elle N n'est pas dans le code dans lequel on rentre seulement si la condition est validée maintenant que faire si le mot de passe n'est pas bon lu dire simplement que le programme est terminé sans lui dire que son mot de passe est mauvais ne suffit pas on
pourrait lui dire que si c'est pas le cas on lui affiche le mot de passe n'est pas bon pour ça on a un autre mot qui est le mot clé else else ne prend pas de condition c'est simplement un bloc de code qui va être exécutter si aucune autre condition n'a été remplie donc là on va lui dire le mot de passe n'est pas bon ici je vois qu'en faisant mon copiercollé j'ai pris un espace entro je vais le retirer pour garder la cohérence et avoir deux espaces à chaque fois donc relanc notre programme quel
est votre mot de passe je mets 1 2 3 et là on voit qu'on n pas rentré dans la première condition mais on est rentré dans le else et notre programme affiche le mot de passe n'est pas bon maintenant disons qu'on veille afficher un message quand le mot de passe entré est trop court pour ça on peut faire un IF qui regarde la longueur de la chaîne de caractère ici de notre mot de passe et on peut faire ça avec la fonction Len dans laquelle on passe notre mot de passe si d'abord on affiche ce
que vaut la longueur la length de passe avec cette fonction laen on voit qu'ici si on met 1 2 3 on a 3 par que chî de caractère est composé de trois lettres maintenant qu'on a ça on peut lui dire que si la longueur de 3 est strictement inférieure à 6 on peut afficher le mode de passe est trop court réessayons je tape 1 2 3 et là on voit que le programme nous a dit le mot de passe est trop court le mot de passe n'est pas bon et puis le programme est terminé et
c'est un peu c'est un peu redondant d'avoir la phrase et le mot de passe est trop court et le mot de passe n'est pas bon ça serait mieux que notre programme nous dise l'un ou l'autre mais là si on regarde ce qui se passe on rendre notre notre mot de passe qui est 1 2 3 et de longueur 3 en évaluant cette première condition le la longueur du mot de passe est bien inférieure à 6 donc il va rentrer ici puis il va tester cette condition qui sera fausse et il va donc passer dans le
else et aussi nous afficher ça pour éviter d'avoir plein de if comme ça il y a un troisième et dernier mot-cé qui est le mot-cé l if qui est la contraction de l et if et qui nous permet de tester plusieurs conditions dans un bloc de if el if else dans notre cas je vais transformer ce if là en L if qui nous permettra de ne rentrer que dans une de ces conditions donc recommençons si je lance mon programme je mets 1 2 3 on voit qu'il nous a juste écrit notre Programm est trop court
parce qu'il est rentré dans ce bloc vois qu'il a été satisfait par cette première condition et il nous a donc exécuté ce bloc là et comme else veut dire sinon il n'a pas eu besoin de faire quelque chose d'autre vu qu'il a été déjà satisfait par cette condition dans les exemples qu'on a vu ensemble on avait toujours des blocs d'une seule ligne on n'est pas limité à une seule ligne si maintenant je mets mais il n'est pas très sécurisé si je rentre le mot de passe je mets 1 2 3 4 5 6 on a
les deux phrases tout bloc va être exécuté ici et pas seulement une seule ligne en plus on peut mettre des IF dans des IF donc disons ici que on est deux cas on est le cas où le mot de passe la longueur du mot de passe est égale à 0 on va lui afficher il faut écrire quelque chose et sinon on va lui afficher le mot de passe est trop court donc là si on exécute de notre programme et qu'on ne rentre rien la longueur de de notre chaîne de caractère de notre mot de passe
sera zéro et le programme nous dit il faut écrire quelques chose mtenant si on relance notre programme et qu'on tape un mot de passe d'une longueur strictement inférieure à 6 mais qui n'est pas zéro comme par exemple 1 2 3 4 qui sera de longueur 4 il va rentrer ici il va dire ok la longueur du mot de passe c'est inférieur à 6 puis dans ce bloc il va voir que la longueur du mot de passe n'est pas égale à zé donc cette condition n'est pas satisfaite alors il va rentrer dans le else le sinon
et afficher le mot de passe est trop court et c'est ce qu'il a fait ici comme la longueur était de 4 il est rentré ici il n'est pas rentré là mais il est bien rentré ici et il n'est pas rentré dans cel parce que la condition ici était déjà satisfaite on va maintenant pouvoir passer au deuxième projet de ce tutoriel en Python qui est un programme qui donne une mention à l'utilisateur à partir d'une note moyenne qu'il nous fournit prenons par exemple la moyenne du bac on va demander à l'utilisateur de rentrer la moyenne qu'il
a eu au bac sur 20 et on va lui donner la mention assez bien si sa moyenne est supérieur ou égale à 12 et inférieur à 14 la mention bien si sa moyenne est supérieur ou égale à 14 est strictement inférieur à 16 la mention très bien si sa moyenne est supérieure ou égale à 16 et strictement inférieur à 18 et les félicitations du jury si sa note est supérieure à 18 je vous laisse mettre la vidéo en pause et pensez à comment vous pourriez réaliser ce programme et on se retrouve juste après une fois
que vous avez fini voilà j'espère que vous avez fini que vous avez au moins essayé de réaliser ce programme par vous-même donc on va résoudre le programme ensemble on va commencer par des déclarer une variable moyenne et on va demander à notre utilisateur d'entrer sa moyenne on sait que la fonction input nous renvoie des chaînes de caractères et nous on va travailler avec des nombres décimaux donc on peut déjà transformer cette chaîne de caractèrees en float pour avoir une moyenne qui est un nombre décimal ensuite on va avoir plusieurs conditions dans lesquelles on va rentrer
en fonction de la moyenne de l'utilisateur donc si sa moyenne est supérieure ou égale à 12 et inférieur à 14 on va afficher la mention assez bien si sa moyenne est comprise entre 14 inclus et 16 on va afficher la mention bien si elle est comprise entre 16 inclus et 18 on va afficher très bien si la moyenne est de 18 ou plus on va afficher les félicitations du jury et sinon on affffiche pas de mention essayons notre programme avec une moyenne de 14 on a bien la mention bien avec une moyenne de 19 on
a les félicitations du jury et avec une moyenne de 11,1 on a pas de mention voici une version minimale du projet on pourrait aller plus loin en ajoutant de la gestion d'erreur au cas où l'Utilisateur ne rentre une note supérieur à 20 ou inférieur à 0 imaginons qu'il entre 21 de moyenne on va lui donner les félicitations du jury alors que c'est pas possible d'avoir 21/ 20 si l'utilisateur n'entre pas de nombre mais entre une chaîne de caractère par exemple on va avoir une erreur sur la fonction float ça serait bien de gérer float différemment
et de rajouter une autrre conditions pour l'ajustement d'erreur mais sinon c'est tout pour ce projet et voilà vous savez maintenant comment utiliser la première structure de contrôle les conditions avec if Elif et else on va maintenant voir une autre structure de contrôle les boucles mais avant ça on va voir comment mettre plusieurs éléments dans une séquence avec les listes en pyon les listes sont des tableaux ou ensembles qui peuvent contenir tout types d'objets on peut déclarer une liste en utilisant les symboles crochet ou bien avec la fonction Liste une fois qu'on a une liste on
peut mettre un ou plusieurs objets dedans on sépare les éléments d'une liste avec des virgules et on peut afficher une liste avec la fonction print donc faisons print de ma liste et on voit que Python affiche notre liste exactement comme on l'a déclaré on peut aussi obtenir un élément spécifique de la liste en utilisant son indice entre crochets disons qu'on veille le premier élément de notre liste en informatique on commence souvent à compter à zéro donc on peut accéder au premier élément de notre liste en tapant le nom de notre variable ma liste puis par
exemple z0ro entre crochet et puon nous affiche bien le premier élément de la liste on peut aussi changer un élément de la liste et écraser sa valeur en lui assignant une nouvelle valeur à l'indice ce qu'on veut par exemple ma liste de 0 é=ale 1 si on affiche la liste on voit que l'élément 0 a bien été modifié avec notre nouvelle valeur 1 en plus d'un élément individuel on peut aussi accéder à un sous-ensemble de notre liste en utilisant les crochets dans lesquels on met l'indice de début deux points et puis l'indice de fin par
exemple pour avoir les trois premiers éléments d'une liste on peut faire crochet de 0 jusqu'à 3 non inclus et python nous renvoie bien les trois premiers éléments de la liste les listes sont des objets en Python qui ont une série d'attributs et de méthodes qu'on peut utiliser reprenons vre liste et ajoutons lui un point à la fin et on voit une liste avec plein d'attributs et de méthodes pour ajouter un élément à une liste on a par exemple la méthode appen on peut l'utiliser en prenant notre liste et en tapant point happen et puis en
lui passant l'élément qu'on veut rajouter entre parenthèses on peut par exemple ajouter le nombre 1337 à notre liste on voit que la liste contient maintenant c éléments et que 1337 s ajouté en fin de la liste on a aussi si la méthode remove qui permet de supprimer un élément d'une liste on peut l'utiliser en faisant point remove sur une liste avec l'élément qu'on veut supprimer entre parenthèses pour voir si un élément se trouve dans une liste on peut utiliser le mot clé in par exemple print de B in une liste qui contient les éléments A
B et C renv à trou car la lettre B se trouve bien dans notre liste voyons maintenant une nouvelle structure de contrôle avec les boucles une boucle permet de répéter un bloc de plusieurs fois le premier type de boucle qu'on va voir est ce qu'on appelle une boucle while elle est composée du mot while suivi d'une condition puis deux points et un bloc qu'on veut répéter c'est un peu comme un IF sauf qu'on va répéter ce qui est dans notre boucle tant que la condition est vrai prenons par exemple une variable i pour indice à
laquelle on va assigner la valeur 0 on peut avoir une boucle while qui va boucl tant que I est plus petit que 5 dans notre boucle on va afficher i avec print et puis surtout ne pas oublier d'incrémenter ou ajouter 1 à chaque passage de la boucle pour incrémenter de 1 notre variable i on va faire i = I + 1 qu'on peut aussi écrire plus simplement avec I + é= 1 attention si on oublie d'ajouter 1 à chaque passage dans la boucle on va se retrouver avec ce qu'on appelle une boucle infinie comme son
nom l'indique c'est une boucle qui ne se finit jamais et on va devoir fermer notre programme de force pour pouvoir en sortir par exemple je vais retirer l'incrément et vous allez voir ce qui se passe on a la valeur initiale de I qui est 0 qui s'affiche à l'infini pour fermer un programme qui est parti en boucle infinie pas de panique il suffit simplement de lui envoyer un signal d'interruption on peut lui envoyer ce signal avec le raccourci contrôle suivi de la lettre C revenons maintenant à notre code et rajoutons la ligne I+ = 1
quand on exécute notre code on voit bien qu'il affiche 0 1 2 3 4 puis qu'il s'arrête normalement donc voici globalement comment fonctionne une boucle while voyons maintenant les boucles for les boucles for permettent de répéter un bloc de code ou itérer pour chaque élément d'un objet itérable comme par exemple une string ou une liste concrètement on peut avoir une boucle for en tapant for lettrre in et puis une liste composée des lettres a b et c quand on affiche notre lettre avec print de lettres on voit que Python nous a affiché l'élément pour chaque
passage dans la boucle mais que faire si on veut passer un certain nombre de fois dans une une boucle on ne peut pas faire for I in 5 car 5 n'est pas un objet itérable c'est juste un nombre pas un ensemble d'éléments pour ça on doit utiliser une fonction qui est la fonction range j'ai une vidéo complète sur la fonction range que je vous invite à consulter en suivant le lien en description mais dans son utilisation la plus simple on peut utiliser une boucle for range en faisant for I in range de 5 et en
faisant print de i von nous affiche bien 0 1 2 3 4 sans qu'on doiv incrémenter quoi que ce soit manuellement comme dans la boucle while qu'on a vu juste avant et voilà vous savez maintenant comment utiliser les boucles en python on peut donc voir notre troisième projet on va faire une version super simple uniquement avec les concept qu'on a vu dans cette vidéo et les deux vidéos précédentes l'énancé du jeu du pendu est le suivant on a un mot mystère que l'utilisateur doit deviner le joueur possède SEP vie à chaque tour on lui demande
d'entrer une lettre si la lettre se trouve dans le mot alors on affiche le mot avec cette lettre en clair cette lettre ne se trouve pas dans le mot le joueur perd une vie et la partie s'arrête soit quand le joueur n'a plus de vie soit quand il a trouvé le mot voilà comme d' c'est le moment de mettre la vidéo en pause et d'essayer de faire ce projet par vous-même et on se retrouve juste après avec ma solution ok j'espère que vous avez réussi à faire votre propre version du jeu du pendu sinon je
vous propose la mienne je vais commencer par déclarer une variable qui contient un nombre entier le nombre de vie de l'utilisateur ensuite on a le mot mystère on va choisir le mot Python et puis on a une chaîne de caractère pour le mot que l'utilisateur va voir à l'écran au début il sera composé uniquement de bar en Baras de la même taille que le mot mystère pour ça on peut faire le symbole bar en bas multiplier par la longueur du mot mystère on va ensuite avoir une boucle cette boucle sera une boucle while qui va
continuer tant que le nombre de vie d'utilisateur sera supérieur à Z0 et que le mot mystère ne sera pas égale à notre mot public à chaque passage dans la boucle on demande une lettre à l'utilisateur avec la fonction input à laquelle on passe la chaîne de caractère entrer une lettre ensuite on peut voir si la lettre que l'utilisateur vient entrer se trouve dans not mot mystère en faisant if lettre in mot mystère si c'est le cas on va boucler sur le mot mystère en récupérant ses indice avec for I in range de l'INE du mot
mystère et si la lettre du mot mystère de I est égale à la lettre que l'utilisateur a entré alors on la remplace dans notre mot public en faisant mot public égal mot public de point I plus la lettre plus mot public de i + 1 2 point ça nous permet de conserver la première partie du mot public d'ajouter la lettre et puis d'avoir la suite du mot public si à l'inverse la lettre n'était pas dans le mot mystère alors l'utilisateur perd une vie on fait nombre de vie moins ég 1 et en fonction de ce
qui s'est passé on va avoir un IF et if else donc on va faire if mot public est égal à mot mystère alors on affiche print le mot est et puis soit mon mystère soit de mot public car à ce moment-là ils sont égau sinon si if le nombre de vie de l'utilisateur est égal à zéro alors on lui affiche un message pour dire qu'il a perdu sinon ça veut dire que le jeu continue donc sinon else on affiche le nombre de vie que qu'il reste à l'utilisateur et l'état du mot avec les lettres en
clair qu'il a déjà trouvé donc on peut maintenant essayer notre jeu du pendu on va se tromper cette fois pour voir si on peut perdre une partie on va réussir 100 % du temps pour voir si on peut gagner une partie puis on va jouer normalement parfois se tromper parfois trouver des lettres pour finalement gagner si vous voulez améliorer votre jeu du pendu je vous donne quelques pistes d'amélioration vous pouvez utiliser la fonction native enumérate pour notre boucle fort vous pouvez aussi vous renseigner sur l'instruction break qui permet de sortir d'une boucle on peut donc
remplacer la condition de sortie notre while par trou et boucler en permanence et puis avoir des break dans nos if en fin de bloc pour éviter d'avoir les mêmes conditions dans while et dans nos if on peut aussi vérifier les lettres que l'utilisateur entre en vérifiant que ce soit bien une lettre déjà qu'elle soit en minuscule et puis on pourrait aussi avoir une liste qui contient les lettre que l'utilisateur a déjà rentré contre laquelle on pourrait tester la nouvelle lettre voir si la nouvelle lettre se trouve dans la liste ou pas et éventuellement boucler tant
que la lettre qu'il rentre ne répond pas à toutes ces conditions puis finalement vous pouvez aller bien plus loin en améliorant l'aspect visuel du programme en affichant par exemple un bonhomme en caractère ASI ou bien carrément une interface graphique de votre choix mais quoi qu'il en soit bravo vous avez codé votre premier jeu et maintenant on va voir un concept clé de la programmation les fonctions quand on code des programmes plus complexes on se retrouve vite avec des centaines ou des milliers de lignes de code on va avoir besoin de segmenter ce code en sous-programme
pour pouvoir s'y retrouver on va donc utiliser les fonctions pour séparer la logique de notre code mieux les maintenir et pouvoir les réutiliser à plusieurs endroits on a déjà utilisé des fonctions natives fournies par python comme print et input par exemple maintenant on va coder des fonctions par nous-même on peut déclarer une fonction en utilisant le mot def pour define on va ensuite donner un nom à notre fonction comme on le fait avec les variables donc créant une fonction qui s'appelle ma barre en bas fonction après le nom on va ajouter des parenthèses pour pouvoir
passer ce qu'on appelle des paramètres on verra ça plus en détail juste après mais pour vous expliquer rapidement c'est des variables qu'on va passer à la fonction qu'on va pouvoir utiliser à l'intérieur de notre fonction comme quand on passait à une chaîne de caractèrees à la fonction print on a ensuite les symboles de points un retour à la ligne et on va indenter notre code comme on le faisait avec if while et for qu'on a déjà vu ensemble tout le code qu'on va taper là et qui sera inventé appartiendra donc à la fonction maintenant on
va écrire du code dans le corps de notre fonction on peut déclarer une variable ma variable égale 1 et puis faire un print par exemple print de ma variable e et puis on ajoute ma variable pour sortir de notre fonction et continuer d'écrire notre programme on fait deux retours à la ligne et on sort de l'indentation on peut maintenant appeler notre fonction en tapant son nom suivi de parenthèse donc tapons ma fonction parenthèse ouvrante parenthèse fermante lançons notre programme et python nous affiche bien ma variable et 1 maintenant ça serait bien qu'on puisse changer la
valeur de la variable ma variable en passant une autre valeur quand on appelle notre fonction c'est ce qu'on appelle les paramètres pour ça on doit modifier notre fonction en ajoutant ma variable dans les parenthèses on peut maintenant retirer la ligne on déclarer la variable on relance notre programme et là on voit qu'on a une erreur c'est parce que Python s'attend à recevoir un paramètre ettre entre parenthèses quand on appelle notre fonction alors qu'on lui en a pas donné pour régler ça on va lui passer une valeur disons 42 qu'on met entre parenthèses quand on l'appelle
si on relance notre programme on voit maintenant qu'on a la phrase ma variable est 42 qui s'affiche correctement ici on passe un seul paramètrre à la fonction mais une fonction peut recevoir zéro paramètres comme on avait juste avant ou bien autant de paramètres qu'on veut elle peut aussi avoir des paramètres optionnels et pour ça on assigne une valeur par défaut au paramètres qu'on veut rendre optionnel dans la déclaration de fonction disons qu' veut que ma variable soit égale à 5 par défaut si on ne lui passe pas de valeur on peut l'appeler en lui passant
un paramètre gardons 42 mais on peut aussi l'appeler sans paramètres elle prendra la valeur 5 par défaut si on lance notre programme on voit qu'on a plus d'erreur car python comprend que cette fonction peut recevoir soit 0 soit un paramètre et on a bien d'afficher ma variable est 42 dans le premier cas et on a ma variable est5 quand on a rien passé en paramètres dans le deuxième cas une fonction peut aussi recevoir un nombre indéfini de paramètrre avec le symbole étoile et le mot ARS ou même de symboles étoil et le mot quars pour
keyword arguments si on sait pas combien de paramètres on va avoir on peut ajouter le symbole étoile avant le nom de la variable qu'on a entre parenthèses dans la définition de fonction maintenant si on rappelle notre fonction en lui passant les valeurs 4 3 2 et 1 on voit qu'on a pas d'erreur notre fonction affiche bien les quatre paramètres vous pouvez voir args comme une liste d'ailleurs si on printte le type de args avec la fonction print de type de args on nous dit que args est de type tuple les tuple sont des types d'ensemble
qui sont un peu différents des listes et on verra ça plus tard dans ce tutoriel on peut aussi avoir des arguments nommés avec deux étoiles suivies du mot quarks pour ça on va ajouter un nom à chaque paramètre qu'on passe à notre fonction ajoutons donc 4 en toute lettrre et puis égale la valeur 4 3 en toute lettrre é= 3 2 = 2 et 1 = 1 on voit qu'on a un nouveau type d'objet de type dict pour dictionnaire c'est aussi un nouveau type d'objet qui nous permet d'avoir des paires clés valeur et on voit
ça ensemble juste après dans cette vidéo les fonctions qu'on a codé jusqu'à maintenant ne renvoient pas de valeur si vous vous souvenez avec la fonction input on pouvait récupérer la valeur en l'assignant à une variable on avait par exemple ég input et puis la question qu'on lui posait entre parenthèses et on pouvait assigner la valeur qu'on récupérit à GE pour pouvoir récupérer une ou plusieurs valeurs dans notre fonction on utilise le mot return on va donc créer une nouvelle fonction qui fait la somme de deux nombres qu'on lui passe on va donc faire def suivi
du nom de notre fonction ici somme suivi de parenthèses dans lesquelles on met deux paramètres A et B dans le corps de notre fonction on va taper le mot return suivi de A + B on peut maintenant appeler notre fonction et récupérer la somme en l'assignant à une variable en faisant s = somme et puis en lui passant 4 et 5 entre parenthèses on peut donc faire print de S pour afficher le contenu de la variable s si on lance notre programme on voit bien qu'on a la valeur 9 qui s'affiche on peut aussi appeler
notre fonction directement dans le print avec print entre par par Somme entre parenthèses 5,4 puis on ferme les parenthèses relançant le programme et on voit que rien n changé on a toujours la valeur 9 qui s'affiche en pthon on peut retourner plusieurs valeurs donc on peut modifier notre fonction somme qu'on avait fait juste avant et en plus de l'addition on va lui renvoyer les deux paramètres donc on a return a + b viru a viru B maintenant si on relance un programme on voit que print nous affiche bien les trois valeurs une notion importante quand
on travaille avec des fonctions est la notion de scope on peut traduire scope par pter et c'est des endroits dans notre code où certaines variables seront connues seulement localement voyons ça concrètement en déclarant deux fonctions fonction une et fonction 2 dans le corps de ces fonctions on va avoir des blocs similaires dans les deux fonctions on va avoir une assignation de variable a et puis on va afficher le contenu de la variable a dans la fonction une on assigne 1 à la variable a et puis on fait print fonction une a é= suivi de la
variable a dans la fonction 2 on fait pareil sauf qu'on a a = 2 et on fait print fonction 2 a = a maintenant on va essayer d'afficher le contenu de la variable a dans notre programme principal si on lance notre programme on voit que Python nous dit que la variable a n'est pas défini c'est parce que lorsqu'on déclare ces variables dans notre fonction seul les fonctions ont accès à cette variable la portiée de la variable est limitée localement à la fonction dans laquelle elle est définie on peut aussi déclarer des variables de manière globale
ce qu'on peut faire en déclarant une autre variable a tout en ha de notre programme dans laquelle on met la valeur zé c'est maintenant on relance notre programme on voit que chaque fonction a sa valeur locale de A mais il y a aussi une valeur globale de a qui est 0 et là notre programme principal la connaît aussi vu que A est maintenant global on peut supprimer l'assignation dans la première fonction par exemple et là même s'il y a pas d'assignation de a dans la fonction notre fonction va se reposer sur la variable globale a
et l'utiliser par défaut si on relance un programme on voit que dans la fonction 1 A est maintenant égale à 0 donc revoyons tous les éléments qui compose une fonction avant de passer à notre 4e projet qu'on va faire ensemble on a le mot def qui permet de définir une fonction on a ensuite le nom de la fonction qui respecte les mêmes règles que pour les variables à savoir le snake case démot en minuscule séparé par de_ore barre en bas puis on a des parenthèses dans laquelle on peut passer des paramètres autant qu'on veut soit
zéro soit une infinité de paramètres on a les symbole de points un retour à la ligne avec une indotation d'espace ou de tabulation puis le corps de notre fonction qui possède son propre scope et qui est la logique de notre fonction voilà on peut maintenant passer au 4è projet de cette formation on va coder une version simplifiée de la fonction range recoder les fonctions standard d'un langage est une bonne pratique car ça n permet de mieux le comprendre dans la vidéo précédente on a utilisé la fonction range pour pouvoir boucler un certain nombre de fois
avec la boucle fort on va donc coder une fonction simple range qui ne prend qu'un paramètre N et qui renvoie une liste qui contient n éléments de 0 à n-1 en réalité la fonction range est plus complexe elle prend plus de paramètres que ça et elle renvoie pas exactement une liste c'est pour ça on fait la version simplifiée de range la fonction simple range donc je vous laisse essayer de faire votre propre fonction range je vous invite encore une fois à mettre la vidéo en pause et on se retrouve dans quelques secondes pour la faire
ensemble pour coder une fonction simple range on utilise le Modot F pour définir notre fonction puis le nom simple barre en bas range des parenthèses dans laquelle on va fournir le seul paramètre qu'on va avoir n dans le corord de notre fonction on va déclarer deux variables la première ça sera une liste vide avec l égal et puis des crochets puis on va aussi avoir une variable i qui va nous servir d'indice dans laquelle on va mettre la valeur 0 on aura une boucle while qui va boucler tant que I est plus petit que N
et dans le corps de notre boucle while on va ajouter l'élément i à notre liste à chaque passage dans la boucle on doit ensuite incrémenter i de 1 pour ne pas partir en boucle infinie et à la fin de notre fonction on renvoie notre liste l qui devrait contenir n élément de 0 à N- 1 tons notre fonction en l'appelant avec print de simple range à laquelle on passe la valeur 5 en paramètre quand on lance notre programme on voit bien qu'on a une liste qui contient C nombres de 0 à 4 comme je vous
dis la vraie fonction native range est plus compliqué que ça vous pouvez aller voir sa définition de fonction et éventuellement lui rajouter plus de fonctionnalité pour qu'elle soit plus utile on a vu les listes qui permettent d'avoir plusieurs objets dans un seul ensemble maintenant on va voir d'autres types de collection ensemble les tuple les set et les dictionnaire donc commençons avec les tuple on peut déclarer un tuple en utilisant des parenthèses les tuples sont timuables ça veut dire que contrairement au listes on ne peut pas les modifier si on fait nombre à la position 5
= 6 on aura une erreur on peut utiler des fonctions comme l'en sur un tuple et on peut aussi voir si un élément se trouve dans un tuple avec le mot clé in tuple nous donne accès à deux méthodes index et count index permet de connaître l'indice d'un élément qu'on lui passe entre parenthèses s'il se trouve dans le tuple et count nous permet de compter combien de fois un élément se trouve dans le tuple les différences entre une liste un tuple sont donc que les tuples sont plus rapides que les listes car ils sont immuables
contrairement aux listes qu'on peut modifier facilement mais on va aussi avoir tendance à mettre des éléments de même type dans une liste alors qu'on va souvent utiliser les tuple comme des structures avec des des types d'objets différents par exemple si on veut déclarer un ensemble de nombres on aura le réflexe de faire une liste mais si on veut un ensemble qui n'est pas un dictionnaire et dans lequel on a plusieurs types de variables différentes comme les détails d'un étudiant par exemple on aura tendance à utiliser un tuple voyons maintenant les 7 les se sont des
ensembles qu'on déclare avec des accolades ils n'ont pas d'ordre précis et on ne peut pas les modifier car ils sont immuables on a donc pas de doublons dans un set et on ne peut pas les modifier avec une simple assignation comme on le ferait avec une liste par exemple prenons un set de nombres avec plusieurs nombres dans le désordre et avec des doublons en l'affichant avec print on voit que Python a changé l'ordre de notre set en 0 1 2 3 4 et qu'il a retiré les doublons 2 et 3 avec les sets comme avec
les listes on peut utiliser la fonction Len qui fonctionne également ainsi que le mot in pour vérifier si un élément se trouve dans notre set la différence avec les listes c'est que comme les sets n'ont pas d'ordre on ne peut pas accéder à un élément précis en lui passant un indice si on fait nombre de deux puiton va nous renvoyer une erreur on ne peut pas non plus changer les valeurs d'un set comme on le fait avec les listes en assignant une valeur à un indice mais heureusement on a les méthodes méthode Add et remove
pour faire plus ou moins la même chose nombre add de 5 ajoutera bien l'entier 5 à notre set de nombre et on peut aussi retirer un élément précis avec nombre point remove et puis lui passer un élément en paramètre la méthode pop sur un set permet aussi de retirer le premier élément du set on a aussi des méthodes qui permettre de comparer deux se entre eux union intersection et différence l'Union est ce qui sera contenu dans les deux se donc si on fait 71 union 72 on a tous les éléments qui se trouvent dans C1
ou dans C2 l'intersection est qui se trouve en commun dans les deux set 71 intersection 72 nous donnera que les éléments qui sont et dans 71 et dans C2 et différence est ce qu'on trouve dans le set1 mais pas dans le set2 71 différence set2 nous donnera que les éléments qui sont exclusifs à 71 pour voir les autres méthodes de set et en python en général on peut utiliser la fonction dire à laquelle on passe notre objet pour voir toutes les méthodes et attributs d'un objet la fonction help permet aussi d'avoir l'aide de base de
Python pour un type d'objet finalement voyons les dictionnaires les dictionnaires sont des types d'ensemble clé valeur ils ont un ordre précis et on peut les modifier avec une simple assignation mais ils ne peuvent pas avoir de clé en doublon on peut déclarer un dictionnaire avec des accolades comme un 7 sauf qu'on va lui passer un ensemble clé de point valeur donc déclarons un dictionnaire de nombre pour accéder à une valeur on utilise la clé comme on le fera avec l'indice numérique dans une liste sauf que là on l'a nommé avec une clé donc si on
fait nombre crochet et puis qu'on lui passe la clé 1 entre guillemets on aura bien l'entier 1 pour voir toutes les méthodes et attributs d' dictionnaire on peut utiliser la fonction dire donc faisons dire de nombre et on voit par exemple qu'on a la fonction get on utilise la fonction get pour obtenir un élément dans un dictionnaire c'est comme utiliser la clé entre crochets sauf que si on donne une mauvaise clé entre crochets python va nous renvoyer une erreur et cracher violemment avec qui erreor erreur de clé alors qu'avec get python va essayer de récupérer
la valeur pour la clé donnée et il renverra non s'il ne trouve pas la valeur pour la clé on peut aussi lui passer une valeur en deuxème position en paramètrre ça deviendra la valeur qu'il renverra par défaut s'il trouve pas la clé dans le dictionnaire c'est donc une bonne pratique d'utiliser get plutôt que faire des try except par exemple on peut aussi modifier ou ajouter une nouvelle paire de clés avec la méthode Update ce qui revient à utiliser l'assignation par exemple nombre 5 = 5 est équivalent à nombre update 6 = 6 on peut aussi
utiliser la méthode pop pour retirer un élément d'un dictionnaire en lui passant une clé par exemple nombre pop de 3 retira notre paire clé valeur qui a la clé 3 on peut aussi récupérer toutes les clés en dictionnaire avec la méthode Keys donc si on fait nombre point keys on récupère toutes les clés pareil pour les valeurs avec la méthode values si on fait nombre point value on a toutes les valeurs de notre dictionnaire et items nous renvoie une sorte de liste qui contient des tuple qui eux-mêmes contiennent les clés et les valeurs pour chaque
élément de notre dictionnaire une classe c'est comme la représentation d'un objet dans le monde réel d'ailleurs en programmation on utilise souvent le mot objet pour parler d'une classe les classes en python permettent de regrouper des données et des fonctions dans une structure facile à réutiliser c'est comme un moule un modèle ou un plan qui va nous permettre de créer des versions d'un objet et les objets qu'on crée avec des classes sont appelés des instances donc le concept de classe est central dans la programmation orientée objet ou poo et faire de la programmation orientée objet ça
veut dire utiliser des classes dans notre code et on s'est déjà servi de la PO et des méthodes sur des objets quand on a utilisé point append ou point remove sur des collections par exemple mais maintenant on va faire notre propre classe disons qu'on va faire un modèle pour créer des voitures cybertrucks de la marque Tesla on va donc avoir une classe comme ça on commence avec le mot classe qui permet de créer une classe c'est comme le Modot def qui permet de créer des fonctions mais pour les classes cybertruck est le nom notre classe
la convention de nomage je veux qu'on utilise le Pascal case donc des mots qui commencent par des majuscules par exemple on peut écrire mon cybertruck ou ma voiture ensuite on a trois attributs de classe qui définissent les instances qu'on va créer on a l'attribut marque on va mettre Tesla dans modèle on va mettre cybertruck et dans l'année on va mettre 2023 et voilà maintenant on peut créer des cybertrucks donc faisons cybertruck é= cybertruck avec un C majuscules et des parenthèses et on peut accéder aux attributs de la classe avec le nom de la variable et
puis point marque modèle ou ou anné donc pour afficher la marque de notre cybertruck on fait print cybertruck.marque mais maintenant ça serait bien que notre cybertruck soit capable de faire quelque chose donc on va lui ajouter la capacité de klaxonner avec une fonction ou une méthode de classe qu'on va appeler cllaxonner dans notre classe on crée une fonction klaxonné qui fait print tut tut maintenant pour que la méthode soit valide on doit lui passer une variable en paramètrre cette variable est une référence vers l'instance en cours et par convention on l'appelle self on reparle du
mot self juste après donc maintenant on peut faire cybertruck.clxonn et on a bien tut tut qui affiche on peut aussi ajouter ou modifier des attributs et des méthodes à nos objets après leur instantiation en lui assignant des choses reprenons notre cybertruck si c'est un cybertruck qui date en fait de 2024 plutôt que 2023 on peut faire cybertruck.année = 2024 et à partir de maintenant quand on printte cybertruck. anné on aura 2024 et plus de 2023 on peut aussi utiliser la fonction dir sur notre cybertruck et surtous les objets en python d'ailleurs pour avoir tous les
attributs de classe donc print dire de cybertruck affichera tous les attributs auquels on a accès avec l'instance de cybertruck mais donc c'est bien de pouvoir créer des cybertruck mais ça serait mieux de pouvoir créer différents types de voitures de manière modulaire en leur passant les paramètres qu'on veut et pour ça on utilise ce qu'on appelle un constructeur donc changeons le nom de notre classe de cybertruck en voiture puis on va déclarer le constructeur avec une méthode spéciale init init permet de déclarer un constructeur c'est une méthode spéciale qui est appelée lorsqu'on crée une nouvelle instance
de la classe elle initialise l'instance de l'objet et les attribut de la classe qu'on lui passe en paramètrre et donc pour créer d'autres types de voitures en passant des attributs marque modèle et anné comme on veut on va utiliser des paramètres on commence par self comme pour notre méthode klaxonné et puis on va lui passer marque modèle et anné et plutôt que de les avoir enend dur on va changer les trois attributs qu'on avait en self. marque é= marque self. model é= model et self. année é= année et grâce à ce constructeur on peut maintenant
créer des instance de la classe voiture en lui passant des paramètres nommés donc changeons la classe de notre cybertruck en voiture et on va lui passer marque Tesla Modelle cybertruck et dans l'anné on va mettre 2023 mais on peut aussi créer des voitures totalement différentes faisons par exemple une Toyota Corolla avec Corolla égal voiture marque Toyota Modelle Corolla année 2022 on peut faire cllaxionner nos voitures ou afficher leurs attributs ce sont deux instances indépendantes qui viennent de la même classe avec des attributs différents on pour rajouter plein de fonctionnalités à notre classe voiture comme une
vitesse et puis des méthodes pour accélérer décélérer et freiner et avec ça on aurait la base pour une voiture dans un jeu vidéo de course par exemple mais pour le moment reparlant du paramètre self qu'on a passé dans le constructeur dans notre méthode de classe et qu'on doit passer dans toutes les méthodes de classe en python cette variable self sert de référence à l'instance qu'on est en train d'utiliser et donc Python aura besoin d'avoir cette valeur en premier paramètrre de ces méthodes pour savoir de quel instance on parle d'ailleurs on peut aussi appeler une méthode
de classe avec une version plus explicite en faisant voiture. cllaxonné et puis en lui passant notre instance cybertruck par exemple et là ça correspond mieux à la déclaration de méthode qu'on avait dans notre classe voiture et ça permet de mieux comprendre pourquoi on a besoin de la variable self comme exercice je vais vous proposer de faire votre propre machine à pizza donc on va faire une classe pizza et vous pouvez faire ce que vous voulez avec par exemple dans le constructeur on peut prendre une base qui est blanche ou rouge on peut prendre un diamètre
MRE pour la taille de la pizza et puis un type de pizza comme calzone par exemple puis on peut avoir une méthode pour ajouter des ingrédients une méthode pour l'amener à une certaine table ou bien une méthode pour la livrer à un client donc voilà n'hésitez pas à être créatif il y a pas vraiment de bonne ou mauvaise réponse le but c'est d'implémenter un constructeur avec des attributs et au moins une méthode de classe je vous laisse mettre cette vidéo en pause et on se retrouve dans quelques secondes pour une implémentation de la classe pizza
donc voilà j'espère que vous avez mis la vidéo en pause maintenant je vais vous proposer une implémentation de la classe pizza donc on commence avec le mocket classe on appelle notre classe pizza puis dans le constructeur on va avoir self la base de la pizza qui sera blanche ou tomatée le prix le diamètre son style classique calzone stromboly ou autres et les ingrédients qu'on veut sur notre pizza donc pour chaque attribut on fait self point donc on a self point base é= base self point prix é= prix self point diamètre é= diamètre self point style
é= style et self point ingrédient ég ingrédient on va faire une première méthode qui sert à ajouter des ingrédients qu'on va appeler ajouter ingrédient qui prend un paramètre self et le nouvel ingrédient qu'on veut ajouter avant d'ajouter l'ingrédient on va vérifier que l'ingrédient n'est pas ananas parce que si c'est des ananas on va lever une erreur qui dit les ananases ne vont pas sur les pizzas sinon on prend notre attribut ingrédient et on ajoute le nouvel ingrédient aussi à chaque nouvel ingrédient ajoutés on va augmenter le prix d' 1 € donc on fait self point
prix é= self point prix + 1 ensuite on a une méthode pour servir une pizza à une table qui prend en paramètre l'instance de la pizza avec self et puis la table et qui affiche avec la fonction print j'amène la pizza à la table et puis le numéro de la table pareil pour la livraison on a une méthode qui permet de livrer qui prend la pizza avec l'objet self et l'adresse à laquelle on va livrer et qui affiche je livre la pizza à l'adresse et puis l'adresse maintenant on va demander à l'utilisateur quelle base il
veut pour ça on crée une variable base et on utilise la fonction input pour demander quelle base voulez-vous tomate ou blanche pareil pour la taille on crée une variable taille et puis on demande quelle taille voulez-vous moyenne ou grande pour le style on demande quel style voulez-vous et on lui propose classique calzone Stromboli ou autrees pour les ingrédients il devra taper ses ces ingrédients séparés par des virgules donc on a la taille moyenne ou grande par défaut on va partir du principe que la taille sera moyenne donc 30 cm mais si la personne veut une
pizza qui est grande on fait passer le diamètre à 34 pour les ingrédients on prend les ingrédients et on split ça veut dire on sépare sur les virgules comme ça la liste d'ingrédients qu'il a mis séparé par des virgules donnera une liste d'ingrédients individuels pour le prix on part d'une base de 5 € et puis on ajoute 1 € par ingrédients ce qu'on peut faire en utilisant la taille de la liste d'ingrédients donc on peut créer notre instance de pizza en faisant pizza égale pizza en lui passant la base le diamètre le style les ingrédients
et le prix maintenant on va tester notre fonction pour ajouter des ingrédients on va ajouter des olives donc on va regarder le la liste d'ingrédients et le prix de la pizza avant et après laajoue puis on va essayer de livrer la pizza aux neuf rue du Bois on va servir la pizza à la table 13 puis on va demander si la personne veut ajouter des ananas pour tester notre erreur donc on lui demande oui ou non et si la personne répond oui on va ajouter l'ananas ce qui devrait lever une erreur lançons notre programme pour
tester tout ça quelle base voulez-vous on va mettre tomate quelle taille voulez-vous on va mettre moyenne quel style voulez-vous on va choisir classique quels ingrédients voulez-vous je vais mettre tomate ail et aubergine séparé par des virgule et des espaces quand j'appuie sur rentrée le reste de mon programme s'exécute donc on voit que avant d'ajouter des olives j'avais trois ingrédients sur ma pizza et elle coûtait 8 € et en ajoutant des olives j'en ai quatre et elle coûte maintenant 9 €. on voit que la fonction pour livrer fonctionne bien car ça affiche je livre la pizza
à l'adresse ne9u du bois pareil pour la méthode servir qui permet d'amener une pizza à une table j'amène la pizza à la table 13 et puis maintenant le programme n demande si on veut ajouter des ananas on va répondre oui et là on a bien une erreur de type type error les ananas ne vont pas sur les pizzas et voilà c'est tout pour la base des classes mais il y a plein d'autres concepts de PO que je vous invite à découvrir avec Python et voilà c'est tout pour cette formation d'une heure en python vous avez
maintenant les bases qui vont vous permettre de vous lancer dans la programmation mais il y a encore plein de concepts importants à apprendre en python avec lesquels vous pourrez améliorer vos connaissances et pour ça vous trouverez des vidéos sur python au format long ainsi que des shorts sur cette chaîne je vous invite donc à vous abonner pour ne rien rater et de me dire en commentaire les sujets pour lesquels vous voudriez que je fasse des vidéos