Boucle "while"
Résolu/Fermé
lecorse
Messages postés
126
Date d'inscription
samedi 11 mars 2006
Statut
Membre
Dernière intervention
19 juin 2020
-
Modifié le 8 déc. 2018 à 19:40
mamiemando Messages postés 33381 Date d'inscription jeudi 12 mai 2005 Statut Modérateur Dernière intervention 26 novembre 2024 - 8 déc. 2018 à 19:41
mamiemando Messages postés 33381 Date d'inscription jeudi 12 mai 2005 Statut Modérateur Dernière intervention 26 novembre 2024 - 8 déc. 2018 à 19:41
2 réponses
mamiemando
Messages postés
33381
Date d'inscription
jeudi 12 mai 2005
Statut
Modérateur
Dernière intervention
26 novembre 2024
7 802
Modifié le 14 nov. 2018 à 00:06
Modifié le 14 nov. 2018 à 00:06
Bonjour,
Voici comment tu peux écrire ce programme :
Le bloc
Bonne chance
Voici comment tu peux écrire ce programme :
#!/usr/bin/env python3 # -*- coding: utf-8 -*- from random import randint NUM_QUESTIONS = 5 num_correct_answers = 0 for num_questions in range(1, NUM_QUESTIONS + 1): a = randint(1, 10) b = randint(1, 10) x = a * b try: y = int(input("%d * %d = ? " % (a, b))) except: y = None pass if x == y: num_correct_answers += 1 print("Bravo! (%d/%s) of correct answers" % (num_correct_answers, num_questions)) else: print("Nope... %d * %d = %d" % (a, b, x)) print("This is the end! (%d/%s) of correct answers" % (num_correct_answers, num_questions))
Le bloc
try ... exceptsert à rattraper les saisies de l'utilisateur qui ne sont pas un entier.
Bonne chance
mamiemando
Messages postés
33381
Date d'inscription
jeudi 12 mai 2005
Statut
Modérateur
Dernière intervention
26 novembre 2024
7 802
Modifié le 18 nov. 2018 à 16:07
Modifié le 18 nov. 2018 à 16:07
Maintenant je vais prendre le temps pour bien digérer ce que tu viens de m'expliquer.
Tu avais déjà pour ainsi dire compris tout ce qu'il y avait à comprendre. Tu peux ignorer les compléments que je t'ai donné, c'était juste pour donner les racines de cette syntaxe.
Pour des besoins simples, tu peux simplement garder en tête que les %s sont substitués par les chaque élément du tuple passés derrière l'opérateur %.
Ainsi
Vu mon âge j'ai compris que j'avais encore beaucoup trop de matière à apprendre pour espérer être un jour à ta hauteur mais je ne me décourage pas j'irai le plus loin possible.
C'est un puits sans fond, mais on a tous débuté, donc il ne faut pas se laisser intimider, et surtout, que ça reste un plaisir :-)
Maintenant encore une petite question certainement idiote: Pour que mes petites filles puissent s’entraîner au calcul mental comment faire pour qu'elles puissent se servir de mon programme. Elles n habitent pas près de chez moi.
Au contraire, cette question est très pertinente.
De base, un programme python ne peut être lancé que sur une machine où python est installé (e.g. anaconda sous windows, ou le paquet
Comme il n'est pas dit que tes petites filles aient installé python (ou envie de le faire), une alternative pourrait être de générer un exécutable. Je te renvoie sur cette discussion, car personnellement, je ne les ai jamais testé.
Par contre, à ce stade, il faut garder à l'esprit que ce programme est en mode texte, ce qui nécessite de le lancer depuis un terminal (e.g. commande ms-dos sous windows). Si tu voulais faire une interface graphique, il faudrait ajouter à ce programme une petite interface graphique. Il existe plein de modules pour y parvenir, par exemple pyqt ou pygtk, etc. Par contre ceci nécessite un peu de temps pour apprendre à les maîtriser, mais il existe de nombreux tutoriels sur internet pour les découvrir...
Une solution intermédiaire serait de mettre ton programme sur une plateforme genre https://repl.it (c'est un site sur lequel on peut mettre des exercices écrits en python et les faire faire à des élèves), ainsi elles pourraient utiliser ton programme directement depuis leur navigateur.
Autre possibilité, écrire ce programme par exemple en javascript (donc un autre langage) pour qu'elle n'aient qu'à ouvrir le programme depuis leur navigateur.
Bonne chance
Tu avais déjà pour ainsi dire compris tout ce qu'il y avait à comprendre. Tu peux ignorer les compléments que je t'ai donné, c'était juste pour donner les racines de cette syntaxe.
Pour des besoins simples, tu peux simplement garder en tête que les %s sont substitués par les chaque élément du tuple passés derrière l'opérateur %.
Ainsi
print("a : %s b : %s c :%s" % (1, 2, 3))écrit
"a : 1 b : 2 c :3"
Vu mon âge j'ai compris que j'avais encore beaucoup trop de matière à apprendre pour espérer être un jour à ta hauteur mais je ne me décourage pas j'irai le plus loin possible.
C'est un puits sans fond, mais on a tous débuté, donc il ne faut pas se laisser intimider, et surtout, que ça reste un plaisir :-)
Maintenant encore une petite question certainement idiote: Pour que mes petites filles puissent s’entraîner au calcul mental comment faire pour qu'elles puissent se servir de mon programme. Elles n habitent pas près de chez moi.
Au contraire, cette question est très pertinente.
De base, un programme python ne peut être lancé que sur une machine où python est installé (e.g. anaconda sous windows, ou le paquet
python3sous linux), ainsi que les éventuels modules python qui pourraient être nécessaires à ce programme (ici, tu ne seras pas concerné car tu n'utilises que des modules de base).
Comme il n'est pas dit que tes petites filles aient installé python (ou envie de le faire), une alternative pourrait être de générer un exécutable. Je te renvoie sur cette discussion, car personnellement, je ne les ai jamais testé.
Par contre, à ce stade, il faut garder à l'esprit que ce programme est en mode texte, ce qui nécessite de le lancer depuis un terminal (e.g. commande ms-dos sous windows). Si tu voulais faire une interface graphique, il faudrait ajouter à ce programme une petite interface graphique. Il existe plein de modules pour y parvenir, par exemple pyqt ou pygtk, etc. Par contre ceci nécessite un peu de temps pour apprendre à les maîtriser, mais il existe de nombreux tutoriels sur internet pour les découvrir...
Une solution intermédiaire serait de mettre ton programme sur une plateforme genre https://repl.it (c'est un site sur lequel on peut mettre des exercices écrits en python et les faire faire à des élèves), ainsi elles pourraient utiliser ton programme directement depuis leur navigateur.
Autre possibilité, écrire ce programme par exemple en javascript (donc un autre langage) pour qu'elle n'aient qu'à ouvrir le programme depuis leur navigateur.
Bonne chance
lecorse
Messages postés
126
Date d'inscription
samedi 11 mars 2006
Statut
Membre
Dernière intervention
19 juin 2020
18
5 déc. 2018 à 17:12
5 déc. 2018 à 17:12
Encore merci
Bonne soirée
Bonne soirée
mamiemando
Messages postés
33381
Date d'inscription
jeudi 12 mai 2005
Statut
Modérateur
Dernière intervention
26 novembre 2024
7 802
8 déc. 2018 à 19:41
8 déc. 2018 à 19:41
De rien, bonne continuation !
14 nov. 2018 à 20:32
Pourrais-tu m'expliquer le code "%d" avec (input'%d * %d = ? %(a,b))) je suppose que (a,b) sont les paramètres de %d
Avec print("Nope....%d/%s = %d (a,c,x)) % (num_correct_answers, num_questions sont les paramètres de %d et %s
Comme %d * %d sont mes paramètres de a,b dans input
Bonne soirée.
16 nov. 2018 à 00:25
Le premier est substitué par le premier élément du tuple en tant que valeur entière décimale (j'aurais pu utiliser ), comme expliqué ici. Idem pour le second %d, avec le second élément du tuple. Cette syntaxe peut être étoffée pour spécifier le nombre de chiffres significatifs, le padding, l'alignement, etc.
Pour des variables non numériques, tu peux utiliser pour formater un élément sous forme de chaîne (ça écrira le résultat de ) ou (résultat de ).
Bonne chance
16 nov. 2018 à 18:24
Maintenant je vais prendre le temps pour bien digérer ce que tu viens de m'expliquer.
Vu mon âge j'ai compris que j'avais encore beaucoup trop de matière à apprendre pour espérer être un jour à ta hauteur mais je ne me décourage pas j'irai le plus loin possible.
Maintenant encore une petite question certainement idiote: Pour que mes petites filles puissent s’entraîner au calcul mental comment faire pour qu'elles puissent se servir de mon programme. Elles n habitent pas près de chez moi.
Bon weekend.