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 :

IndexError: string index out of range


Sujet :

Python

  1. #1
    Membre du Club
    Inscrit en
    Mars 2008
    Messages
    130
    Détails du profil
    Informations forums :
    Inscription : Mars 2008
    Messages : 130
    Points : 47
    Points
    47
    Par défaut IndexError: string index out of range
    Bonjour,
    Svp, je suis bloqué sur un code qui fait le traitement sur les chaines de carecteres.
    Il me donne l'erreur suivante: IndexError: string index out of range

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
                  ch='http://www.developpez.com/'
                  i=7
    	      while(ch[i]!='/'):  
                     ch1.append(ch[i])
                     i=i+1   
     
                  string="".join(ch1)
                  if string not in dic.keys():
                         dic[string]=1
                  else:
                      cpt=dic[string]
                      cpt=cpt+1
                      dic[string]=cpt
    Je ne sais pas où est le problème.
    Merci.

  2. #2
    Membre expérimenté
    Homme Profil pro
    Inscrit en
    Mars 2007
    Messages
    941
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2007
    Messages : 941
    Points : 1 384
    Points
    1 384
    Par défaut
    En initialisant dic à {} et ch1 à [], ce code fonctionne pour moi, pourtant.

    Tes trois dernières lignes peuvent être remplacées par:
    dic[string] += 1

    Il y a moyen de faire plus sûr et plus efficace, si c'est pour parser des fichiers de log d'un serveur web... Par exemple:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    import re
    from collections import defaultdict
     
    dic = defaultdict(int)
    pat = re.compile('(https?|ftp)://([^/\s]*)')
     
    ch='http://www.developpez.com/'
    m = pat.match(ch)
    if m:
        dic[m.group(2)] += 1

  3. #3
    Membre du Club
    Inscrit en
    Mars 2008
    Messages
    130
    Détails du profil
    Informations forums :
    Inscription : Mars 2008
    Messages : 130
    Points : 47
    Points
    47
    Par défaut
    Merci bien pour votre aide.
    J'ai reglé le problème.
    Grand merci.

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

Discussions similaires

  1. Réponses: 4
    Dernier message: 14/01/2010, 18h44
  2. Tache cron IndexError: list index out of range
    Par rene2200 dans le forum Général Python
    Réponses: 3
    Dernier message: 20/11/2009, 14h02
  3. substring exception String index out of range: -1)
    Par tagada30 dans le forum Servlets/JSP
    Réponses: 5
    Dernier message: 30/09/2008, 21h39
  4. String index out of range
    Par *alexandre* dans le forum Langage
    Réponses: 3
    Dernier message: 08/01/2008, 04h19
  5. probleme de relogin: String index out of range: 0
    Par bbany dans le forum Wildfly/JBoss
    Réponses: 3
    Dernier message: 07/09/2007, 17h04

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