Partage
  • Partager sur Facebook
  • Partager sur Twitter

Exercice chaîne de caractère

    14 novembre 2014 à 20:53:52

    Bonjour à vous !

    Proposer une fonction permettant d'extraire d'un texte les mots écrits avec une lettre majuscule.

    Fonction permettant de repérer un caractère majuscule avec ce code (à l'aide des normes):

    def Maj(ch):
        for i in ch:
            if ord(i)>64 and ord(i)<91 :    
                print(i,"est une majuscule")

    J'ai essayer de coder le programme mais sans succès. J'aimerais que vous m'aidiez pour me mettre sur la bonne voie.

    Ma stratégie serait de parcourir la chaîne, voir s'il y a une majuscule et retirer tous les caractères jusqu'à un espace.

    Je vous remercie pour votre aide !

    -
    Edité par doluju 25 mai 2015 à 11:24:28

    • Partager sur Facebook
    • Partager sur Twitter
      14 novembre 2014 à 21:10:23

      Salut,

      Le truc qui peut t'aider, c'est la méthode split(), méthode des chaînes de caractères. Cette méthode prend comme argument un séparateur et va découper la chaîne en fonction de celui-ci. En sortie, les éléments seront dans une liste:

      var = "C'est bon quand c'est chaud"
      
      a = var.split()
      b = var.split("n")
      c = var.split("e")
      • Partager sur Facebook
      • Partager sur Twitter
      Précepte: Le mieux est l'ennemi du bien
        14 novembre 2014 à 23:39:15

        Bonsoir Olygrim, j'aimerais ne pas utiliser de fonctions telles que: find, count, lower, upper et replace.

        J'ai réussi à coder un programme:

        def extraMaj(ch):
            res=[]
            r=''
            for i in ch:
                if (ord(i)==32) or (ord(i)>=33 and ord(i)<65) or (ord(i)>90 and ord(i)<97):
                    for x in r:
                        if ord(x)>64 and ord(x)<91:
                            res.append([r])
                    r=''
                else:
                    r=r+i
            return ch, res

        Mais il retourne parfois quelques erreurs. Tout va bien sauf lorsque le premier mot est composé d'un caractère en majuscule, ou de plusieurs caractère majuscules à la suite.

        Par exemple, pour 'A Plus', il retournera seulement 'A'. Et pour 'AA', il ne retournera rien.

        -
        Edité par doluju 25 mai 2015 à 11:25:00

        • Partager sur Facebook
        • Partager sur Twitter
          15 novembre 2014 à 22:32:33

          Tu essaies de faire trop de choses dans cette fonction. Olygrim t'a donné une excellente idée. Certes tu ne peux pas utiliser split, mais tu peux te créer ta propre fonction qui fait la même chose. Ca te donnera un outil très utile pour la suite. Tu te dis peut-être que de créer une fonction split c'est une perte de temps, mais tu verras qu'une fois que tu l'auras, la fonction principale sera assez triviale.

          Si tu as un mot, tu peux vérifier par quoi il commence en regardant la position 0 :

          word = "Test"
          print(word[0])   # Imprime T
          
          • Partager sur Facebook
          • Partager sur Twitter

          Exercice chaîne de caractère

          × 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