Programmation » Python 3.8.2 : débutant - créer une boucle
    Catégorie:  
       
    Python 3.8.2 : débutant - créer une boucle
    Publié le 14/11/2020 @ 08:18:13,
    Par Monky
    Bonjour,

    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 ?

    1. #coding:utf-8 
    2. #tirage au sort du nombre aléatoire entre 1 et 100 
    3. from random import randint 
    4. randint(1100
    5. #Création de la variable nombre mystère 
    6. import random 
    7. nbr = random.randint(1100
    8. nbr = int(nbr) 
    9. print(nbr) 
    10. #Demander une proposition à l'utilisateur 
    11. #rep = input("Selon vous, quel est le nombre mystère ? > ") 
    12. #rep = int(rep) 
    13. #Création fonction demander une proposition à l'utilisateur 
    14. rep = input("Selon vous, quel est le nombre mystère ? > "
    15. rep = int(rep) 
    16. def ask(): 
    17.   print(rep) 
    18. print(ask) 
    19. #Boucle pour donner les indications à l'utilisateur 
    20. while rep == nbr: 
    21.     if rep > nbr: 
    22.         print("Le nombre mystère est plus petit"
    23.         print(ask) 
    24.         continue 
    25.     elif rep < nbr: 
    26.         print("Le nombre mystère est plus grand"
    27.         print(ask) 
    28.         continue 
    29.     print("Oui ! Le nombre mystère était : ", nbr) 
    30.     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 :

    1. #coding:utf-8 
    2. #tirage au sort du nombre aléatoire entre 1 et 100 
    3. from random import randint 
    4. randint(1100
    5. #Création de la variable nombre mystère 
    6. import random 
    7. nbr = random.randint(1100
    8. nbr = int(nbr) 
    9. print(nbr) 
    10. #Demander une proposition à l'utilisateur 
    11. #rep = input("Selon vous, quel est le nombre mystère ? > ") 
    12. #rep = int(rep) 
    13. #Boucle pour donner les indications à l'utilisateur 
    14. #while rep == nbr: 
    15. rep = 0 
    16. rep = int(rep) 
    17. while rep == nbr: 
    18.   rep = input("Selon vous, quel est le nombre mystère ? > "
    19.        
    20.   if rep > nbr: 
    21.     print("Le nombre mystère est plus petit"
    22.   elif rep < nbr: 
    23.     print("Le nombre mystère est plus grand"
    24.   else
    25.     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 Monky
    J'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.

    1. #coding:utf-8 
    2. #tirage au sort du nombre aléatoire entre 1 et 100 
    3. from random import randint 
    4. randint(1100
    5. #Création de la variable nombre mystère 
    6. import random 
    7. nbr = random.randint(1100
    8. nbr = int(nbr) 
    9. print(nbr) 
    10. #Boucle pour donner les indications à l'utilisateur 
    11. #while rep == nbr: 
    12. rep = 0 
    13. rep = int(rep) 
    14. #Tant que réponse est différente du nombre mystère 
    15. while rep != nbr: 
    16.   rep = input("Selon vous, quel est le nombre mystère ? > ")     
    17.   rep = int(rep) 
    18.   if rep > nbr: 
    19.     print("Le nombre mystère est plus petit"
    20.   elif rep < nbr: 
    21.     print("Le nombre mystère est plus grand"
    22.   else
    23.     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 Monky
    J'ai fini mon premier petit programme. Très basique, mais comme je ne suis pas bien doué...

    1. #coding:utf-8 
    2. #Salutations 
    3. #\n permet de passer à la ligne. 
    4. user = input("Bonjour ! Quel est ton prénom ?\n\n > "
    5. 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)) 
    6. import random 
    7. #Tirage au sort 
    8. def choixN(n): 
    9.   return random.randint(1, n) 
    10. #Balise pour recommencer la partie 
    11. recommencer = True 
    12. recommencer = bool(recommencer) 
    13. #Boucle qui va permettre de recommencer la partie 
    14. while recommencer == True: 
    15.   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> "
    16.   choix=int(choix) 
    17.   if choix == 1
    18.     nbr = choixN(10
    19.   elif choix == 2
    20.     nbr = choixN(100
    21.   elif choix == 3
    22.     nbr = choixN(1000
    23.   rep = 0 
    24.   #Tant que réponse est différente du nombre mystère 
    25.   while rep != nbr: 
    26.     rep = input("Selon vous, quel est le nombre mystère ? \n\n> ")     
    27.     rep = int(rep) 
    28.     if rep > nbr: 
    29.       print("Le nombre mystère est plus petit\n\n"
    30.     elif rep < nbr: 
    31.       print("Le nombre mystère est plus grand\n\n"
    32.     else
    33.       print("Oui ! Le nombre mystère était effectivement : ", nbr) 
    34.       recommencer = input("Voulez-vous recommencer une partie ? (o / n)"
    35.       if recommencer == "o" or recommencer == "O"
    36.         recommencer = True 
    37.       else : 
    38.         recommencer = False 
    39.         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 zion
    Hello 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 :smile:

    J'avais fait un atelier similaire en PHP-Cli avec mes filles, elles aimaient plus le CLI que le blocky, va comprendre :spamafote:
    C'est pour des enfants de quel âge?
    Je suis le Roy :ocube:
       
    Python 3.8.2 : débutant - créer une boucle
    Publié le 15/11/2020 @ 17:52:25,
    Par Monky
    Hello 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 :smile:

    J'avais fait un atelier similaire en PHP-Cli avec mes filles, elles aimaient plus le CLI que le blocky, va comprendre :spamafote:
    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 Monky
    Voici 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 zion
    J'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 :grin: ), je te dis pas la motivation :wink:

    C'était bien plus facile en CLI que via un truc comme blocky, et un Pi est parfait pour ça.
    Je suis le Roy :ocube:
       
    Python 3.8.2 : débutant - créer une boucle
    Publié le 15/11/2020 @ 18:12:43,
    Par Monky
    Je 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...
       
    Python 3.8.2 : débutant - créer une boucle
    Publié le 16/11/2020 @ 22:03:28,
    Par gizmo
    Tout 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 :ohwell:
    Concept vivant.
       
    Python 3.8.2 : débutant - créer une boucle
    Publié le 16/11/2020 @ 23:14:09,
    Par zion
    gizmo> :love:

    Tu penses quoi du PHP pour les gosses tiens? Tu utiliserais quoi comme premier langage ?
    Je suis le Roy :ocube:
       
    Python 3.8.2 : débutant - créer une boucle
    Publié le 17/11/2020 @ 05:46:35,
    Par Monky
    Tout 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 :ohwell:


    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 gizmo
    gizmo> :love:

    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).
    Répondre - Catégorie:  
    Informaticien.be - © 2002-2025 AkretioSPRL  - Generated via Kelare
    The Akretio Network: Akretio - Freedelity - KelCommerce - Votre publicité sur informaticien.be ?