Python 8.4 : Gérer un score
Nous allons continuer notre projet de questionnaire et ici nous allons introduire le score pour ce fais je vais vous montrer plusieurs approches et ça va être l'occasion pour nous de plus parler des variables globales on va commencer par créer la variable score à ce niveau je vais faire score égal à zéro je l'initialise, et on va mettre un print à la fin de la fonction print ici ensuite nous allons faire que la fonction poser question retourner soit vrai soit faux donc un boolean à ce niveau je vais mettre return True et return False Mais c'est ceci c'est un piège parce que lorsque ça va vérifier la bonne réponse si c'est exact savoir envoyer trop et ça va pas exécuter le print ... d'en bas et si la réponse n'est pas vrai ça va rentrer dans le else et ça va exécuter le print du else et retourner false Sans jamais entrer dans le print du bas du coup cette approche n'est pas vraiment conseillé ainsi nous allons faire autrement je vais créer à ce niveau une variable réponse correcte égal à false donc je l'initialise Et si je supprime ceci déjà et si La réponse est égale à la réponse choisie donc est égal à la bonne réponse, on va mettre réponse correcte Va passer à True J'ai oublié l'égalité vous allez me dit que non on pouvait faire genre Si la réponse est égale à la réponse choisie on met true donc réponse correcte passe à truc et si c'est pas le cas réponse correcte passe à false ceci je mets ceci en bas voila Mais moi je fais autrement bah si on doit d'abord initialiser la réponse correcte avant de la fait changer de valeur donc je vais refaire ce que j'avais voilà comme ça et ici on va faire un if pour le score Si la réponse est correcte deux points le score va être incrémenter plus égal à un nn covit. et on fait la même chose if deux points comme ceci Je relance mon code avant ça je vais afficher le score en bas en faissant un print score final deux points virgule score je relance je vais mettre a ici je vais mettre c on pouvait faire cette méthode que Je viens de faire çi cela fonctionne vraiment Mais ici python est un langage très stricte en ce qui concerne ces choses donc pour que le score soit oncrémenté dans la fonction il faudrait qu'on rajoute a ce niveau score je vais d'abord supprimer ceci qui était une autre approche Je vais rajouter score plus égal à 1 comme ceci vous voyez qu'il y'a une erreur à ce niveau parce que la fonction ne reconnaît pas la variable score et pour qu'elle puisse accéder à la variable score qui se trouve dans le programme principal il faudrait qu'on mette ici global score comme ceci vous voyez qu'il y'a plus d'erreur et au niveau du if on constate qu'on a copié le score plusieurs fois On a copié le score deux fois pour mettre dans l'autre fonction Et imaginons si on a 100 questions on va refaire la même chose à chaque fois c'est pour ça que ... j'ai préféré mettre. score même, à l'intérieur de la fonction même Ici je vais supprimer ceci qui ne sert plus à rien parce que l'autre méthode la Il fallait déclarer le score en haut Je supprime Et ici je supprime ça aussi je vais supprimer ceci je supprime il y'a plus d'erreur Et je relance mon code je met c et je met a Que ça s'affiche normalement je relance et je vais rater une question Je mets c Je mets c aussi vous voyez que le score donne normalement donc Il n'y a pas d'erreur L'ambiguïté était au niveau de la variable Vu qu'on avait déclaré la variable score dans le programme principal et que Et pour accéder à cette variable on devait venir au global c'est pour ça qu'il avait muance Ici il y a eu un problème parce que. On veut réecrire ou encore réaffecter une nouvelle valeur au niveau du score si par exemple. À ce niveau je mets plutôt Commente ceci et ici Je mets 10 Je commente ceci et je fais print de score je relance mon programme Vous voyez que le print, attendez on va faire je vais mettre ceci est le score deux points virgule Je relance vous voyez que s'affiche bien ceci est le score Ce qui signifie que la fonction peut accéder aux données d'une Variable Même si elle n'est pas déclarée globale Mais c'est lorsqu'on veut réécrit ou bien réincrèmenter. Cette valeur qu'on doit Mettre le mot clé global, Donc c'était tout pour cette vidéo et on se dit à très bientôt pour une prochaine concernant. L'expertise des fonctions en version plus améliorée