Récupérer les valeurs de cette classe

Résolu/Fermé
maxime_boris Messages postés 35 Date d'inscription dimanche 23 janvier 2022 Statut Membre Dernière intervention 17 novembre 2022 - 23 janv. 2022 à 11:49
yg_be Messages postés 23357 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 28 novembre 2024 - 23 janv. 2022 à 19:53
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

yg_be Messages postés 23357 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 28 novembre 2024 Ambassadeur 1 555
23 janv. 2022 à 13:08
bonjour,
Peux-tu utiliser les balises de code quand tu partages du code? https://codes-sources.commentcamarche.net/faq/11288-les-balises-de-code

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
maxime_boris Messages postés 35 Date d'inscription dimanche 23 janvier 2022 Statut Membre Dernière intervention 17 novembre 2022
Modifié le 23 janv. 2022 à 13:50
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
Utilisateur anonyme
23 janv. 2022 à 13:56
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
yg_be Messages postés 23357 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 28 novembre 2024 1 555
23 janv. 2022 à 14:52
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
maxime_boris Messages postés 35 Date d'inscription dimanche 23 janvier 2022 Statut Membre Dernière intervention 17 novembre 2022
23 janv. 2022 à 14:24
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
yg_be Messages postés 23357 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 28 novembre 2024 1 555
23 janv. 2022 à 14:55
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
maxime_boris Messages postés 35 Date d'inscription dimanche 23 janvier 2022 Statut Membre Dernière intervention 17 novembre 2022
23 janv. 2022 à 16:19
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
yg_be Messages postés 23357 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 28 novembre 2024 1 555
23 janv. 2022 à 16:44
peut-être:
cotes=[]
for cheval in chevaux.values():
        cotes.append(cheval.cote)
print(cotes)
0
maxime_boris Messages postés 35 Date d'inscription dimanche 23 janvier 2022 Statut Membre Dernière intervention 17 novembre 2022 > yg_be Messages postés 23357 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 28 novembre 2024
23 janv. 2022 à 19:35
je te remercie beaucoup l'ironie du comble est que le resultat etait juste devant mes yeux.
0
yg_be Messages postés 23357 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 28 novembre 2024 1 555 > maxime_boris Messages postés 35 Date d'inscription dimanche 23 janvier 2022 Statut Membre Dernière intervention 17 novembre 2022
23 janv. 2022 à 19:53
peux-tu alors marquer la discussion comme résolue?
0