Chaîne de caractère python

Bonjour,

Je débute sur python et j'ai des exercices à faire et il ne m'en reste plus qu'un et je n'arrive pas malgré beaucoup de tentatives, la question est de réaliser un programme où on intercale entre chaque caractère de phrase les lettres de cle. Ex: entrée:phrase bonjour le monde ! et clé:spensi-->sortie :Bsopnejnosuirs pleen smiosnpdeen s!i
Voilà si vous pouvez m'aider svp

5 réponses

Résumé de la discussion

Intercaler les caractères d'une phrase avec ceux d'une clé en Python constitue la problématique centrale, l'exemple donné associant phrase bonjour le monde ! et clé spensi générant une chaîne mélangée. Plusieurs réponses explorent des méthodes d'accumulation avec une variable résultat et l'alternance mot et clé, parfois via des boucles imbriquées sur i et j, ou par une construction conditionnelle simple. Des conseils préconisent de décrire le comportement avant d'écrire le code, d'utiliser des imprimés étape par étape pour observer les valeurs des variables, et de comparer approche while versus for. En cas d'avancement, certains proposent d'introduire une troisième variable résultant, copier des caractères alternés puis tester visuellement chaque étape afin de sécuriser l'alignement entre chaîne d'entrée et clé.

Bobot (l’IA à votre service)
  1. Modérateur
    Bonjour,

    Avant d'écrire le code, il faut décrire en phrases ce que tu vas faire (ou dessiner un organigramme). La manifestement on doit avoir 2 boucles, la principale sur la chaine en entrée, la secondaire sur la clé

    1
    1. Modérateur
      resultat=resultat+mot[0}+cle[0] ==> ""+"b"+"s" ==> "bs"

      resultat=resultat+mot[1]+cle[1] ==> "bs"+"o"+"p" ==> "bsop"

      1
      1. Doit elle est utilisée comme 3eme variable? Et si oui je pense avoir compris
        0
      2. Modérateur
        @Millo_0747oui resultat est la troisième variable

        et bien sur il faut faire attention à l'indice de cle, plus court que celui de mot
        0
      3. Mais il faut la mettre dans une boucle while ou dans une ch[début. Fin] je bloque sur ça ?
        0
      4. Modérateur
        @Millo_0747comme il y a déjà une boucle while, je ferais une boucle avec un autre compteur géré à la main. mais il doit y avoir plein de façons de procéder
        0
      5. Voilà ce que jessaye de faire mais je n'arrive pas à faire la boucle manuellement
        0
    2. Bonjour,

      Qu'as-tu fait pour le moment ?
      De façon à ce que l'on te montre ce qui ne va pas dans ton code.
      0
      1. Modérateur
        suite : https://forums.commentcamarche.net/forum/affich-36288744-chaine-de-caractere

        moi j'utiliserais une 3ème variable, résultat, dans laquelle je copierais un caractère de la chaine de départ, un caractère de la clé, un caractère de la chaine de départ, un caractère de la clé, un ...

        puis quand tu écris du code puisque apparemment tu ne "visualises" pas le résultat de chaque ligne, tu devrais à chaque ligne mettre des print pour voir le contenu de chaque variable, à chaque pas du programme

        question : cela fait quoi
        +'*
        ' ?

        0
        1. +'*' signifie qu'il va être séparer par des Asterix à chaque lettre comme m*o*t
          0
        2. Modérateur
          @Millo_0747ce n'est pas ce qui est demandé dans l'exercice

          avec ton code tu aurais du donner le résultat ! je viens de l'essayer : spensib*o*n*j*o*u*r* *l*e* *m*o*n*d*e* *! rien à voir avec le resultat attendu

          je te propose de relire tout ce que j'ai écrit
          0
        3. D'accord merci je vais essayer même si je ne suis pas sur d'avoir vraiment compris je te montre ce que j'ai fait dans qq minutes.
          0
        4. Je comprend ce que tu m'as dis mais je ne sais pas comment le formuler et expliquer pourrais tu m'expliquer autrement ou avec un exemple ? Stp
          0