Intégrer caractère entre les caractères d'une chaîne - PYTHON
Répondre à la discussion
Affichage des résultats 1 à 13 sur 13

Intégrer caractère entre les caractères d'une chaîne - PYTHON



  1. #1
    Chalael

    Intégrer caractère entre les caractères d'une chaîne - PYTHON


    ------

    Bonjour,
    Je viens poster un message ici car j'aimerai trouver de l'aide. En effet, je suis en pleine révision de programmation scientifique, sur Python.
    Je cherche à intégrer entre les caractères d'une liste le signe "*". Problème qui semble assez classique puisque j'ai trouvé plusieurs autres forums qui répondaient à cette question, mais je n'ai pas du tout compris quelle était la logique derrière, la solution étant directement mise. Ce que je cherche à faire c'est transformer par exemple : "azerty" en "a*z*e*r*t*y".

    Je souhaiterai travailler avec la boucle while, simplement parce que c'est celle que je comprend le mieux.
    Voilà ce que j'ai fait, en sachant que c'est la version actuelle, j'ai tenté avec le for ... in, mais je ne comprend pas du tout la logique :

    def afficheavecEtoile(ch):
    i=0
    ch=[ch]
    while i<len(ch):
    ch=ch[i]+"*"
    i=i+1
    print ch
    return ch

    Et quand je le fais fonctionner avec l'exemple que j'ai donné plus haut je trouve le résultat suivant
    z*
    'z*'
    (Les deux)
    Je pense que le problème peut venir du fait que, les retraits, alinéas et alignements ne sont pas bons, il manque quelque chose qui fait poursuivre la boucle, mais pourtant ma valeur de i évolue bien de 1 en 1, et la boucle while le prend bien en compte. Le problème doit certainement venir du print ch, ou bien quelque chose qui manque, ou bien encore qui est mal fait dans la boucle while, mauvaise condition ou autre.

    Bref, j'ai vraiment du mal à comprendre la logique ici, j'ai réussi à comprendre ce que j'avais fait mais je ne parviens pas à surmonter/identifier l'erreur ou plutôt les erreurs que j'ai du faire ici.



    Merci de m'avoir lu !
    Chalael

    -----

  2. #2
    satinas

    Re : Intégrer caractère entre les caractères d'une chaîne - PYTHON

    Bonsoir, utilise la balise code pour indenter ton code, car du Python sans indentation, c'est plus du Python.

  3. #3
    Chalael

    Re : Intégrer caractère entre les caractères d'une chaîne - PYTHON

    En effet, excuse moi de l'erreur, je pensais que cela sauvegardait les indentations que j'avais mis à la main, enfin au clavier, mais ma faute.

    Donc voilà le code avec la bonne mise en page :

    Code:
    def afficheavecEtoile(ch):
        i=0
        ch=[ch]
        while i<len(ch):
            ch=ch[i]+"*"
            i=i+1
        print ch
        return ch

  4. #4
    satinas

    Re : Intégrer caractère entre les caractères d'une chaîne - PYTHON

    Je comprend pas ce que ce fait l'instruction ch = [ch]
    Pour ma part, je créerais plutôt une nouvelle chaîne en début de fonction, chaîne que l'on remplit petit à petit avec la boucle qui lit ch. Cette nouvelle chaîne est retournée en fin de fonction.

  5. A voir en vidéo sur Futura
  6. #5
    Chalael

    Re : Intégrer caractère entre les caractères d'une chaîne - PYTHON

    Pour moi, l'instruction ch=[ch] c'est pour transformer ce que l'on va entrer, comme je n'ai pas de commande pour demander d'entrer du texte, et le transformer en chaine.
    Tu veux dire directement faire def afficheavecEtoile([ch]) ? Je ne sais même pas si c'est juste ce que j'ai écrit.
    Parce que si ce n'est pas comme je l'ai fait, et comme je viens de l'écrire, je ne vois pas comment je pourrai faire en fait.

  7. #6
    satinas

    Re : Intégrer caractère entre les caractères d'une chaîne - PYTHON

    Ta fonction est censée recevoir une chaîne en argument. Donc tu peut l'exécuter par
    soit afficheavecEtoile("azerty")
    soit s = "azerty" puis afficheavecEtoile(s)

    Fait un print(ch) en début de fonction pour voir l'argument reçu qui est bien une chaîne.
    Ensuite tu crées une deuxième chaîne qui sera retournée par la fonction comme indiqué plus haut, la chaine en entrée restant inchangée.

    Aie je viens de voir que tu traites une liste, pas une chaîne, bon il est tard ...
    Dernière modification par satinas ; 21/06/2016 à 23h26.

  8. #7
    Chalael

    Re : Intégrer caractère entre les caractères d'une chaîne - PYTHON

    D'accord, je vais essayer d'assimiler ce que tu viens de me dire, ce n'est pas évident je n'ai pas tout compris, mais ça ça vient de moi. Je vais essayer de mettre en place ce que tu m'as conseillé de faire.

    Merci beaucoup d'avoir pris le temps de répondre !

  9. #8
    satinas

    Re : Intégrer caractère entre les caractères d'une chaîne - PYTHON

    Faut être précis, tu parles de liste dans ton premier message.
    Ta fonction recoit en argument une chaîne ou une liste ?????
    Dernière modification par satinas ; 21/06/2016 à 23h30.

  10. #9
    Chalael

    Re : Intégrer caractère entre les caractères d'une chaîne - PYTHON

    Et bien je crois que ma fonction reçoit une chaine, je dois entrer directement un mot, et pas une suite de mot ou de chiffre séparer par des virgules

  11. #10
    Chalael

    Re : Intégrer caractère entre les caractères d'une chaîne - PYTHON

    Non non c'est bien une chaine de caractère et pas une liste comme je l'ai écrit, ma faute !!

  12. #11
    Chalael

    Re : Intégrer caractère entre les caractères d'une chaîne - PYTHON

    Mais une des choses que je ne comprend pas c'est que moi ce que je voudrai faire c'est :
    Code:
    def afficheavecEtoile(ma chaine de caractère):
    Est ce qu'il faut que je mette, si c'est correcte afficheavecEtoile([ch]) ou afficheavecEtoile[ch] ou afficheavecEtoile(ch) et définir après ce ch comme chaine de caractère ?

  13. #12
    satinas

    Re : Intégrer caractère entre les caractères d'une chaîne - PYTHON

    Les crochets servent à définir une liste, je vois pas le rapport avec une chaîne.

    Code:
    s1 = "azerty" 
    print(s1)
    s2 = afficheavecEtoile(s1)
    print(s2)
    
    def afficheavecEtoile(ch) :
      ch_out = ""
      blablabla
      return ch_out
    Dernière modification par satinas ; 21/06/2016 à 23h50.

  14. #13
    satinas

    Re : Intégrer caractère entre les caractères d'une chaîne - PYTHON

    Et si tu veux absolument passer par une liste, tu utilises les methodes de conversion chaîne<->liste
    lst = list(ch)
    ch = ''.join(lst)
    C'est marqué sur Internet, ça doit être vrai ...

Discussions similaires

  1. chaîne de caractères
    Par invite11df21b5 dans le forum Programmation et langages, Algorithmique
    Réponses: 6
    Dernier message: 30/01/2013, 19h36
  2. [C] Concaténer chaine de caractère + caractère
    Par Lechero dans le forum Programmation et langages, Algorithmique
    Réponses: 17
    Dernier message: 26/01/2013, 11h43
  3. Python, remplacement d'une chaine de caractère
    Par berguem40 dans le forum Programmation et langages, Algorithmique
    Réponses: 1
    Dernier message: 12/09/2011, 16h24
  4. Chaine de caractères en C
    Par invite953f8104 dans le forum Électronique
    Réponses: 8
    Dernier message: 03/03/2009, 20h28
  5. PIC : Chaine de caractères
    Par Toufinet dans le forum Électronique
    Réponses: 2
    Dernier message: 24/05/2006, 17h49