Programmation » Python 3.8.2 : débutant - créer une boucle
Python 3.8.2 : débutant - créer une boucle
Publié le 14/11/2020 @ 08:18:13,
Par MonkyBonjour,
Je réalise mon tout premier programme sous Python. Autant vous dire que je ne suis pas loin.
J'essaye de créer un petit jeu autour d'un nombre mystère.
Le programme choisit aléatoirement un nombre et demande ensuite à l'utilisateur de faire une proposition.
La boucle est donc la suivante :
Jusqu'à ce que la réponse soit égale au nombre mystère,
Dire "Non, le nombre est plus petit"
Proposez un autre nombre
Dire "Non, le nombre est plus grand
Proposez un autre nombre
En fin de boucle : oui ! C'est la bonne réponse
Pour le moment, je fais apparaitre le nombre aléatoire en début de programme pour pouvoir tester sa réaction à mes réponses...
Ma boucle ne mène à rien. Pas de message d'erreur, mais lorsque je rentre une proposition, le programme ne fait rien de ce que j'ai mis dans la boucle.
Je sais pertinement que j'ai écrit quelque chose de stupide dans mon programme, mais je ne trouve pas la réponse.
Pourriez-vous me donner une petit impulsion pour rebondir ?
J'ai fait une autre version de la boucle, sans plus de succès. Il n'affiche même pas le premier message de la boucle :
Dernière édition: 14/11/2020 @ 08:47:10
Je réalise mon tout premier programme sous Python. Autant vous dire que je ne suis pas loin.
J'essaye de créer un petit jeu autour d'un nombre mystère.
Le programme choisit aléatoirement un nombre et demande ensuite à l'utilisateur de faire une proposition.
La boucle est donc la suivante :
Jusqu'à ce que la réponse soit égale au nombre mystère,
Dire "Non, le nombre est plus petit"
Proposez un autre nombre
Dire "Non, le nombre est plus grand
Proposez un autre nombre
En fin de boucle : oui ! C'est la bonne réponse
Pour le moment, je fais apparaitre le nombre aléatoire en début de programme pour pouvoir tester sa réaction à mes réponses...
Ma boucle ne mène à rien. Pas de message d'erreur, mais lorsque je rentre une proposition, le programme ne fait rien de ce que j'ai mis dans la boucle.
Je sais pertinement que j'ai écrit quelque chose de stupide dans mon programme, mais je ne trouve pas la réponse.
Pourriez-vous me donner une petit impulsion pour rebondir ?
- #coding:utf-8
- #tirage au sort du nombre aléatoire entre 1 et 100
- from random import randint
- randint(1, 100)
- #Création de la variable nombre mystère
- import random
- nbr = random.randint(1, 100)
- nbr = int(nbr)
- print(nbr)
- #Demander une proposition à l'utilisateur
- #rep = input("Selon vous, quel est le nombre mystère ? > ")
- #rep = int(rep)
- #Création fonction demander une proposition à l'utilisateur
- rep = input("Selon vous, quel est le nombre mystère ? > ")
- rep = int(rep)
- def ask():
- print(rep)
- print(ask)
- #Boucle pour donner les indications à l'utilisateur
- while rep == nbr:
- if rep > nbr:
- print("Le nombre mystère est plus petit")
- print(ask)
- continue
- elif rep < nbr:
- print("Le nombre mystère est plus grand")
- print(ask)
- continue
- print("Oui ! Le nombre mystère était : ", nbr)
- break
J'ai fait une autre version de la boucle, sans plus de succès. Il n'affiche même pas le premier message de la boucle :
- #coding:utf-8
- #tirage au sort du nombre aléatoire entre 1 et 100
- from random import randint
- randint(1, 100)
- #Création de la variable nombre mystère
- import random
- nbr = random.randint(1, 100)
- nbr = int(nbr)
- print(nbr)
- #Demander une proposition à l'utilisateur
- #rep = input("Selon vous, quel est le nombre mystère ? > ")
- #rep = int(rep)
- #Boucle pour donner les indications à l'utilisateur
- #while rep == nbr:
- rep = 0
- rep = int(rep)
- while rep == nbr:
- rep = input("Selon vous, quel est le nombre mystère ? > ")
- if rep > nbr:
- print("Le nombre mystère est plus petit")
- elif rep < nbr:
- print("Le nombre mystère est plus grand")
- else:
- print("Oui ! Le nombre mystère était : ", nbr)
Dernière édition: 14/11/2020 @ 08:47:10
Python 3.8.2 : débutant - créer une boucle
Publié le 14/11/2020 @ 09:07:06,
Par MonkyJ'ai trouvé la solution.
Dans ma tête, je conceptualisais le While comme "jusqu"à ce que". J'aurais plutôt dû penser "Tant que". Mon code fonctionne à présent.
Autre objectif maintenant, ajouter la possibilité au joueur de recommencer.
Dans ma tête, je conceptualisais le While comme "jusqu"à ce que". J'aurais plutôt dû penser "Tant que". Mon code fonctionne à présent.
Autre objectif maintenant, ajouter la possibilité au joueur de recommencer.
- #coding:utf-8
- #tirage au sort du nombre aléatoire entre 1 et 100
- from random import randint
- randint(1, 100)
- #Création de la variable nombre mystère
- import random
- nbr = random.randint(1, 100)
- nbr = int(nbr)
- print(nbr)
- #Boucle pour donner les indications à l'utilisateur
- #while rep == nbr:
- rep = 0
- rep = int(rep)
- #Tant que réponse est différente du nombre mystère
- while rep != nbr:
- rep = input("Selon vous, quel est le nombre mystère ? > ")
- rep = int(rep)
- if rep > nbr:
- print("Le nombre mystère est plus petit")
- elif rep < nbr:
- print("Le nombre mystère est plus grand")
- else:
- print("Oui ! Le nombre mystère était : ", nbr)
Python 3.8.2 : débutant - créer une boucle
Publié le 14/11/2020 @ 17:54:36,
Par MonkyJ'ai fini mon premier petit programme. Très basique, mais comme je ne suis pas bien doué...
- #coding:utf-8
- #Salutations
- #\n permet de passer à la ligne.
- user = input("Bonjour ! Quel est ton prénom ?\n\n > ")
- print("Bonjour {}, ravi de faire ta connaissance !\n\nNous allons jouer au nombre mystère.\n\nJe vais choisir un nombre entre 1 et 100.\n\nFais-moi ensuite tes propositions.\n\nJe vous dirai si le nombre est plus grand ou plus petit\n\n".format(user))
- import random
- #Tirage au sort
- def choixN(n):
- return random.randint(1, n)
- #Balise pour recommencer la partie
- recommencer = True
- recommencer = bool(recommencer)
- #Boucle qui va permettre de recommencer la partie
- while recommencer == True:
- choix = input("Tapez 1 pour utiliser un nombre entre 1 et 10.\nTapez 2 pour utiliser un nombre entre 1 et 100.\nTapez 3 pour utiliser un nombre entre 1 et 1000.\n\n> ")
- choix=int(choix)
- if choix == 1:
- nbr = choixN(10)
- elif choix == 2:
- nbr = choixN(100)
- elif choix == 3:
- nbr = choixN(1000)
- rep = 0
- #Tant que réponse est différente du nombre mystère
- while rep != nbr:
- rep = input("Selon vous, quel est le nombre mystère ? \n\n> ")
- rep = int(rep)
- if rep > nbr:
- print("Le nombre mystère est plus petit\n\n")
- elif rep < nbr:
- print("Le nombre mystère est plus grand\n\n")
- else:
- print("Oui ! Le nombre mystère était effectivement : ", nbr)
- recommencer = input("Voulez-vous recommencer une partie ? (o / n)")
- if recommencer == "o" or recommencer == "O":
- recommencer = True
- else :
- recommencer = False
- print("Merci d'avoir joué {}, à bientôt !".format(user))
Python 3.8.2 : débutant - créer une boucle
Publié le 15/11/2020 @ 17:36:53,
Par zionHello Monky,
Désolé, pas que je ne sois pas intéressé, mais je n'ai pas trop regardé Python ,même si la lecture ne semble pas bien difficile comme langage j'avoue
J'avais fait un atelier similaire en PHP-Cli avec mes filles, elles aimaient plus le CLI que le blocky, va comprendre
C'est pour des enfants de quel âge?
Désolé, pas que je ne sois pas intéressé, mais je n'ai pas trop regardé Python ,même si la lecture ne semble pas bien difficile comme langage j'avoue
J'avais fait un atelier similaire en PHP-Cli avec mes filles, elles aimaient plus le CLI que le blocky, va comprendre
C'est pour des enfants de quel âge?
Je suis le Roy
Python 3.8.2 : débutant - créer une boucle
Publié le 15/11/2020 @ 17:52:25,
Par MonkyHello Monky,
Désolé, pas que je ne sois pas intéressé, mais je n'ai pas trop regardé Python ,même si la lecture ne semble pas bien difficile comme langage j'avoue
J'avais fait un atelier similaire en PHP-Cli avec mes filles, elles aimaient plus le CLI que le blocky, va comprendre
C'est pour des enfants de quel âge?
Il n'y a pas de mal... Tout cela n'est pas très élaboré. On est ici dans l'enseignement primaire. Sixième primaire. Et concernant mes aptitudes, ce sont celles d'un débutant, j'ai mis le nez dedans la veille.
L'idée c'est qu'ils programmes avec Scratch. Je vais tenter de faire le pendant en Python de temps en temps pour leur montrer que c'est un réel codage qu'ils apprennent.
J'ai aussi un bras robotisé sur base d'Arduino. Ils vont donc aussi chipoter là-dessus.
J'ai apporté mon imprimante 3D pour faire le lien avec tout ça puisque le bras a été créé avec une imprimante 3D.
J'ai aussi un PC de bureau, un portable, un GSM qui sont complètement démonté. Nous observons le contenu et faisons le lien avec tout ça.
Je relie tout cela aux cours de sciences notamment sur le corps humain, mais aussi les engrenages. Evidemment, on peut travailler de nombreuses notions mathématiques. Je voudrais qu'ils créent de petit programmes par exemple aussi pour calculer des aires selon les formes. Excellent pour les aider à se construire des démarches de résolution, ce qui les bloque le plus souvent.
Rien d'intéressant au niveau de l'ensemble des visiteurs et utilisateurs de ce site, mais on va dire que j'essaie de les initier...
Désolé, pas que je ne sois pas intéressé, mais je n'ai pas trop regardé Python ,même si la lecture ne semble pas bien difficile comme langage j'avoue
J'avais fait un atelier similaire en PHP-Cli avec mes filles, elles aimaient plus le CLI que le blocky, va comprendre
C'est pour des enfants de quel âge?
Il n'y a pas de mal... Tout cela n'est pas très élaboré. On est ici dans l'enseignement primaire. Sixième primaire. Et concernant mes aptitudes, ce sont celles d'un débutant, j'ai mis le nez dedans la veille.
L'idée c'est qu'ils programmes avec Scratch. Je vais tenter de faire le pendant en Python de temps en temps pour leur montrer que c'est un réel codage qu'ils apprennent.
J'ai aussi un bras robotisé sur base d'Arduino. Ils vont donc aussi chipoter là-dessus.
J'ai apporté mon imprimante 3D pour faire le lien avec tout ça puisque le bras a été créé avec une imprimante 3D.
J'ai aussi un PC de bureau, un portable, un GSM qui sont complètement démonté. Nous observons le contenu et faisons le lien avec tout ça.
Je relie tout cela aux cours de sciences notamment sur le corps humain, mais aussi les engrenages. Evidemment, on peut travailler de nombreuses notions mathématiques. Je voudrais qu'ils créent de petit programmes par exemple aussi pour calculer des aires selon les formes. Excellent pour les aider à se construire des démarches de résolution, ce qui les bloque le plus souvent.
Rien d'intéressant au niveau de l'ensemble des visiteurs et utilisateurs de ce site, mais on va dire que j'essaie de les initier...
Python 3.8.2 : débutant - créer une boucle
Publié le 15/11/2020 @ 17:53:17,
Par MonkyVoici l'association du codage scratch et du code Python (ne pas se soucier du site, c'est un site de brouillon pour moi) : https://sites.google.com/annonciation.be/ticecole/cours/codage
Python 3.8.2 : débutant - créer une boucle
Publié le 15/11/2020 @ 18:08:52,
Par zionJ'avais vu un truc d'une école d'ingénieurs à Bruxelles pour apprendre à compter en binaire (à une expo science au Heyzel). Je n'ai plus le nom de l'école, mais c'était en légo avec des cartes, tu devais faire ta représentation binaire d'un nombre, et si tu y arrivais correctement il prenait une balle de golf pour la mettre dans le bon carré (avec genre 8x8 carrés et 2x8 chargeurs pour les balles).
C'était hyper intuitif pour apprendre à compter en binaire pour des gosses, impossible pour des adultes, l'âge fin primaire est parfait.
Pour Scratch, ne sous estime par la programmation en console comme avec Python ou PHP, les gosses aiment créer un petit truc interactif qui pose des questions, j'avais fait pareil avec elles pour demander 2 nombres, si elles voulaient une addition ou multiplication, elles voyaient directement l'intérêt (pour leurs devoirs ), je te dis pas la motivation
C'était bien plus facile en CLI que via un truc comme blocky, et un Pi est parfait pour ça.
C'était hyper intuitif pour apprendre à compter en binaire pour des gosses, impossible pour des adultes, l'âge fin primaire est parfait.
Pour Scratch, ne sous estime par la programmation en console comme avec Python ou PHP, les gosses aiment créer un petit truc interactif qui pose des questions, j'avais fait pareil avec elles pour demander 2 nombres, si elles voulaient une addition ou multiplication, elles voyaient directement l'intérêt (pour leurs devoirs ), je te dis pas la motivation
C'était bien plus facile en CLI que via un truc comme blocky, et un Pi est parfait pour ça.
Je suis le Roy
Python 3.8.2 : débutant - créer une boucle
Publié le 15/11/2020 @ 18:12:43,
Par MonkyJe vais me pencher là dessus dès que j'ai un peu de temps... Merci !
Oui oui, j'ai un raspberry aussi en classe. Oublié de le mentionner...
Oui oui, j'ai un raspberry aussi en classe. Oublié de le mentionner...
Python 3.8.2 : débutant - créer une boucle
Publié le 16/11/2020 @ 22:03:28,
Par gizmoTout dépend de ce que tu veux faire avec les enfants.
Les interfaces de type Scratch ont les avantages suivant:
* impossible de faire une faute de frappe
* pas besoin d'apprendre l'anglais
* tu as un GUI d'office
* Hyper-simple de faire inter-agir différents éléments.
Les langages textuels, eux, on les avantages suivant:
* forcent à réfléchir en algorithmique
* ont un debugging plus simple à mettre en place
* permettent d'aller plus loin (quoique dans le cadre de cours en primaire, il y a peu de chance que tu atteignes ce niveau dans le temps alloué)
Pour aider à la transition de l'un à l'autre, tu peux aussi regarder ceci: https://edublocks.org qui te permets de voir la traduction block vers texte
PS: avec python, attends-toi a passer un temps non négligeable a fixer les erreurs d'indentation de tes élèves
Les interfaces de type Scratch ont les avantages suivant:
* impossible de faire une faute de frappe
* pas besoin d'apprendre l'anglais
* tu as un GUI d'office
* Hyper-simple de faire inter-agir différents éléments.
Les langages textuels, eux, on les avantages suivant:
* forcent à réfléchir en algorithmique
* ont un debugging plus simple à mettre en place
* permettent d'aller plus loin (quoique dans le cadre de cours en primaire, il y a peu de chance que tu atteignes ce niveau dans le temps alloué)
Pour aider à la transition de l'un à l'autre, tu peux aussi regarder ceci: https://edublocks.org qui te permets de voir la traduction block vers texte
PS: avec python, attends-toi a passer un temps non négligeable a fixer les erreurs d'indentation de tes élèves
Concept vivant.
Python 3.8.2 : débutant - créer une boucle
Publié le 16/11/2020 @ 23:14:09,
Par ziongizmo>
Tu penses quoi du PHP pour les gosses tiens? Tu utiliserais quoi comme premier langage ?
Tu penses quoi du PHP pour les gosses tiens? Tu utiliserais quoi comme premier langage ?
Je suis le Roy
Python 3.8.2 : débutant - créer une boucle
Publié le 17/11/2020 @ 05:46:35,
Par MonkyTout dépend de ce que tu veux faire avec les enfants.
Les interfaces de type Scratch ont les avantages suivant:
* impossible de faire une faute de frappe
* pas besoin d'apprendre l'anglais
* tu as un GUI d'office
* Hyper-simple de faire inter-agir différents éléments.
Les langages textuels, eux, on les avantages suivant:
* forcent à réfléchir en algorithmique
* ont un debugging plus simple à mettre en place
* permettent d'aller plus loin (quoique dans le cadre de cours en primaire, il y a peu de chance que tu atteignes ce niveau dans le temps alloué)
Pour aider à la transition de l'un à l'autre, tu peux aussi regarder ceci: https://edublocks.org qui te permets de voir la traduction block vers texte
PS: avec python, attends-toi a passer un temps non négligeable a fixer les erreurs d'indentation de tes élèves
Les interfaces de type Scratch ont les avantages suivant:
* impossible de faire une faute de frappe
* pas besoin d'apprendre l'anglais
* tu as un GUI d'office
* Hyper-simple de faire inter-agir différents éléments.
Les langages textuels, eux, on les avantages suivant:
* forcent à réfléchir en algorithmique
* ont un debugging plus simple à mettre en place
* permettent d'aller plus loin (quoique dans le cadre de cours en primaire, il y a peu de chance que tu atteignes ce niveau dans le temps alloué)
Pour aider à la transition de l'un à l'autre, tu peux aussi regarder ceci: https://edublocks.org qui te permets de voir la traduction block vers texte
PS: avec python, attends-toi a passer un temps non négligeable a fixer les erreurs d'indentation de tes élèves
Merci ! Je connaissais Edubloc. A voir où en seront les élèves. Mais je voudrais effectivement arriver à ce genre de choses...
Python 3.8.2 : débutant - créer une boucle
Publié le 17/11/2020 @ 15:29:04,
Par gizmogizmo>
Tu penses quoi du PHP pour les gosses tiens? Tu utiliserais quoi comme premier langage ?
Tu penses quoi du PHP pour les gosses tiens? Tu utiliserais quoi comme premier langage ?
Je pense que, même si la syntax est souvent absconse ("mais pourquoi il faut des $?"), elle a l'avantage, sur python, d'avoir des règles visuelles plus claire.
Et puis, comme ce n'est pas du compilé, il y a moins de phase "attendre" qui font que les enfants perdent le fil.
Aussi, GROS avantage, le mix HTML/php dans le même fichier, qui leur permet facilement d'avoir une GUI, même primaire (le but n'est pas d'apprendre les bonnes pratique de programmation, mais d'apprendre la logique algorithmique et l'analyse de système).