IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Python Discussion :

le plus grand nombre d'une liste


Sujet :

Python

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Formateur en informatique
    Inscrit en
    Février 2016
    Messages
    188
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Loir et Cher (Centre)

    Informations professionnelles :
    Activité : Formateur en informatique

    Informations forums :
    Inscription : Février 2016
    Messages : 188
    Par défaut le plus grand nombre d'une liste
    voici le code
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    t2=[2,4,6,8]            
    max=0               
    for i in range (0,len(t2)):
        if t2[i+1]>t2[i]:
            max=t2[i+1]
    print (max)
    et l'erreur
    Traceback (most recent call last):
    File "C:\Users\jmc\liste.py", line 17, in <module>
    if t2[i+1]>t2[i]:
    IndexError: list index out of range
    >>>


    merci

  2. #2
    Membre expérimenté
    Profil pro
    Loisir
    Inscrit en
    Novembre 2011
    Messages
    159
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Loisir

    Informations forums :
    Inscription : Novembre 2011
    Messages : 159
    Par défaut
    Bonjour,

    les indices en python commencent à 0 donc i dans votre boucle prendre les valeurs 0, 1, 2 puis 3.
    L'algorithme ici n'est pas bon :
    1) considérer que la première valeur de votre liste est le maximum de cette liste
    2) pour tous les éléments de la liste à partir du deuxième, tester si cet élément est strictement supérieur ou non. Si oui, max prend la valeur de cet élément

    Le message d'erreur est assez parlant, il vous signale qu'à un moment, la ligne if t2[i+1]>t2[i]: aboutit à chercher la valeur d'un élément dont l'indice est au-delà du plus grand indice de votre liste.

    PS: posez votre question plus explicitement

  3. #3
    Membre expérimenté Avatar de zancrows
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2016
    Messages
    159
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Côtes d'Armor (Bretagne)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2016
    Messages : 159
    Par défaut
    Sinon l'utilisation de la méthode sort() des listes peut aider ex:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    >>> l = [1,4,8,6,7]
    >>> l.sort()
    >>> max = l[-1]
    >>> max
    8
    après si c'est pour un exercice d'algo suivre la méthode de Supernul

  4. #4
    Membre prolifique
    Avatar de Sve@r
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2006
    Messages
    12 835
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 12 835
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par jmc41320 Voir le message
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    t2=[2,4,6,8]            
    max=0               
    for i in range (0,len(t2)):
        if t2[i+1]>t2[i]:
            max=t2[i+1]
    print (max)
    Bonjour

    En dehors de l'erreur d'indice (que tu aurais compris si tu avais réfléchi 15 secondes c'est à dire 5 fois le temps que tu as réellement consacré à ce problème), ton algorithme est foireux.

    Il part du principe que les éléments sont croissants dans le tableau. Ainsi, avec t2=[0, 2, 4, 1, 3, 2] alors il sortira max=3 et avec t2=[5, 4, 3, 2, 1] alors il sortira max=0.


    Citation Envoyé par zancrows Voir le message
    Sinon l'utilisation de la méthode sort() des listes peut aider
    Si on a le droit d'utiliser des outils déjà tout faits, la fonction max() ne pourrait-elle pas aider encore mieux ???
    Mon Tutoriel sur la programmation «Python»
    Mon Tutoriel sur la programmation «Shell»
    Sinon il y en a pleins d'autres. N'oubliez pas non plus les différentes faq disponibles sur ce site
    Et on poste ses codes entre balises [code] et [/code]

  5. #5
    Membre expérimenté Avatar de zancrows
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2016
    Messages
    159
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Côtes d'Armor (Bretagne)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2016
    Messages : 159
    Par défaut
    Citation Envoyé par Sve@r Voir le message
    Bonjour
    Si on a le droit d'utiliser des outils déjà tout faits, la fonction max() ne pourrait-elle pas aider encore mieux ???
    effectivement j'y ai pensé après coup

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [IP-2010] Récupérer le plus grand Id d'une liste
    Par cyberbobby dans le forum InfoPath
    Réponses: 4
    Dernier message: 28/11/2011, 09h49
  2. [WD14] recuperer le plus grand nombre dans une table
    Par devalender dans le forum WinDev
    Réponses: 6
    Dernier message: 03/11/2010, 20h16
  3. [XL-2007] Remplir un textbox par le plus grand nombre d'une colonne
    Par dodo28 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 10/11/2009, 16h42
  4. VBA Colorer la plus grande valeur d'une liste
    Par Toad08 dans le forum Macros et VBA Excel
    Réponses: 8
    Dernier message: 10/03/2008, 17h23
  5. isoler les 2 plus grandes valeurs d'une liste
    Par marlene.ln dans le forum Access
    Réponses: 3
    Dernier message: 29/01/2007, 10h22

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo