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 :

String index out of range


Sujet :

Python

  1. #1
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2019
    Messages
    29
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 23
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Octobre 2019
    Messages : 29
    Par défaut String index out of range
    Bonjour,

    Je souhaite réaliser un programme palindrome avec les éléments vus en cours.
    Cependant quand j'effectue mon programme, un message string index out of range s'affiche. Après quelques recherche j'ai compris que le problème vient du fait que j'ai un entier et une chaine de caractères. Je n'y arrive pas à y remédier, j'ai également tenté une boucle for mais sans succès.


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    def est_palindrome(ch):
        x=0
        i=len(ch)
        while i>=0:
                x=x+ch[i]
                i=i-1
                if x!=ch:
                   return False
                return True
    Merci d'avance

  2. #2
    Expert éminent
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 683
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Architecte technique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2008
    Messages : 21 683
    Par défaut
    Salut,

    Citation Envoyé par EverybodyEthan Voir le message
    Après quelques recherche j'ai compris que le problème vient du fait que j'ai un entier et une chaine de caractères.
    Pas du tout.
    Partez d'un tableau de longueur N.
    Quel est l'index du dernier élément si on commence à 0?

    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

  3. #3
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2019
    Messages
    29
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 23
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Octobre 2019
    Messages : 29
    Par défaut
    Citation Envoyé par wiztricks Voir le message
    Salut,



    Pas du tout.
    Partez d'un tableau de longueur N.
    Quel est l'index du dernier élément si on commence à 0?

    - W
    Excusez moi mais je n'ai que un mois et demi de python. Par conséquent je ne comprends pas votre question ( index ? )

  4. #4
    Expert éminent
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 683
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Architecte technique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2008
    Messages : 21 683
    Par défaut
    Citation Envoyé par EverybodyEthan Voir le message
    Excusez moi mais je n'ai que un mois et demi de python. Par conséquent je ne comprends pas votre question ( index ? )
    Si vous écrivez ch[i], ch est le tableau et i est l'index/indice du i-ème élément de ce tableau.

    Quand vous commencer à faire de la grammaire, vous apprenez à identifier sujet-verbe-complément, adjectif,... C'est un vocabulaire technique qui va permettre de parler de.
    Avec un langage de programmation, c'est pareil: il y a le code qu'on écrit et le vocabulaire technique qui va permettre de le décrire (pour pouvoir échanger dans un forum de discussion ou avec vos collègues si vous développez en équipe).
    Si je prends ce que raconte un tuto. çà dit:

    Pour accéder à un caractère bien déterminé, on utilise le nom de la variable qui contient la chaîne et on lui accole, entre deux crochets, l'index numérique qui correspond à la position du caractère dans la chaîne.
    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

  5. #5
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2019
    Messages
    29
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 23
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Octobre 2019
    Messages : 29
    Par défaut
    Donc si je comprends bien, je n'ai pas de fin pas de limite c'est cela ?

    Je ne vois pas comment lui attribuer une finalité

  6. #6
    Expert éminent
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 683
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Architecte technique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2008
    Messages : 21 683
    Par défaut
    Citation Envoyé par EverybodyEthan Voir le message
    Donc si je comprends bien, je n'ai pas de fin pas de limite c'est cela ?

    Je ne vois pas comment lui attribuer une finalité
    Quel est le rapport avec IndexError du départ?
    Je lance l'interpréteur Python et je crée une chaîne de caractères:
    c'est quoi le caractère à l'index 0:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    >>> i = 0
    >>> s[i]
    't'
    que se passe-t-il si je vais chercher le 10ième caractère:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    >>> i = 10
    >>> s[i]
    Traceback (most recent call last):
      File "<stdin>", line 1, in <module>
    IndexError: string index out of range
    Quel est l'index du dernier caractère?

    Cela corrigé, sûr que vous allez avoir d'autres erreurs.

    Comme vous n'avez pas pris le temps de réfléchir à comment détecter un palindrome sur une feuille de papier pour imaginer un algorithme qui tienne la route...
    Erreurs de syntaxe et calculs d'index résolus, Python pourra alors exécuter votre code mais il ne retournera pas le résultat attendu.

    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

  7. #7
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2019
    Messages
    29
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 23
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Octobre 2019
    Messages : 29
    Par défaut
    J'ai compris !

    Je vais voir ce que je peux faire pour résoudre cela !

    Merci bien

    PS : J'ai pris le temps de réfléchir mais je n'ai que 1 mois et demi de pratique. Le professeur nous fait 6 mois de cours au lieu de deux ans, alors imaginez vous... enfin tout du moins je l'espère que vous comprendrez mon faible niveau.

  8. #8
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2019
    Messages
    29
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 23
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Octobre 2019
    Messages : 29
    Par défaut
    Donc j'ai trouvé comme seule solution d'ajouter une boucle for ( j'avais déjà essayé )

    Sauf que après j'obtiens une erreur de la ligne Je la comprends tout à fait, et est normal sachant que je veux additionner un entier et une chaine de caractères.

    Mais si je mets et que je relance le programme, j'obtiens "invalid literal for int() with base 10: 'r'". Je dirais logique vu qu r n'a pas de valeur ( si j'ai bien compris )

    Cependant, j'ai pas de solution pour résoudre cela.

  9. #9
    Expert éminent
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 683
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Architecte technique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2008
    Messages : 21 683
    Par défaut
    Citation Envoyé par EverybodyEthan Voir le message
    Cependant, j'ai pas de solution pour résoudre cela.
    La solution s'appelle ord(ch[i]) mais elle ne vous mènera nulle part.

    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

  10. #10
    Membre Expert

    Homme Profil pro
    Ingénieur calcul scientifique
    Inscrit en
    Mars 2013
    Messages
    1 229
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ingénieur calcul scientifique

    Informations forums :
    Inscription : Mars 2013
    Messages : 1 229
    Par défaut
    Vous pouvez avoir un niveau en python très bas, avec seulement 1 mois et demi de pratique, je le concois.
    Mais même à ce niveau, vous devriiez savoir parcourir une liste, via ses indices car c'est une chose qui est abordé dès les premiers chapitres de n'importe quel tuto.

Discussions similaires

  1. Réponses: 4
    Dernier message: 14/01/2010, 18h44
  2. substring exception String index out of range: -1)
    Par tagada30 dans le forum Servlets/JSP
    Réponses: 5
    Dernier message: 30/09/2008, 21h39
  3. IndexError: string index out of range
    Par nina08 dans le forum Général Python
    Réponses: 2
    Dernier message: 04/08/2008, 09h27
  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