Partage
  • Partager sur Facebook
  • Partager sur Twitter

Liste d'instances

Sujet résolu
    2 octobre 2012 à 0:19:35

    Ecrire des méthodes de la fonction getPointsWithPositiveX()
    elle est définie par la spécification :
    def getPointsWithPositiveX(pointList): Rend une liste ne comportant que les points de pointList pour
    lesquels x est supérieur ou égal a 0
    pointList -- liste d'instances de la classe Point

    Bonjour pour la question ci-dessus j'ai eu des problème j'essai d'écrire la fonction getPointsWithPositiveX() aidez moi :o :


    voici mon code:

    class Point :
        """
            Akn etudiant en RT
        """
     
        def __init__(self,x,y):
            #try:
            self.x=x
            self.y=y
            
                 
            #except AssertionError:
            assert(isinstance(x,int)) and (isinstance(y,int))
                    # print("n'est p)as un entier")
              # else:
                  # print("ok")
                
        
        def __str__(self):
            return self.x + " " + self.y
        def __eq__(self,other):
            return (self.x,self.y)==(self.other,self.other)
        def __repr__(self):
            return "Point(%r,%r)"%(self.x,self.y)
        
    
    def getPointsWithPositiveX(pointList):
        pointList=[]
        p=Point(x,y)
        
        for p in pointList:
            if pointListe[p.x]>=0:
               pointList=[p]
               return pointList
    
    • Partager sur Facebook
    • Partager sur Twitter
      2 octobre 2012 à 0:30:39

      dir([])
      


      d'façon ça peut pas marcher à cause du pointList=[]
      • Partager sur Facebook
      • Partager sur Twitter

      Python c'est bon, mangez-en. 

        2 octobre 2012 à 0:35:12

        Mon problème c'est la fonction getPointsWithPositiveX() c'est lui qui me jette
        • Partager sur Facebook
        • Partager sur Twitter
          2 octobre 2012 à 0:38:44

          y a problème aux lignes 28, 32, 33, 34 et accessoirement la 29 ... soit quasiment toute la fonction.
          écris ce que tu veux faire en français et ensuite on traduira en python.
          • Partager sur Facebook
          • Partager sur Twitter

          Python c'est bon, mangez-en. 

            2 octobre 2012 à 0:43:02

            je veux faire une fonction qui prend une liste d'instances de la classe Point (si l'attribut x est positive) et qui retourne une liste
            • Partager sur Facebook
            • Partager sur Twitter
              2 octobre 2012 à 0:49:35

              Citation : Akn_djila

              je veux faire une fonction qui prend une liste d'instances de la classe Point (si l'attribut x est positive) et qui retourne une liste



              j'avais compris ...
              je traduis ta fonction:

              def getPointsWithPositiveX(pointList): # la fonction reçoit une variable pointList
                  pointList=[] # la variable pointList est une liste vide
                  p=Point(x,y) # la variable p est un point de coordonnées x,y sorties d'on ne sait où
                  
                  for p in pointList: # p prend tour à tour une valeur dans pointList qui rappelons-le est une liste vide
                      if pointListe[p.x]>=0: # si la valeur à l'indice p.x est positive
                         pointList=[p] # alors pointList est une liste contenant une unique valeur p
                         return pointList # et on retourne cette liste
              
              • Partager sur Facebook
              • Partager sur Twitter

              Python c'est bon, mangez-en. 

                2 octobre 2012 à 0:53:36

                ça m'affiche ça:
                AssertionError: First sequence is not a list: None
                • Partager sur Facebook
                • Partager sur Twitter
                  2 octobre 2012 à 1:00:18

                  ok ...
                  l'autre solution c'est de tricher, ou ton chien à mangé ta copie.

                  bonne chance dans tes études ...

                  je passe la main :-°
                  • Partager sur Facebook
                  • Partager sur Twitter

                  Python c'est bon, mangez-en. 

                  Anonyme
                    2 octobre 2012 à 6:17:11

                    Bonjour,

                    Ta fonction getPointsWithPositiveX(pointList) comporte beaucoup d'erreur de logique. Par exemple:

                    - tu passes l'argument pointList, qui devrait avoir du contenu, et tu l'initialises tout de suite à '[]': la boucle "for" ne tournera même pas une fois.

                    - p=Point(x,y) est inutile puisque p devrait recevoir une nouvelle valeur à chaque boucle for

                    - pointListe[p.x] est une erreur parce que p.x n'est pas un indice correct de la liste. La valeur à prendre est seulement p.x

                    - avec pointList=[p], ta liste est maintenant composée d'une seule valeur. De plus, tu ne peux pas modifier une liste dont tu te sers pour faire la boucle!

                    - avec "return pointList" tu renvoies la liste à la fin de la 1ère boucle for: c'est une mauvaise indentation, et il faut attendre que la boucle for soit terminée. De plus, comme ici la boucle for ne tournera pas, la fonction renverra None.

                    - enfin, quand tu analyses les éléments de la liste pointList, tu as besoin d'une 2e liste (par exemple pointList2 initialisée à []) pour accumuler tous les points "p" ayant un p.x>=0 (avec pointList2.append(p)) et c'est cette liste que la fonction retournera (avec return pointList2).

                    Bref, c'est pas terrible...

                    Essaie en tenant compte de ces remarques!

                    Tu as manifestement besoin d'avoir une bonne documentation sous la main!
                    • Partager sur Facebook
                    • Partager sur Twitter
                      2 octobre 2012 à 12:36:43

                      Ok je me lance merci pour les remarques
                      • Partager sur Facebook
                      • Partager sur Twitter
                        3 octobre 2012 à 23:25:44

                        merci beaucoup c'est résolu je n'avais pas accès à internet pour vous le dire :D
                        • Partager sur Facebook
                        • Partager sur Twitter

                        Liste d'instances

                        × 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