Filtrage de numero

Résolu/Fermé
maxime_boris Messages postés 35 Date d'inscription dimanche 23 janvier 2022 Statut Membre Dernière intervention 17 novembre 2022 - 20 juin 2022 à 19:47
maxime_boris Messages postés 35 Date d'inscription dimanche 23 janvier 2022 Statut Membre Dernière intervention 17 novembre 2022 - 24 juin 2022 à 13:44
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

Bonsoir.

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

a = ifilter(num, lambda x: x < 10.5)
Phil_1857 Messages postés 1872 Date d'inscription lundi 23 mars 2020 Statut Membre Dernière intervention 28 février 2024 168
Modifié le 21 juin 2022 à 17:23
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
maxime_boris Messages postés 35 Date d'inscription dimanche 23 janvier 2022 Statut Membre Dernière intervention 17 novembre 2022
24 juin 2022 à 03:55
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.
Phil_1857 Messages postés 1872 Date d'inscription lundi 23 mars 2020 Statut Membre Dernière intervention 28 février 2024 168
24 juin 2022 à 10:54
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
Phil_1857 Messages postés 1872 Date d'inscription lundi 23 mars 2020 Statut Membre Dernière intervention 28 février 2024 168
24 juin 2022 à 13:25
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 dimanche 23 janvier 2022 Statut Membre Dernière intervention 17 novembre 2022
24 juin 2022 à 13:44
Je te remerçie maintenant mon code fonctionne.