Partage
  • Partager sur Facebook
  • Partager sur Twitter

Exercices du cours Python / postez ici !

    2 octobre 2019 à 11:17:11

    Salut à tous !
    Je viens de terminer le projet sur le ZCasino du premier chapitre et j'aurais aimé avoir des retours sur mon code.
    Voici le lien github :
    https://github.com/flashjaysan/python/blob/master/zcasino.py

    En particulier, j'aimerais savoir s'il y a des bugs ou des façons plus élégantes d'écrire certaines parties.

    A bientôt.

    • Partager sur Facebook
    • Partager sur Twitter
      2 octobre 2019 à 13:29:47

      Salut,

      Le code a l'air plutôt pas mal, bien découpé, quelques remarques cependant :

      • Dans la fonction want_to_play_question ta variable answer_ok n'est pas très utile puisque ne change jamais de valeur, ton code serait équivalent avec un while True.
      • Trois de tes fonctions opèrent simplement une boucle jusqu'à obtenir une réponse valide de l'utilisateur suivant certaines conditions, elles mériteraient d'être factorisées pour éviter trop de répétition dans la logique du code.
      • Je ne suis pas sûr de la logique voulue, mais est-ce normal que lorsque l'on mise on ne retire pas systématiquement la mise de l'argent disponible ?
      • Autre petit point : au moment où l'on nous demande de parier, les bornes ne sont pas connues, elles ne sont affichées que si l'on entre un nombre invalide.

      -
      Edité par entwanne 2 octobre 2019 à 13:30:02

      • Partager sur Facebook
      • Partager sur Twitter
        2 octobre 2019 à 14:06:02

        @entwanne: Merci beaucoup. J'ai corrigé les plus grosses erreurs (vive github pour mettre à jour les sources). J'ai volontairement retardé le "débit" de la mise à la fin car la somme est restituée 2 cas sur 3. J'ai donc effectué un simple calcul des gains qui peuvent être négatifs si la mise est perdue. Effectivement, les boucles sont maladroites. Je vais y réfléchir mais je n'ai pas encore trop d'idées. Le refactor en une fonction unique est potentiellement à étudier mais les messages d'erreurs de saisie ne seront plus personnalisés au cas présent.

        Edit: J'ai supprimé la variable answer_ok par une simple boucle infinie et je sors simplement des boucles avec un return.

        J'ai fait tester à mes enfants et ils ont découvert une "faille" qui permettait de miser 0$ et un bug qui misait toujours la somme totale lorsqu'on gagnait. J'ai aussi découvert la nécessité de préciser l'intervalle attendu pour les numéros à miser.

        -
        Edité par flashjaysan 2 octobre 2019 à 14:15:14

        • Partager sur Facebook
        • Partager sur Twitter
          2 octobre 2019 à 14:34:25

          Je te conseille aussi pour ça de mettre en place des tests (avec pytest par exemple) pour t'assurer des différents comportements. Peut-être qu'on découpage différent sera nécessaire, pur éviter de trop dépendre des entrées utilisateur qu'il te faudrait mocker.

          • Partager sur Facebook
          • Partager sur Twitter
            2 octobre 2019 à 14:39:15

            Autant je pense avoir de bonnes bases en programmation, autant les tests c'est quelque chose de totalement mystérieux pour moi. Je vois naïvement leur intérêt mais je ne sais pas m'en servir ni même par où commencer pour me familiariser avec ce concept. Je te remercie encore pour tes réponses.

            Edit: Peux tu m'expliquer ce que signifier "mocker" ? J'ignore son sens dans le contexte. (imiter, simuler en traduction online)

            -
            Edité par flashjaysan 2 octobre 2019 à 14:44:05

            • Partager sur Facebook
            • Partager sur Twitter
              2 octobre 2019 à 15:38:39

              Bonjour a tous, voila maintenant quelques jours que je code et j'en suis au niveau de la construction d'une interface graphique. Mon problème est que je n'arrive pas a inclure une image dans la fenêtre que j'ai créée juste avant. Son encadrement est vide et pas aux bonnes dimensions. Je pense que mon erreur est après le commentaire # création d'une image. Mais bon je vous laisse trouver. Voici un copier coller de mon programme (mon image existe bel et bien):

              # personnaliser la fenetre
              window.title("antivirus")
              window.geometry("1080x720")
              window.minsize(480, 360)
              window.iconbitmap("shield.ico")
              window.config(background='#9ACD32')

              # creation d'image
              width = 3000
              height = 300
              image = PhotoImage("password.png").zoom(33).subsample(32)
              canvas = Canvas(window, width=width, height=height, bg='#9ACD32')
              canvas.create_image(width/2, height/2, image=image)
              canvas.pack(expand=YES)

              # afficher
              window.mainloop()

              • Partager sur Facebook
              • Partager sur Twitter
                4 octobre 2019 à 10:44:42

                Après deux jours sur le projet de pendu, j'ai enfin terminé d'implémenter toutes les fonctionnalités demandés. Entre les allers-retours avec la doc officielle, la recherche sur stackoverflow de certains détails, la réflexion personnelle et le refactoring permanent, je suis rincé. :)

                Comme d'habitude, si quelques âmes charitables veulent bien me faire des retours sur mon projet, ce serait vraiment sympa.

                Voici le lien github :

                https://github.com/flashjaysan/python/tree/master/hangman

                J'ai découpé plein de choses en sous fonctions mais ça commence à sérieusement être le fouilli dans le fichier `functions.py`. J'imagine que découper le programme en fichiers indépendants pour chaque objet pourrait alléger la lecture mais je ne maîtrise pas encore ça et j'ai encore du mal à voir comment rendre tout ça plus lisible.

                Le plus difficile a été pour moi l'utilisation des fichiers mais au final, la lib pickle fait quasiment tout le boulot sans avoir à mettre les mains dans le cambouis. J'ai mis plus de temps à réfléchir à comment utiliser cette lib et gérer le cas où le fichier n'existe pas qu'à vraiment écrire les fonctions.

                Enfin... La mise en application des concepts du cours me rappelle que la pratique est essentielle pour "saisir" l'utilisation des fonctionnalités du langage.

                -
                Edité par flashjaysan 4 octobre 2019 à 10:46:30

                • Partager sur Facebook
                • Partager sur Twitter
                  5 octobre 2019 à 19:13:52

                  Bonjour tous le monde,

                  Quelqu'un svp peut m'indiquer le nom de l’interpréteur python utilisé dans le cours ?

                  Merci.

                  • Partager sur Facebook
                  • Partager sur Twitter
                    5 octobre 2019 à 19:29:59

                    Bonjour, l'interpréteur utilisé dans le cours est CPython, l'implémentation la plus officielle de Python, https://www.python.org/

                    -
                    Edité par digammaF 5 octobre 2019 à 19:30:11

                    • Partager sur Facebook
                    • Partager sur Twitter

                    typage structurel ftw

                      6 octobre 2019 à 23:51:05

                      digammaF a écrit:

                      Bonjour, l'interpréteur utilisé dans le cours est CPython, l'implémentation la plus officielle de Python, https://www.python.org/

                      -
                      Edité par digammaF hier à 19:30


                      Merci pour ton retour. J'ai bien téléchargé le logiciel disponible sur Python.org mais je ne retrouve pas la représentation en couleurs (mais uniquement blanc sur fond noir et les lignes ne sont pas numérotées) tel qu'il est représenté sur image ci-dessous:

                      Résultat de recherche d'images pour "CPython"

                      • Partager sur Facebook
                      • Partager sur Twitter
                        7 octobre 2019 à 7:57:48

                        @othman_86: Ce que tu montres dans ton image, c'est juste une présentation avec une coloration syntaxique. Cette esthétique ressemble à celle de l'éditeur de code Sublime Text. Je ne l'utilise pas car il est théoriquement payant mais tu peux l'utiliser gratuitement pour l'essayer aussi longtemps que tu veux sans aucune limitation. De nombreuses personnes adorent cet éditeur très populaire mais vu qu'il est payant si on l'utilise en respectant les conditions d'utilisation, je préfère me tourner vers des solutions gratuites que je trouve tout aussi bien. Mon éditeur favori reste VS Code. Tu peux essayer Atom également ou encore des solutions plus légères comme Geany qui tourne bien sur Raspberry Pi ou Notepad++. D'autres te conseilleront des solutions encore plus légères comme Idle préinstallé avec Python ou vi préinstallé sur Linux.

                        Dans tous les cas, un éditeur de code te permettra de plus facilement lire ton code ou de fournir certaines facilités pour déboguer ou exécuter tes programmes. Ce ne sont que des outils et l'essentiel est de pouvoir saisir tes programmes et de savoir les compiler pour les tester.

                        • Partager sur Facebook
                        • Partager sur Twitter
                          11 octobre 2019 à 0:09:33 - Message modéré pour le motif suivant : Merci d'utiliser le bouton code du forum pour insérer votre code


                            21 octobre 2019 à 21:44:36

                            flashjaysan a écrit:

                            @othman_86: Ce que tu montres dans ton image, c'est juste une présentation avec une coloration syntaxique. Cette esthétique ressemble à celle de l'éditeur de code Sublime Text. Je ne l'utilise pas car il est théoriquement payant mais tu peux l'utiliser gratuitement pour l'essayer aussi longtemps que tu veux sans aucune limitation. De nombreuses personnes adorent cet éditeur très populaire mais vu qu'il est payant si on l'utilise en respectant les conditions d'utilisation, je préfère me tourner vers des solutions gratuites que je trouve tout aussi bien. Mon éditeur favori reste VS Code. Tu peux essayer Atom également ou encore des solutions plus légères comme Geany qui tourne bien sur Raspberry Pi ou Notepad++. D'autres te conseilleront des solutions encore plus légères comme Idle préinstallé avec Python ou vi préinstallé sur Linux.

                            Dans tous les cas, un éditeur de code te permettra de plus facilement lire ton code ou de fournir certaines facilités pour déboguer ou exécuter tes programmes. Ce ne sont que des outils et l'essentiel est de pouvoir saisir tes programmes et de savoir les compiler pour les tester.


                            Bonjour,  Merci pour ces éclaircissements très pertinents !  Mes salutations !
                            • Partager sur Facebook
                            • Partager sur Twitter
                              24 octobre 2019 à 11:58:08 - Message modéré pour le motif suivant : Merci de créer votre propre sujet


                                24 octobre 2019 à 18:11:00

                                Bonjour à tous, j'ai vraiment besoin d'aide pour un programme, voici les consignes: "déterminer le nombre premier qui suit un nombre n donné (n étant un entier naturel)" . Merci d'avance pour votre aide.
                                • Partager sur Facebook
                                • Partager sur Twitter
                                  24 octobre 2019 à 18:15:03

                                  RaphaelDubois2 a écrit:

                                  Bonjour à tous, j'ai vraiment besoin d'aide pour un programme, voici les consignes: "déterminer le nombre premier qui suit un nombre n donné (n étant un entier naturel)" . Merci d'avance pour votre aide.


                                  Ou-est ce que tu bloques ? Est-ce que tu as du code ?

                                  -
                                  Edité par bergiLeZÉR0 24 octobre 2019 à 18:19:31

                                  • Partager sur Facebook
                                  • Partager sur Twitter

                                  "I believe in two things. Discipline and the Bible." The Shawshank Redemption

                                    24 octobre 2019 à 18:38:01 - Message modéré pour le motif suivant : Merci d'utiliser le bouton code du forum pour insérer votre code


                                      24 octobre 2019 à 23:49:52

                                      Merci pour votre d'aide,
                                      1. Créez le code nécessaire pour ouvrir tous les fichiers .jpg du dossier
                                      sélectionné et compter le nombre de cercles dans chacun d’eux.
                                      Le script doit fournir le résultat sous forme de liste (avec le nom
                                      du fichier et le nombre de cercles qu’il contient):
                                      Photo0 26
                                      * Données à prendre en compte:
                                      • Toutes les images ont les mêmes dimensions.
                                      • Tous les cercles sont égaux (même taille)
                                      • Il n'y a pas de chevauchement entre les cercles.
                                      • Les données de la liste précédente sont les résultats réels de la
                                      fichiers donnés
                                      • Partager sur Facebook
                                      • Partager sur Twitter
                                        25 octobre 2019 à 10:08:03

                                        bonjour je suis nouveau dans la grande famille et j'aimerai qu'on m'oriente sur le fonctionnement du cours et les exercices. Merci
                                        • Partager sur Facebook
                                        • Partager sur Twitter
                                          25 octobre 2019 à 11:03:20

                                          salut à tous,

                                          ce message est pour Driss-AitBourigue:

                                          tu as trouvé dans quels cours cet exercice? Il m'a l'air intéressant mais visiblement il utilise des notions complexes.

                                          Merci d'avance

                                          • Partager sur Facebook
                                          • Partager sur Twitter
                                            25 octobre 2019 à 11:36:41 - Message modéré pour le motif suivant : Merci de créer votre propre sujet


                                              25 octobre 2019 à 18:26:21

                                              bergiLeZÉR0 a écrit:

                                              RaphaelDubois2 a écrit:

                                              Bonjour à tous, j'ai vraiment besoin d'aide pour un programme, voici les consignes: "déterminer le nombre premier qui suit un nombre n donné (n étant un entier naturel)" . Merci d'avance pour votre aide.


                                              Ou-est ce que tu bloques ? Est-ce que tu as du code ?

                                              -
                                              Edité par bergiLeZÉR0 hier à 18:19



                                              • Partager sur Facebook
                                              • Partager sur Twitter
                                                27 octobre 2019 à 9:51:33

                                                Bonjour à tous, je dois réaliser un programme pour un projet scolaire et je suis totalement perdu. Voici les consignes: déterminer le nombre premier qui suit un nombre n donné (n étant un entier naturel). J'ai vraiment besoin d'aide !! 

                                                J'ai déjà réussi a faire un programme permettant d'identifier un nombre premier:    

                                                a=int(input("donne un nombre et vérifions si il est premier" ))

                                                b=0

                                                import math

                                                for i in range(2,int(math.sqrt(a))):#nombre inférieur à la racine carré de a

                                                  if a%i==0:

                                                    b=1

                                                if b==0:

                                                  print("ce nombre est premier")

                                                else:

                                                  print("il ne l'est pas") 

                                                • Partager sur Facebook
                                                • Partager sur Twitter
                                                  27 octobre 2019 à 10:06:12

                                                  Il te suffit d'une condition pour n'afficher le résultat qu'à partir d'un seuil.

                                                  • Partager sur Facebook
                                                  • Partager sur Twitter
                                                    27 octobre 2019 à 15:41:10

                                                    Entwanne, merci pour l'information mais pourrais tu me donner un exemple s'il te plaît car je ne vois pas ce que tu veux dire par "seuil"
                                                    • Partager sur Facebook
                                                    • Partager sur Twitter
                                                      27 octobre 2019 à 19:32:17

                                                      Donner un exemple consisterait à poster la solution de l'exercice, donc non.

                                                      • Partager sur Facebook
                                                      • Partager sur Twitter
                                                        27 octobre 2019 à 22:56:08

                                                        Bonjour a tous ,j'ai un projet dans python et j'ai besoin d'un aidedonc le projet consiste de trouver une solution d'un labyrinthe par ces algorithme de recherche en largeur,profondeur et A* la classe est deja definis dans ce lien

                                                        • Partager sur Facebook
                                                        • Partager sur Twitter
                                                          28 octobre 2019 à 17:57:15

                                                          def combi():
                                                          a = int(input("a : "))
                                                          b = int(input("b : "))
                                                          if b>=a & a>=0:
                                                          p=1
                                                          for i in range(1,a+1):
                                                          p=p*i
                                                          f=1
                                                          for i in range(1, b+1):
                                                          f = f*i
                                                          t = 1
                                                          for i in range(1, b-a+1):
                                                          t = t*i
                                                          c=f//(p*t)
                                                          print("combinaison de",a,"dans",b,"est",c )
                                                          else:
                                                          print("erreur")

                                                          if __name__=='__main__' :
                                                          combi()
                                                          voici un programme que j'ai écris pour permettre à calculer la combinaison de la variable"a" dans la variable "b" mais j'ai
                                                          un problème lorsque je veux tester. svp corrigé moi ce programme. Merci




                                                          • Partager sur Facebook
                                                          • Partager sur Twitter
                                                            28 octobre 2019 à 18:50:07

                                                            L'indentation semble incorrecte.

                                                            -
                                                            Edité par entwanne 28 octobre 2019 à 18:50:20

                                                            • Partager sur Facebook
                                                            • Partager sur Twitter
                                                              6 novembre 2019 à 15:10:36

                                                              bonjours moi et ma classe n'arrivons pas a comprendre ce qu'il faut faire et surout COMMENT le faire 

                                                              Ecrire un programme perimetre qui prend un argument une liste de points sous la forme d'un tableau du type [xA,yA,xB,yB,xC,yC,....] et qui calcule le périmètre du polygone ABC..

                                                              donc si qqn peut nous venir en aide et nous sauvez d'un desastre general on vous sera reconnaissant

                                                              ps desoler pour les fautes d'ortho

                                                              -
                                                              Edité par JuliaLaktineh 6 novembre 2019 à 15:12:35

                                                              • Partager sur Facebook
                                                              • Partager sur Twitter

                                                              Exercices du cours Python / postez ici !

                                                              × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
                                                              • Editeur
                                                              • Markdown