J'ai un problème avec mon programme python

Fermé
mattcazor - 18 sept. 2022 à 20:48
Phil_1857 Messages postés 1872 Date d'inscription lundi 23 mars 2020 Statut Membre Dernière intervention 28 février 2024 - 21 sept. 2022 à 10:51

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

A voir également:

9 réponses

Phil_1857 Messages postés 1872 Date d'inscription lundi 23 mars 2020 Statut Membre Dernière intervention 28 février 2024 168
Modifié le 20 sept. 2022 à 17:46

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

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

0

Jai finalement réussi en transformant la ligne 

j’ai mis:

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

0
Phil_1857 Messages postés 1872 Date d'inscription lundi 23 mars 2020 Statut Membre Dernière intervention 28 février 2024 168 > Mattcazor
Modifié le 21 sept. 2022 à 10:52

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

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

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
Phil_1857 Messages postés 1872 Date d'inscription lundi 23 mars 2020 Statut Membre Dernière intervention 28 février 2024 168
20 sept. 2022 à 13:23

Bonjour Mattcazor,

Alors, tu as trouvé ?

0

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

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

Posez votre question
Phil_1857 Messages postés 1872 Date d'inscription lundi 23 mars 2020 Statut Membre Dernière intervention 28 février 2024 168
Modifié le 20 sept. 2022 à 14:52

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

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
Phil_1857 Messages postés 1872 Date d'inscription lundi 23 mars 2020 Statut Membre Dernière intervention 28 février 2024 168
20 sept. 2022 à 14:55

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

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

0
Phil_1857 Messages postés 1872 Date d'inscription lundi 23 mars 2020 Statut Membre Dernière intervention 28 février 2024 168
20 sept. 2022 à 14:57

il est où ton site ?

0

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

0