TDA1 : Guess the number - Correction
Donnons lignes par lignes quelques explications sur le code du jeu "Guess the number". Chaque notion évoquée ici sera détaillée dans les prochains chapitres.
Le code source du jeu : « Guess the number »
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 | |
-
Ligne 1 : on repère un commentaire*
-
Ligne 2 : on importe le module
random, car python ne sait pas tout faire nativement, on va chercher des fonctions dans des bibliothèques externes. -
Ligne 4 : on reconnait une instruction d'affectation, on crée une variable
guessesTakeninitialisée à 0. - Lignes 6-7 : on reconnaît les fonctions intégrées d'affichage et de saisie de python.
- Ligne 9 : on utilise la fonction
randintdu modulerandompour générer un nombre aléatoire entre 1 et 20 (on y reviendra plus tard). - Ligne 10 : on reconnaît une concaténation de chaînes de caractères dans la fonction
print. - Ligne 12 : une instruction
while(que l'on n'a pas encore vue) que l'on peut traduire par "tant que"... (on y reviendra bien sûr en détails) - Lignes 13-14 : ... rien de neuf ;-)
- Ligne 15 : utilisation de la fonction
int. Rappelons nous que le résultat de la fonctioninputest toujours une chaîne de caractères. Ici cette chaîne est sensée représenter un nombre entier, on la convertit donc en entier avec la fonctionint. - Ligne 17 : on incrémente la variable
guessesTakende 1 - Lignes 19-24 : des instructions conditionnelles
if(que l'on n'a pas encore vues) que l'on peut traduire par "si... alors...". On y reviendra là aussi très bientôt. - Ligne 24 : l'instruction
breakpermet de sortir de la bouclewhileen cours d'exécution. - Lignes 25-31 : encore des instructions conditionnelles
ifpour afficher un message différent selon que l'utilisateur a trouvé le nombre ou non. On peut toutefois noter l'utilisation de la fonctionstr(lignes 26 et 30) qui permet de convertir le contenu de la variableguessesTakenounumber(qui sont des entiers) en chaîne de caractères pour pouvoir les concaténer avec d'autres chaînes de caractères dans la fonctionprint.