Partage
  • Partager sur Facebook
  • Partager sur Twitter

Probème code python

Fonction pour modifier str en list str

    17 janvier 2018 à 19:19:46

    Bonjour, mon objectif est de créer une fonction qui va modifier un string comme "Bonjour le monde" en ["Bonjour","le","monde"]
    def fct1(s):
        l=[]
        mot=""
        for e in s:
              if e=="":
    	    l.append(mot)
                mot=""
              else:
    	    mot+=e
                l.append(mot)
              return l
    print (fct1("Bonjour le monde"))

    J'ai donc écris cette fonction seulement cela me renvois uniquement ["B"] comme si la boucle s’arrête à B et ne continuait pas jusqu'à la fin du string.

    Auriez-vous une solution?

    Merci

    • Partager sur Facebook
    • Partager sur Twitter
      17 janvier 2018 à 19:48:04

      Salut,

      ligne 5 : 

      if e==""

      Cela ne vérifie pas si c'est un "espace", ce qui "entour" normalement les mots, modifies par ça :

      if e == " "

      Aussi, ligne 8-9-10 :

      else:
              mot+=e
                  l.append(mot)

      l.append(mot) ne sert à rien ici.

      • Partager sur Facebook
      • Partager sur Twitter

      Le meilleur moyen de prédire l'avenir, c'est de l'inventer | N'oubliez pas [résolu] et +1 | Excusez mon ôrtograffe, j'essaie de l'améliorer...

        17 janvier 2018 à 20:08:18

        def fct1(s):
            l=[]
            mot=""
            for e in s:
                  if e == " ":
        	    l.append(mot)
                    mot=""
                  else:
        	    mot+=e
                  return l
        print (fct1("Bonjour le monde"))

        D'accord merci maintenant j'ai ceci mais je n'obtiens en résultat que []

        ....

        -
        Edité par Grendel26 17 janvier 2018 à 20:19:44

        • Partager sur Facebook
        • Partager sur Twitter
          17 janvier 2018 à 20:20:52

          Ton indentation est totalement à revoir, c'est étonnant que ça ne te donne pas une erreur ...

          • Partager sur Facebook
          • Partager sur Twitter
            17 janvier 2018 à 20:24:57

            Ah oue, c'est juste le copier coller qui foire mais sinon ça en réalité:



            -
            Edité par Grendel26 17 janvier 2018 à 20:25:37

            • Partager sur Facebook
            • Partager sur Twitter
              17 janvier 2018 à 21:02:55

              Avec python il y a la fonction split.

              (Il y a aussi un forum python qui t'aiguillera aussi plus facilement)

              • Partager sur Facebook
              • Partager sur Twitter
                17 janvier 2018 à 21:04:52

                Stit84 a écrit:

                Avec python il y a la fonction split.

                (Il y a aussi un forum python qui t'aiguillera aussi plus facilement)

                Oui je connais cette fonction mais j’essaie de résoudre ce problème justement sans l'utiliser.
                Merci je vais voir.
                • Partager sur Facebook
                • Partager sur Twitter
                  18 janvier 2018 à 6:53:18

                  Sinon le gros souci dans ta boucle c'est que le return est dans ta boucle for donc le retour se fait dès le premier tour. Sors le de cette boucle et t'y verras plus clair
                  • Partager sur Facebook
                  • Partager sur Twitter
                    14 avril 2018 à 11:26:45

                    OK merci pour tous vos conseils
                    • Partager sur Facebook
                    • Partager sur Twitter
                      17 avril 2018 à 16:09:38

                      Et si tu comptes utiliser ça dans des programmes, il faut que tu saches que les fonctions d'origines codées dans python seront toujours infiniment plus rapide que n'importe quelle fonction que tu créeras toi-même.

                      Passe ton sujet en résolu si c'est le cas :)

                      • Partager sur Facebook
                      • Partager sur Twitter

                      Probème code python

                      × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
                      × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
                      • Editeur
                      • Markdown