Recuperer les valeurs dun print()

Résolu/Fermé
maxime_boris Messages postés 35 Date d'inscription dimanche 23 janvier 2022 Statut Membre Dernière intervention 17 novembre 2022 - 24 janv. 2022 à 20:21
maxime_boris Messages postés 35 Date d'inscription dimanche 23 janvier 2022 Statut Membre Dernière intervention 17 novembre 2022 - 24 janv. 2022 à 21:02
Bonjour, je voudrais recupere les valeurs du print(cotes) pour les filtrés et les insérer dans 4 variables differentes

exemples:
A1 = Valeur des element 0<valeur<10.5
A2 = Valeur des element 10.6<valeur<20.8
A3 = Valeur des element 20.9<valeur<34.8
A4 = Valeur des element 34.9<valeur<300

j'ai essayé d'utiliser une condition imbrique avec plusieurs liste vide pour recuperer la valeur de chaques élement avec la methode append() . j'ai réussi a recuperer qu'un seul element de ma condition imbriqué sur une liste alors que moi je veux filtrer et inserer plusieur valeur de chaque element dans une une de ses quatres variable.


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")
        
        elif 10.5< self.cote< 20.8:
            print(f"bon outsiders")
            
        elif 20.9< self.cote< 34.8:
            print(f"Gros outsiders")
           
        elif 34.9< self.cote< 300:
            print(f"Tocard")

   
    
   
##################################### 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())
    
cotes=[]
for cheval in chevaux.values():
        cotes.append(cheval.cote)
print(cotes)


filtre = []
for ele in cotes:
    if 0<ele<7.8:
        bps = []
        print("bps")
        bps.append(ele)
    elif 7.9<ele<10.5:
        bgs = []
        print("bgs")
        bgs.append(ele)
    elif 10.6<ele<14.8:
        bops = []
        print("bops")
        bops.append(ele)
    elif 14.9<ele<19.8:
        bogs = []
        print("bogs")
        bogs.append(ele)
    elif 19.9<ele<24.8:
        gops = []
        print("gops")
        gops.append(ele)
    elif 24.9<ele<34.8:
        gogs = []
        print("gogs")
        gogs.append(ele)
    
    try:
        float(ele)
    except ValueError:
        filtre.append(ele)


A voir également:

2 réponses

urilou777 Messages postés 319 Date d'inscription samedi 22 janvier 2022 Statut Membre Dernière intervention 12 janvier 2023 43
Modifié le 24 janv. 2022 à 20:32
tu ne peux pas déclarer tes listes dans la boucle for, voici la bonne approche
bps = []
bgs = []
etc

for ele in cotes:


sinon à chaque exécution de la boucle for donc quand tu passes de la 1ere a la 2e cote par exemple, tu écrases ta liste, c'est comme si tu la vidais volontairement. et du coup à chaque fois tu ne verras que le "dernier" élément de ta liste en premier ;

je sais pas si tu comprends. Honnêtement, j'ai pas compris tout à ton code mais c'est ça qui te bloque je pense.
0
maxime_boris Messages postés 35 Date d'inscription dimanche 23 janvier 2022 Statut Membre Dernière intervention 17 novembre 2022
24 janv. 2022 à 21:02
Maintenant ça fonctionne ,je te remerçie pour ton aide
0