Partage
  • Partager sur Facebook
  • Partager sur Twitter

[Python]Séparer une chaîne

Selon un caractère

Sujet résolu
    18 janvier 2007 à 15:26:34

    Salut,

    Voilà, je pense que la fonction que je cherche existe puisque je l'ai utilisé en algorithmie. Elle sert à séparer une chaîne suivant un caractère donné. S'utilise plus ou moins comme ça:
    chaine = "salut-comment ca va?-bien, et toi?-Oui oui, et toi, la famille, ça va?-..."
    caractère = "-"
    Séparer(chaine, caractère, x)
    i = 1
    Tant que x[i] existe
         print x[i]
         i += 1

    Merci ^^
    • Partager sur Facebook
    • Partager sur Twitter
      18 janvier 2007 à 17:24:10

      Salut,

      Tu as la méthode split :
      chaine = "salut-comment ca va?-bien, et toi?-Oui oui, et toi, la famille, ça va?-...";
      caractere = "-";
      for x in chaine.split(caractere):
          print x;
      • Partager sur Facebook
      • Partager sur Twitter
        22 janvier 2007 à 9:41:39

        Ok, et si je veux faire un truc qui fait plutôt comme ça?

        chaine = "False-22/01/06-Erreur Super Fatale"
        caractere = "-"
        x = chaine.split(caractere)
        Fonction(x(1), x(0), x(2))

        print x #Affiche Erreur, c'est un tableau ou une liste...
        print x(0) #Affiche False
        print x(1) #Affiche 22/01/06
        print x(2) #Affiche Erreur Super Fatale


        Edit: Trouvé au taton, Merci ^^

        chaine = nomSonde()
        print chaine
        x = chaine.split("-")
        print x[1]
        print x[0]
        print x[2]


        Une autre histoire de chaîne.
        def Controle(self, nomSonde):
                chaine = nomSonde()
                x = chaine.split("-")
                retour = str(nomSonde) + x[0] + "22/01/07" + x[1] + x[2]
                return retour
        Controle(CTRL_DD)

        Le problème vient de str(nomSonde) qui donne "<function CTRL_DD at 0x00AA7CF0>", je saisis pas le problème...
        • Partager sur Facebook
        • Partager sur Twitter
          22 janvier 2007 à 13:34:28

          Salut,

          D'après ce que je comprends le paramètre nomSonde est une fonction, et la fonction str t'en retourne une description textuelle ; c'est le fonctionnement attendu de str.

          Qu'est-ce que tu voulais faire afficher ?
          • Partager sur Facebook
          • Partager sur Twitter
            22 janvier 2007 à 15:56:55

            Non, le paramètre nomSonde c'est du texte...
            Pour élargir le contexte, ça se présente comme ça:

            class Sonde:
                    def Lancer(nomSonde, arg1, arg2, arg3):
                            ...
                            Traitement
                            ...
                            Controle(nomSonde)

                    def Controle(self, nomSonde):
                            chaine = nomSonde()
                            x = chaine.split("-")
                            retour = str(nomSonde) + x[0] + "22/01/07" + x[1] + x[2]
                            return retour
            uneSonde = Sonde()
            uneSonde.Lancer('CTRL_DD', args...)
            • Partager sur Facebook
            • Partager sur Twitter
              22 janvier 2007 à 17:00:42

              Tu me dis que nomSonde est une chaîne de caractères. Moi je veux bien, mais Python, lui, te dit que c'est une fonction...

              A priori, je dirais que le problème vient de la définition de la méthode Lancer : il y manque le paramètre self censé représenter l'instance sur laquelle la méthode est appelée.
              • Partager sur Facebook
              • Partager sur Twitter
              Anonyme
                22 janvier 2007 à 17:51:24

                Citation : Pogou


                def Controle(self, nomSonde):
                        chaine = nomSonde()
                        x = chaine.split("-")
                        retour = str(nomSonde) + x[0] + "22/01/07" + x[1] + x[2]
                        return retour
                Controle(CTRL_DD)


                Tu écris
                chaine = nomSonde()

                nomSonde est donc une fonction. Je pense que ça n'est pas ce que tu voulais marquer, mais peut-être plus retour = chaine + etc.
                • Partager sur Facebook
                • Partager sur Twitter
                  23 janvier 2007 à 15:02:59

                  Ok, bon finalement je l'ai simplement mis en retour de nomSonde()... Pourquoi faire simple quand on peut faire compliqué. :p

                  Merci pour vos explications et à très bientôt de nouvelles (més)aventures! ^^
                  • Partager sur Facebook
                  • Partager sur Twitter

                  [Python]Séparer une chaîne

                  × 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