2 votes

Comment additionner les nombres pairs ou impairs dans une liste en fonction de la condition paire ou impaire ?

Donc, le problème me demande de retourner la somme des éléments pairs ou impairs dans une liste en fonction de la condition paire ou impaire. Donc, si la condition est impaire, je dois retourner une liste de tous les nombres impairs. Si la liste est vide ou si les valeurs ne correspondent pas à la condition, alors je dois retourner 0.

Voici ce que j'ai jusqu'à présent:

l = [1,2,3,4,5,6]

def conditionalSum(valeur, condition):
    s = 0
    if condition == "pair":
        for i in l:
            if i % 2 == 0:
                s += i
    elif condition == "impair":
        for i in l:
            if i % 2 !=0:
                s = s+ i
    else:
        return 0

Lorsque j'essaie de lancer ce code, rien ne s'affiche - pas même une erreur! Toute aide est appréciée

4voto

Vishal Singh Points 263

Ton code peut être modifié pour être plus pythonique en utilisant une fonction sum intégrée.

l = [1, 2, 3, 4, 5, 6]

def conditionalSum(value, condition):
    if condition == "even":
        return sum(i for i in l if i % 2 == 0)

    elif condition == "odd":
        return sum(i for i in l if i % 2 == 1)

    else:
        return 0

print(conditionalSum(value, "even"))

Résultat:

12

au fait vous avez une variable inutilisée value dans votre fonction conditionalSum

2voto

Necklondon Points 373
  1. vous devez appeler la fonction: conditionalSum(l, "even") par exemple
  2. vous ne retournez aucune valeur pour les 2 conditions "even" et "odd". Code corrigé:

    l = [1,2,3,4,5,6]

    def conditionalSum(value, condition): s = 0 if condition == "even": for i in value: if i % 2 == 0: s += i elif condition == "odd": for i in value: if i % 2 !=0: s += i return s

    print(conditionalSum(l,"even")) print(conditionalSum(l,"odd"))

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X