Algorithme qui inverse les lettres des mots

Fermé
ledebutantenpython Messages postés 48 Date d'inscription mercredi 16 octobre 2019 Statut Membre Dernière intervention 22 octobre 2019 - 21 oct. 2019 à 17:30
ledebutantenpython Messages postés 48 Date d'inscription mercredi 16 octobre 2019 Statut Membre Dernière intervention 22 octobre 2019 - 22 oct. 2019 à 22:21
Bonjour,
J'ai un DM de NSI (numérique et sciences informatiques), dans un exercice on me demande d'inverser les lettres des mots, par exemple :
"Salut ca va" devient "tulaS ac av"
J'ai un début d'algorithme :
def fonction_inverve(chaine):
     ch = ""
      for lettre in chaine :
          ch = lettre + ch
      return ch


Lorsque je rentre "Salut ca va" cela inverses les lettres de toutes la phrase en donnant "av ac tulaS" au lieu d'inverser les lettres de chaque mot.
Auriez- vous des idées pour remédier à ce problème.
Merci à ceux qui me répondront !
A voir également:

3 réponses

Tomsuper Messages postés 1926 Date d'inscription mardi 24 mai 2011 Statut Membre Dernière intervention 19 août 2020 356
21 oct. 2019 à 17:50
Bonjour,

à default de te donner du code, je te propose plus une piste de réfléxion.

Pour inverser les lettre d'un mot, ton algo doit déjà detecté les mots. On vas dire que pour l'instant on vas ignorer quelle agencement de lettre forme un mot ou pas, pour l'instant on vas dire qu'un mot est identifier par un signe de ponctuation, un espace ou une tabulation.

Donc, on peut imaginer une fonction qui, Des qu'elle recontre un espace ou une ponctuation, elle te retour tout les caractère d'avant. jusqu'a la dernier ponctuation.

exemple:
Bonjour,Comment tu vas ?

Fonction 1 :

vas retourner Bonjour à fonction 2 qui vas retourner le mot

puis Comment, puis tu puis vas

Des questions ?
0
ledebutantenpython Messages postés 48 Date d'inscription mercredi 16 octobre 2019 Statut Membre Dernière intervention 22 octobre 2019
21 oct. 2019 à 18:00
D'accord merci je vais retravailler mon code ( je l'enverrai ultérieurement), j'ai aussi pensé à utiliser split() mais je ne sais pas comment l'intriguer a mon code...
0
ledebutantenpython Messages postés 48 Date d'inscription mercredi 16 octobre 2019 Statut Membre Dernière intervention 22 octobre 2019
21 oct. 2019 à 18:27
Voici mon code :
def fonction_inverve(chaine):
     ch = ""
     ch2 = ","
      if ch in chaine :
             for lettre in range(len(chaine)):
                  ch2 = lettre + ch2
      return ch2

Le problème est qu'il me marque: 《unsupported operand type(s) for +: "int" and "str"》et je ne sais pas comment faire pour qu'il évite de me marquer ça...
0