J'ai un problème avec mon programme python

mattcazor -  
Phil_1857 Messages postés 1883 Date d'inscription   Statut Membre Dernière intervention   -

Bonjour, je suis en terminale et j'ai un devoir maison sur python mais je ne comprend pas ou est mon erreur dans mon programme. Est-ce que queulqu'un pourrait m'expliquer merci d'avance.

Le but est que la fonction return True si le mot est un palindrome et False si se n'en est pas un. Cependant je dois supprimer les caractères spéciaux avant de tester s'il sagit d'un palindrome et justement c'est la que je bloque.

voila mon programme:

def palindrome(x):

      n="".join(char for char in x if x.isalnum())

      print(n)

      for i in range(len(n)//2):

            if n[i] != n[-i]:

             return False

      return True


Macintosh / Safari 15.5

9 réponses

  1. Phil_1857 Messages postés 1883 Date d'inscription   Statut Membre Dernière intervention   169
     

    A mon avis, tu as fait une erreur en recopiant

    L'instruction avec isalnum fonctionne bien à condition d'appliquer isalnum à la bonne variable et pas à x

    qui contient la chaine entière

    En cherchant la même chose que toi dans Google, on voit l'instruction correcte :-)

    Recopier un code, c'est bien, mais comprendre ce qui s'y passe c'est mieux, à moins que tu fasses ça comme

    un exercice parmi tant d'autres et que la programmation ne t'intéresse pas plus que ça...

    En tout cas le but du site est de donner des pistes, pas la solution toute faite

    Il faut que tu analyse un peu le truc

    1
    1. Mattcazor
       

      Je veux bien essayer de comprendre mais si on ne m’explique pas mon erreur c’est compliqué.

      0
    2. Mattcazor
       

      Jai finalement réussi en transformant la ligne 

      j’ai mis:

      n=“”.join(e for e in x if e.isalnum())

      0
      1. Phil_1857 Messages postés 1883 Date d'inscription   Statut Membre Dernière intervention   169 > Mattcazor
         

        Bonjour,

        Tu aurais même pu laisser 

        n="".join(char for char in x if char.isalnum())

        mais en mettant char à la place de x

        Mais as-tu compris ce qui se passe dans cette instruction, au moins ?

        0
  2. rinolu
     

    Salut,

    Dans cette ligne il y a une erreur faisant que ça ne fonctionne pas :

    n="".join(char for char in x if x.isalnum())

    Analyse bien à quoi doit être appliqué le isalnum()

    0
    1. Mattcazor
       

      Merci mais je ne sais pas utiliser isalnum, je ne connais pas bien son fonctionnement c’est pour ça que je demande de l’aide.

      0
  3. Phil_1857 Messages postés 1883 Date d'inscription   Statut Membre Dernière intervention   169
     

    Bonjour Mattcazor,

    Alors, tu as trouvé ?

    0
  4. Mattcazor
     

    Non je ne comprend pas mon erreur je sais qu’elle se trouve à cette endroit là mais je n’ai jamais travaille ça en cour donc je ne connais pas son fonctionnement.

    0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. Phil_1857 Messages postés 1883 Date d'inscription   Statut Membre Dernière intervention   169
     

    Ah ok, tu as écrit cette instruction mais tu ne sais pas ce que ça veut dire ?

    Si tu ne comprends pas isalnum(), tu peux toujours aller voir sur le Net 

    En fait truc.isalnum() vérifie si truc contient ou pas des caractères alphanumériques

    On t'a donné cet exo alors que ça n'a pas été vu en cours ?

    0
  7. Mattcazor
     

    Justement c’est Google qui m’a dit d’écrire ça mais s’il te plaît piurrai tu m’expliquer toi car je vais pas te mentir que j’ai déjà du retard sur le dm et je ne sais pas si il va m’accepter.

    0
  8. Phil_1857 Messages postés 1883 Date d'inscription   Statut Membre Dernière intervention   169
     

    Il t'a dit d'écrire ça:

    n="".join(char for char in x if x.isalnum())

    ????

    Pas possible puisqu'il y a une erreur là-dedans

    0
  9. Mattcazor
     

    Oui je le jure c’est comme ça qu’on m’a donné la ligne de code.

    0
  10. Phil_1857 Messages postés 1883 Date d'inscription   Statut Membre Dernière intervention   169
     

    il est où ton site ?

    0
    1. Mattcazor
       

      Je ne me souviens plus j’avais simplement taper “comment retirer les caractères spéciaux Python”

      0