Filtrage de numero

Résolu
maxime_boris Messages postés 35 Date d'inscription   Statut Membre Dernière intervention   -  
maxime_boris Messages postés 35 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour, Je dois recuperer et filtrer les numeros provenant de la variable num pour les placer dans des listes vides: base, bo, go, tocard.

le probléme que je rencontre est ce message d'erreur :


Voici mon programme :

class Jeu:
    base=[]
    bo=[],
    go=[],
    tocard=[]

    def ordre_cote():
        print(sorted(Jeu.base))
        print(sorted(Jeu.bo))
        print(sorted(Jeu.go))
        print(sorted(Jeu.tocard))
    

def ifilter(iterable,predicate):
    for x in iterable:
        if predicate(x): yield x

num =[x for x in input("cotes: ").split()]


a = ifilter(lambda x: x < 10.5, num)
for Base in a:
    if 0<Base<8.5:
        print('Bps')
    if 8.6<Base<10.5:
        print('Bgs')
base.append(Base)
print(base)

b = ifilter(lambda x: x < 20.5, num)
for Bo in b:
    if 10.6<Bo<15.5:
        print('Bops')
    if 15.6<Bo<20.5:
        print('Bogs')
Bo.append(bo)
print(Bo)

c = ifilter(lambda x: x < 34.5, num)
for Go in c:
    if 10.6<Go<15.5:
        print('gops')
    if 15.6<Go<20.5:
        print('gogs')
Go.append(go)
print(Go)






Configuration: Windows / Chrome 102.0.0.0

5 réponses

girouette_coquine
 
Bonsoir.

Ton erreur est une simple inversion des paramètres fournis à ton générateur.

a = ifilter(num, lambda x: x < 10.5)
0
Phil_1857 Messages postés 1872 Date d'inscription   Statut Membre Dernière intervention   168
 
Bonjour,

je pense qu'il y a d'autres trucs qui ne vont pas ...

bo=[]

Bo.append(bo) ----> bo.append(Bo) ????

Pas terrible ces variables qui se différencient seulement par la majuscule de la 1ere lettre
0
maxime_boris Messages postés 35 Date d'inscription   Statut Membre Dernière intervention  
 
Je vous remercie pour vos conseil mais malgré les changements que vous m'avait proposer dont j'ai d'ailleurs modifié, le message d'erreur sur mon terminal indique:



Comment stocker les numeros de la variable num dans des liste vides en utilisant la fonction ifilter. Si il ya d'autre solution je suis preneur.
0
Phil_1857 Messages postés 1872 Date d'inscription   Statut Membre Dernière intervention   168
 
Bonjour,

Avec ton input ligne 18, tu récupère une string, pas un float

Donc normal que la ligne 21 plante: tu essaie de comparer une string et un float

Tu ne crée pas d'instance de la classe Jeu, donc tu ne fais pas base = []

Donc ligne 27 base.append(Base) plante
0
Phil_1857 Messages postés 1872 Date d'inscription   Statut Membre Dernière intervention   168
 
Sinon, pour stocker les numéros dans les 3 listes, tu peux faire ça:

num =[float(x) for x in input("cotes: ").split()]

base = []
for nombre in num:
    if(nombre < 10.5): base.append(nombre)

bo = []
for nombre in num:
    if(nombre < 20.5): bo.append(nombre)

go = []
for nombre in num:
    if(nombre < 34.5): go.append(nombre)
    
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
maxime_boris Messages postés 35 Date d'inscription   Statut Membre Dernière intervention  
 
Je te remerçie maintenant mon code fonctionne.
0