Partage
  • Partager sur Facebook
  • Partager sur Twitter

Aide exercice python

    1 mars 2021 à 17:17:32

    Salut je suis débutant en python et je viens ici pour demander de l'aide sur 2 exercices sur lesquelles je bloque.

    • Partager sur Facebook
    • Partager sur Twitter
      1 mars 2021 à 17:33:23

      Là c'est purement des questions de connaissance d'un cours sur Python. En gros soit tu le connais et tu sais répondre, soit tu le connais pas et il faut l'apprendre.

      La réponse est là : https://docs.python.org/fr/3/tutorial/datastructures.html#sets

      Et là aussi : https://docs.python.org/fr/3/library/stdtypes.html#set

      -
      Edité par LoupSolitaire 1 mars 2021 à 17:34:23

      • Partager sur Facebook
      • Partager sur Twitter

      Blond, bouclé, toujours le sourire aux lèvres...

        1 mars 2021 à 18:20:20

        Bonjour, merci de modifier le titre de votre sujet pour un titre explicite de votre problématique.

        Mauvais titre

        Le titre est un élément important qui ne doit pas être négligé. N'oubliez pas cette règle simple : le titre idéal résume la question que vous allez poser en une petite phrase. Il doit permettre aux visiteurs de se repérer facilement dans le forum visité et d'identifier le sujet à sa seule lecture.

        Vous pouvez utiliser divers préfixes comme [Erreur], [MySQL], [Compatibilité], etc... Aussi, pensez à consulter les règles propres à chaque forum (visibles dans les topics épinglés en haut des sections).

        De plus, choisir un bon titre permet de rendre plus faciles les recherches des autres membres.

        Les titres de type "besoin d'aide" ou "problème" ne sont pas tolérés.

        Pour modifier votre titre, éditez le premier message de votre sujet.

        (titre originel : Aide exercice python)

        Liens conseillés

        -
        Edité par AbcAbc6 1 mars 2021 à 18:21:10

        • Partager sur Facebook
        • Partager sur Twitter
          1 mars 2021 à 23:31:03

          LoupSolitaire a écrit:

          Là c'est purement des questions de connaissance d'un cours sur Python. 


          Pas très bien compris le sens de cette réponse (évidemment que pour chaque question Python, c'est une question de connaissance du cours Python).

          Ici, on demande de réimplémenter des fonctionnalités Python déjà existantes (au passage, question qui reste totalement hermétique à la plupart des débutants). Donc, il faut surtout avoir compris l'algorithme de construction d'un ensemble et les opérateurs logiques associées (une union correspond à une disjonction et une intersection à la conjonction). Et il faut avoir compris (être sensibilisé surtout, rarement le cas des débutants) aux primitives de construction d'un ensemble (ensemble vide et opération d'adjonction).

          Pour la réunion, voilà ce que ça pourrait donner :

          def union(ens1, ens2):
              ens=set()
              for x in ens1:
                  ens.add(x)
              for x in ens2:
                  ens.add(x)
              return ens
          
          print(union({1, 4}, {2, 4, 7}))

          Pour l'intersection, c'est plus fourbe, car il faut utiliser un test d'appartenance, qui n'est pas vraiment une primitive (laquelle équivaut à une boucle de parcours de l'ensemble). Ou alors écrire deux boucles de parcours imbriquées. Il y a franchement des moyens plus intéressant de faire faire de l'algorithmique aux élèves. 

          -
          Edité par PascalOrtiz 1 mars 2021 à 23:31:46

          • Partager sur Facebook
          • Partager sur Twitter
            2 mars 2021 à 2:28:30

            En fait, une question, bien qu'elle appelle une réponse en python, ne teste pas nécessairement des connaissances de python, mais peut aussi cibler des compétences génériques.
            • Partager sur Facebook
            • Partager sur Twitter

            typage structurel ftw

              2 mars 2021 à 2:44:02

              PascalOrtiz a écrit:

              Pas très bien compris le sens de cette réponse (évidemment que pour chaque question Python, c'est une question de connaissance du cours Python).

              J'ai pensé que le prof voulait juste qu'ils utilisent les fonctions prédéfinies en Python pour l'union et l'intersection des sets.

              -
              Edité par LoupSolitaire 2 mars 2021 à 2:44:17

              • Partager sur Facebook
              • Partager sur Twitter

              Blond, bouclé, toujours le sourire aux lèvres...

                2 mars 2021 à 3:14:09

                Si on a déjà ttrouvé comment faire l'union, il n'est pas trop difficile de faire l'intersection.
                s1={1, 2, 4, 6}
                s2={1, 4, 5}
                s3={s for s in s1.union(s2) if s in s1 and s in s2}
                print(s3)
                • Partager sur Facebook
                • Partager sur Twitter

                Le Tout est souvent plus grand que la somme de ses parties.

                  2 mars 2021 à 15:33:08

                  PierrotLeFou a écrit:

                  Si on a déjà ttrouvé comment faire l'union, il n'est pas trop difficile de faire l'intersection.
                  s1={1, 2, 4, 6}
                  s2={1, 4, 5}
                  s3={s for s in s1.union(s2) if s in s1 and s in s2}
                  print(s3)


                  Il est inutile d'aller chercher les éléments dans la réunion, il suffit de les récupérer depuis un des deux ensembles, ce qui donne :

                  def intersection(ens1, ens2):
                      return {s for s in ens1 if s in ens2}
                  
                  print(intersection({1, 4}, {2, 4, 7}))
                  

                  Attention que l'opération s in ens2 n'est pas une primitive, elle cache une opération de lecture dans une table de hachage. 

                  EDIT. La notation s1|s2 me semble plus parlante que s1.union(s2) moins lisible et qui cache la symétrie de l'opération d'union et peut même faire penser à une méthode mutatrice.

                  -
                  Edité par PascalOrtiz 2 mars 2021 à 15:39:07

                  • Partager sur Facebook
                  • Partager sur Twitter
                    2 mars 2021 à 17:33:32

                    Effectivement, je fais une opération inutile avec l'union.
                    J'ai appris que s1|s2 est une façon d'exprimer l'union. Je vais me coucher moins stupide ce soir ...
                    • Partager sur Facebook
                    • Partager sur Twitter

                    Le Tout est souvent plus grand que la somme de ses parties.

                    Aide exercice python

                    × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
                    × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
                    • Editeur
                    • Markdown