Codage Python "Erreur d'effet de bords" :

Fermé
TSR - Modifié le 6 déc. 2021 à 12:44
mamiemando Messages postés 33407 Date d'inscription jeudi 12 mai 2005 Statut Modérateur Dernière intervention 29 novembre 2024 - 6 déc. 2021 à 12:42
Bonjour,

Je viens ici, car après de nombreuses recherches, je ne comprends pas pourquoi mon programme à des problème d'effet de bords. Je vous joins les capture d'écran du programe et de l'erreur.

Merci d'avance et bonne journée à vous tous.

Images :
A voir également:

4 réponses

yg_be Messages postés 23359 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 29 novembre 2024 Ambassadeur 1 556
5 déc. 2021 à 13:27
bonjour,
peux-tu partager du texte, et pas des images?
tiens compte de ceci quand tu partages du code: https://codes-sources.commentcamarche.net/faq/11288-les-balises-de-code
0
TSR4810 Messages postés 1 Date d'inscription dimanche 5 décembre 2021 Statut Membre Dernière intervention 5 décembre 2021
5 déc. 2021 à 13:31
j'ai crée un nouveau topic avec ce compte pour poster les img
0
yg_be Messages postés 23359 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 29 novembre 2024 1 556 > TSR4810 Messages postés 1 Date d'inscription dimanche 5 décembre 2021 Statut Membre Dernière intervention 5 décembre 2021
5 déc. 2021 à 13:57
Inutile de créer une nouvelle discussion. As-tu lu ceci?
0
bazfile Messages postés 56494 Date d'inscription samedi 29 décembre 2012 Statut Modérateur, Contributeur sécurité Dernière intervention 29 novembre 2024 19 303
5 déc. 2021 à 14:37
Bonjour.
Inutile de faire des triplons continue uniquement sur ce post
0
yg_be Messages postés 23359 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 29 novembre 2024 Ambassadeur 1 556
5 déc. 2021 à 15:33
en dehors de la plateforme d'exercice, teste ceci:
ld=[4, 7, 12, 4, 4, 0, 4, 5]
print("ld avant:",ld)
print(supprime(ld, 4))
print("ld après:",ld)

qu'observes-tu?
0
mamiemando Messages postés 33407 Date d'inscription jeudi 12 mai 2005 Statut Modérateur Dernière intervention 29 novembre 2024 7 805
Modifié le 6 déc. 2021 à 12:48
Bonjour,

Merci comme dit précédemment de copier coller le code intégral dans un message en utilisant les balises de codes (4e bouton au dessus de la boîte dans laquelle tu tapes ton message), ce sera plus simple pour tout le monde.

Pour la plupart des fonctions, tu te compliques inutilement la tâche. Aucune ne modifie (ou devrait modifier) la liste de départ. Il suffit d'itérer dessus, de construire le résultat, et de le retourner une fois qu'il a été intégralement trouvé. Il existe beaucoup de fonctions natives en python qui réalisent plus ou moins directement ce que tu veux.

Étant donné un itérable (e.g., une liste) :
  • len
    retourne le nombre d'éléments;
  • min
    retourne la valeur minimum ;
  • max
    retourne la valeur maximum ;
  • sum
    retourne la somme ;
  • enumerate
    permet d'envelopper un itérable (e.g, une liste) de sorte à récupérer l'index de l'élément courant.


Quelques exemples

def min_pair(l):
    return min(x for x in l if x % 2 == 0)

def indice_de(x, l):
    for (i, y) in enumerate(l):
        if x == y:
            return i
    return None


Remarques

Dans le cas de
min_pair
, attention car si ta liste ne comprend aucune valeur paire, python lèvera une exception. Si tu souhaites rattraper cette exception
ValueError
pour retourner la valeur
None
dans ce genre de situation, utilise un bloc
try ... except ...
.

def min_pair(l):
    try:
        return min(x for x in l if x % 2 == 0)
    except ValueError:
        return None
0