Pages : 1
#1 Le 07/09/2007, à 14:27
- Damiens
Debutant en python
je suis un syllabus et voici un des exercices que je dois faire :
5.8. Écrivez un script qui recopie une chaîne (dans une nouvelle variable), en insérant des
astérisques entre les caractères.
Ainsi par exemple, « gaston » devra devenir « g*a*s*t*o*n »
voici mon code :
ch = "gaston"
chFinal = ""
compteur = 0
indice = 0
while compteur < len(ch) :
chFinal[indice] = ch[compteur]
indice = indice + 1
if (indice != (2 * len(ch))) : #pour ne pas insérer d'astérisque après la dernière lettre
chFinal[indice] = "*"
indice = indice + 1
compteur = compteur + 1
print ch,chFinal
et voici l'erreur que j'obtiens :
Traceback (most recent call last):
File "Chap5_Ex8.py", line 7, in <module>
chFinal[indice] = ch[compteur]
TypeError: 'str' object does not support item assignment
Pourriez-vous m'aider svp ?
Hors ligne
#2 Le 07/09/2007, à 15:14
- neeux
Re : Debutant en python
Tu te compliques un peu la vie
ch = "gaston"
chFinal = ""
compteur = 0
while compteur < len(ch)-1:
chFinal = chFinal + ch[compteur] + "*"
compteur = compteur + 1
chFinal = chFinal + ch[len(ch)-1]
print chFinal
Bon courage
Hors ligne
#3 Le 07/09/2007, à 15:23
- Damiens
Re : Debutant en python
Merci, c'est tjs ce qu'on m'a dit ... C'etait une bonne idée de passer par la concaténation !
Hors ligne
#4 Le 07/09/2007, à 15:25
- HymnToLife
Re : Debutant en python
>>> s = 'gaston'
>>> print '*'.join(s)
g*a*s*t*o*n
- Rodrigue, as-tu du cœur ?
- Non, mais j'ai du pique !
Hors ligne
#5 Le 07/09/2007, à 15:32
- neeux
Re : Debutant en python
Qui dit mieux ?
print "g*a*s*t*o*n" ????
Je la connaissait pas celle là....
Dernière modification par neeux (Le 07/09/2007, à 15:34)
Hors ligne
#6 Le 10/09/2007, à 08:49
- orlan
Re : Debutant en python
et voici l'erreur que j'obtiens :
Traceback (most recent call last):
File "Chap5_Ex8.py", line 7, in <module>
chFinal[indice] = ch[compteur]
TypeError: 'str' object does not support item assignment
Ton message d'erreur vient du fait que tu assignes une nouvelle valeur à un caractère d'une chaîne, alors qu'une chaîne est assimilée à une séquence non modifiable : pas de caractères d'une chaîne ou de tranche de chaîne à gauche d'un opérateur d'assignation, contrairement à une liste.
Hors ligne
Pages : 1