Question problème python déplacement

anonyme -  
mamiemando Messages postés 33766 Date d'inscription   Statut Modérateur Dernière intervention   -
Bonjour,

Je suis débutant et je cherche à écrire un programme où lorsque je demande un mot
word
et que l'on me répond par exemple
"sept"
, je prends la première lettre de
"sept"
et j'ajoute
"ay"
ce qui fait
"eptsay"
.

Sauf que dans mon code ça m'affiche
"septsay"
. Le problème et que la lettre est dupliqué au lieu d'être déplacer comment je peux faire pour la déplacer.

suite = 'ay'

original = raw_input('Enter a word:')

if len(original) > 0 and original.isalpha():
  word = original.lower()
  letter  = word[0]
  new_word = word + letter + suite
  print new_word
else:
    print 'Ce n'est pas un mot'


Merci de votre aide ;-)

3 réponses

yg_be Messages postés 23541 Date d'inscription   Statut Contributeur Dernière intervention   Ambassadeur 1 584
 
bonjour,
moi, au lieu de déplacer la lettre, je la retirerais du début du mot.
0
jee pee Messages postés 41510 Date d'inscription   Statut Modérateur Dernière intervention   9 713
 
Bonjour,

Le mot étant un tableau de caractères, il peut être découpé, voir : https://www.digitalocean.com/community/tutorials/how-to-index-and-slice-strings-in-python-3-fr

word[1:] 
te donnes le mot à partir du second caractère
0
mamiemando Messages postés 33766 Date d'inscription   Statut Modérateur Dernière intervention   7 878
 
Bonjour,

Pour compléter les réponses qui ont déjà été données, il faut bien comprendre que :

letter = word[0]


... ne fait que copier le premier caractère de
word
dans
letter
. Donc suite à cette opération,
word
contient toujours
"sept"
.

La solution de jee pee te permet d'extraire le suffixe à partir du caractère 1 inclu (sachant qu'ils sont indexés à partir de 0) et donc de récupérer le contenu de
word
sans le premier caractère.

suffix = word[1:]
print(suffix)


Attention aussi, si tu entoures ta chaînes avec des apostrophe, il faut échapper l'apostrophe, où utiliser des guillemets. Par ailleurs à partir de python 3,
print
est une fonction donc il faut mettre les parenthèses :

print("Ce n'est pas un mot")
print('Ce n\'est pas un mot')


Bonne chance
0