Partage
  • Partager sur Facebook
  • Partager sur Twitter

Problème de liste

Sujet résolu
    11 août 2011 à 12:19:39

    Bonjour à tous, j'ai un problème, et je ne sais pas d'où il vient, alors si vous pouviez m'aider ce serait cool ;)

    Alors comme vous verrez, Je fais un tri sur mes listes, seulement, python a l'air de considérer que 8 est plus grand que 10...

    Mon fichier:
    #!/usr/bin/env python
    # -*- coding:utf-8 -*- 
    
    import os
    
    def getUser(line):
        Classement = open('Classement.CJ', 'r')
        ligne = Classement.readlines()[line].split("\n")[0]
        return ligne
        
    def findUser():
        Classement = open('Classement.CJ', 'r')
        lignes = Classement.readlines()
        nbLignes = len(lignes)
        i = 0
        liste = []
        while i < nbLignes:
            liste.append((getUser(i).split(" ")[0],getUser(i).split(" ")[1]))
            i = i+1
        i = 0
        max = 0
        while (i) < nbLignes: #Ce doit être d'ici que vient l'erreur
            print liste[i][1]
            if liste[i][1] >= max:
                max = liste[i][1]
            i = i+1
        print ("----->",max)
    
    findUser()
    
    os.system("pause")
    

    Ce qu'affiche la console
    8
    7
    5
    7
    8
    10
    2
    ('----->', '8')
    Appuyez sur une touche pour continuer...

    Mon fichier:
    Alain 8
    Gilles 7
    Nico 5
    Niels 7
    Mathieu 8
    Branders 10
    Pauline 2
    • Partager sur Facebook
    • Partager sur Twitter
      11 août 2011 à 12:53:51

      tu compares des strings, pas des entiers.
      forcement '8' est plus grand que '10' puisque '8' vient après '1'
      • Partager sur Facebook
      • Partager sur Twitter

      Python c'est bon, mangez-en. 

        11 août 2011 à 13:19:45

        Exemple :
        sorted(['8', '7', '5', '7', '8', '10', '2'])
        >>> ['10', '2', '5', '7', '7', '8', '8']
        


        Sinon, vbrandersv, j'ai vu ton code en diagonale, il me semble que tu fais tout plein d'acces inutiles sur ton fichier, tu ne le fermes pas, bref c'est un peu la pagaille. Tu dois structurer les actions que tu fais, et ton code par la meme occasion ;) .

        Par exemple, ton fichier gagnerait a etre stocké dans une liste, et etre traité ensuite comme tel.

        Tu devrais aussi essayer d'etre un peu plus "pythonique" : acces par iterateurs et non par index, utilisation des fonctions standards telles que max() ou sorted(), au lieu de refaire la roue. Ton code gagnerait en concision et en clarté, et ton programme en vitesse d'execution.
        • Partager sur Facebook
        • Partager sur Twitter
          11 août 2011 à 14:21:31

          Voilà, j'ai un nouveau problème, je vois pas d'où vient l'erreur. pourriez vous m'aider ?
          http://nsa27.casimages.com/img/2011/08 [...] 805603112.jpg
          • Partager sur Facebook
          • Partager sur Twitter
            11 août 2011 à 14:44:32

            utilises raw_input() à la place de input()
            • Partager sur Facebook
            • Partager sur Twitter

            Python c'est bon, mangez-en. 

            Problème de liste

            × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
            × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
            • Editeur
            • Markdown