Récupérer les valeurs de cette classe

Résolu
maxime_boris Messages postés 39 Statut Membre -  
yg_be Messages postés 23437 Date d'inscription   Statut Contributeur Dernière intervention   -
Bonjour, j'ai essayé de filtrer mes valeur self.cote avec la comprehension de liste [x pour x dans une liste si condition],mais ce message TypeError: '<' not supported between instances of 'list' and 'int' s'affiche a chaque fois. Quand j'essaie d'implementer une fontion avec une structure conditionnelle imbriquée ce message s'affiche aussi en plus je n'arrive toujours pas à recuperer les valeur self.cote pour les mettre dans une liste.

Pourriez vous me montrer la marche à suivre pour ce genre de situation s'il vous plait

class Pmu:
def __init__(self,nom:str, cote: int):
self.nom = nom
self.cote = cote

def info_cheval(self):
if self.nom =="":
print(f"Veuillez indiquer le nom du cheval, sinon la cote et de {self.cote} ")
return

if self.cote != 0:
if self.filter():
return False
return True

def filter(self):
if 0< self.cote < 10.5:
print(f"Base: {self.cote}")

elif 10.5< self.cote< 24.9:
print(f"bon outsiders: {self.cote}")

elif 25< self.cote< 34.9:
print(f"Gros outsiders: {self.cote}")

elif 35< self.cote< 300:
print(f"Tocard: {self.cote}")

##################################### programme #########################"######"
chevaux= {}
continuer ="o"

while continuer == "o":

nom = input("Saississez le nom du cheval: ")
cote =float(input("Cote: "))

chevaux[nom]= Pmu(nom,cote)
chevaux[nom].nom= nom
chevaux[nom].cote = cote

continuer = input("Voulez vous rajouter un autre cheval ? o/n ")
print("")

print("")
print("Voici la liste des partants: ")

for cheval in chevaux.values():
print("{0} : {1}".format(cheval.nom,cheval.cote))
print(cheval.info_cheval())
print(cheval.cote)

4 réponses

  1. maxime_boris Messages postés 39 Statut Membre
     
    Bonjour, j'ai essayé de filtrer mes valeur self.cote avec la comprehension de liste [x pour x dans une liste si condition],mais ce message TypeError: '<' not supported between instances of 'list' and 'int' s'affiche a chaque fois. Quand j'essaie d'implementer une fontion avec une structure conditionnelle imbriquée ce message s'affiche aussi en plus je n'arrive toujours pas à recuperer les valeur self.cote pour les mettre dans une liste.

    class Pmu:
        def __init__(self,nom:str, cote: int):
            self.nom = nom
            self.cote = cote


      def info_cheval(self):
            if self.nom =="":
                print(f"Veuillez indiquer le nom du cheval, sinon la cote et de {self.cote} ")
                return
    


     if self.cote != 0:
                if self.filter():
                    return False
                return True
                


       def filter(self):
            if 0< self.cote < 10.5:
                print(f"Base: {self.cote}")
            
        <code python>    elif 10.5< self.cote< 24.9:
                print(f"bon outsiders: {self.cote}")


        elif 25< self.cote< 34.9:
                print(f"Gros outsiders: {self.cote}")


    ##################################### programme #########################"######"
    chevaux= {}
    continuer ="o"
    
    while continuer == "o":
    
        nom = input("Saississez le nom du cheval: ")
        cote =float(input("Cote: "))
        
    


       chevaux[nom]= Pmu(nom,cote)
        chevaux[nom].nom= nom
        chevaux[nom].cote = cote
        
        continuer = input("Voulez vous rajouter un autre cheval ? o/n  ")
        print("")
    
    
    print("")
    print("Voici la liste des partants: ")
    
    for cheval in chevaux.values():
        print("{0} : {1}".format(cheval.nom,cheval.cote))
        print(cheval.info_cheval())
    0
    1. Utilisateur anonyme
       
      Bonjour
      L’idée avec les balises de codes, c’est de rendre la lecture facile à ceux qui voudraient essayer de t’aider.
      Or découper des if ou des while dans 2 blocs de coloration différents ça ne rend pas la lecture plus simple.
      Peux reposter tout ton code dans un seul bloc de coloration s’il te plait?
      0
    2. yg_be Messages postés 23437 Date d'inscription   Statut Contributeur Dernière intervention   1 588
       
      Tu ne montres ni le code que tu as essayé, celui qui donne l'erreur "TypeError", ni un exemple du résultat que tu attends.
      0
  2. maxime_boris Messages postés 39 Statut Membre
     
    class Pmu:
        def __init__(self,nom:str, cote: int):
            self.nom = nom
            self.cote = cote
          
            
            
    
       
        def info_cheval(self):
            if self.nom =="":
                print(f"Veuillez indiquer le nom du cheval, sinon la cote et de {self.cote} ")
                return
    
           
           
            if self.cote != 0:
                if self.filter():
                    return False
                return True
                
        
    
        def filter(self):
            if 0< self.cote < 10.5:
                print(f"Base: {self.cote}")
            
            elif 10.5< self.cote< 24.9:
                print(f"bon outsiders: {self.cote}")
                
            elif 25< self.cote< 34.9:
                print(f"Gros outsiders: {self.cote}")
               
            elif 35< self.cote< 300:
                print(f"Tocard: {self.cote}")
        
       
    
    
    
       
               
    
    ##################################### programme #########################"######"
    chevaux= {}
    continuer ="o"
    
    while continuer == "o":
    
        nom = input("Saississez le nom du cheval: ")
        cote =float(input("Cote: "))
        
    
    
        chevaux[nom]= Pmu(nom,cote)
        chevaux[nom].nom= nom
        chevaux[nom].cote = cote
        
        continuer = input("Voulez vous rajouter un autre cheval ? o/n  ")
        print("")
    
    
    print("")
    print("Voici la liste des partants: ")
    
    for cheval in chevaux.values():
        print("{0} : {1}".format(cheval.nom,cheval.cote))
        print(cheval.info_cheval())
    0
    1. yg_be Messages postés 23437 Date d'inscription   Statut Contributeur Dernière intervention   1 588
       
      Quand tu crées un exemple de code pour décrire un soucis, il est préférable d'éviter d'utiliser "input". Sinon, explique ce qu'il faut répondre pour obtenir le message d'erreur.
      0
  3. maxime_boris Messages postés 39 Statut Membre
     
    merçi pour vos conseil mais ce que je veux en priorité c'est de recuperer les valeurs du self.cote. Grace au print(cheval.info_cheval()) je peux afficher les valeur sur le terminal mais je cherche avant tout c'est de recuperer les valeurs pour les mettre dans une liste
    0
    1. yg_be Messages postés 23437 Date d'inscription   Statut Contributeur Dernière intervention   1 588
       
      peut-être:
      cotes=[]
      for cheval in chevaux.values():
              cotes.append(cheval.cote)
      print(cotes)
      0
      1. maxime_boris Messages postés 39 Statut Membre > yg_be Messages postés 23437 Date d'inscription   Statut Contributeur Dernière intervention  
         
        je te remercie beaucoup l'ironie du comble est que le resultat etait juste devant mes yeux.
        0
      2. yg_be Messages postés 23437 Date d'inscription   Statut Contributeur Dernière intervention   1 588 > maxime_boris Messages postés 39 Statut Membre
         
        peux-tu alors marquer la discussion comme résolue?
        0