Inserez signe entre chaque caractère

Résolu/Fermé
Signaler
Messages postés
852
Date d'inscription
mercredi 25 novembre 2009
Statut
Membre
Dernière intervention
12 mai 2016
-
Messages postés
21331
Date d'inscription
jeudi 4 novembre 2004
Statut
Modérateur, Contributeur sécurité
Dernière intervention
30 octobre 2019
-
Bonjour,

Je n'arrive pas à faire un exercice en python, sachant que je débute ...

Je dois en fait écrire un programme qui recopie une chaine de caractere en insérant le signe "+" entre chaque caractere ...

Par exemple "info" deviendra "i+n+f+o"

J'ai fait ceci pour le moment :
mot=raw_input("Écrire une phrase : ")
i=0
while (i<len(mot)):
       lettre=mot[i]
       i=i+1
       print lettre,'+'


Mais le résultat est pas encore fameux !

Écrire une phrase : salut
s +
a +
l +
u +
t +


Les caractère vont a la ligne, il y a des espaces en trop, et il y a un + a la dernière lettre ...

Pouvez vous m'aidez ?

Merci d'avance

3 réponses

Messages postés
852
Date d'inscription
mercredi 25 novembre 2009
Statut
Membre
Dernière intervention
12 mai 2016
89
Solution

mot=raw_input("Écrire une phrase : ")
a=""

for lettre in mot: #Pour chaque lettre de la variable mot
       a=a+lettre+'+' #Affecter la variable a[(numero de la lettre)] + lettre suivis d'un +
print a[0:len(a)-1] #Afficher chaque lettre a compris entre 0 et len(a) sauf la dernière

0
Messages postés
3245
Date d'inscription
jeudi 23 août 2007
Statut
Membre
Dernière intervention
19 mai 2013
660
merci d'avoir pris la peine d'indiquer la solution que tu as trouvée.
bonne continuation.
0
Messages postés
852
Date d'inscription
mercredi 25 novembre 2009
Statut
Membre
Dernière intervention
12 mai 2016
89 >
Messages postés
3245
Date d'inscription
jeudi 23 août 2007
Statut
Membre
Dernière intervention
19 mai 2013

Pas de quoi, ça me fais plaisir quand j'arrive sur un forum pour un problème de voir que la personne donne sa solution :)

@+
0
Messages postés
21331
Date d'inscription
jeudi 4 novembre 2004
Statut
Modérateur, Contributeur sécurité
Dernière intervention
30 octobre 2019
3 566
Salut,

Je ne connais pas python mais je pense qu'une solution plus élégante sera d'utiliser les regex avec les tests avant/arrière, et il y a ça en python

Un exemple avec perl
~$ echo info|perl -pe 's/(?<=\w)(?=\w)/+/g'
i+n+f+o

ou même
~$ echo info|perl -pe 's/(?<=.)(?=.)/+/g'
i+n+f+o

0
Messages postés
21331
Date d'inscription
jeudi 4 novembre 2004
Statut
Modérateur, Contributeur sécurité
Dernière intervention
30 octobre 2019
3 566
Re,

Entre temps j'ai cherché aussi en python les tests avant/arrière ;-)
$ cat lettre.py 
#!/usr/bin/python
import re
chaine = 'salut'
resultat = re.sub('(?<=\w)(?=\w)',"+",chaine)
print resultat
$ ./lettre.py 
s+a+l+u+t
aussi
$ cat lettre.py 
#!/usr/bin/python
import re
chaine = 'salut'
resultat = re.sub('(?<=.)(?=.)',"+",chaine)
print resultat
$ ./lettre.py 
s+a+l+u+t

0