dans le livre de swinnen l exercice suivant est proposé :
5.9. Écrivez un script qui recopie une chaîne (dans une nouvelle
variable) en l'inversant.
Ainsi par exemple, « zorglub » deviendra « bulgroz ».
La solution donnée par l'auteur :
#! /usr/bin/env python
# -*- coding: Latin-1 -*-
# Inversion d'une chaîne de caractères
# Chaîne fournie au départ :
ch = raw_input ('entrer un mot: ' )
lc = len(ch) # nombre de caractères total
i = lc - 1 # le traitement commencera à partir du dernier
caractère
nch = "" # nouvelle chaîne à construire (vide au d épart)
while i >= 0:
nch = nch + ch[i]
i = i - 1
# Affichage :
print nch
ca marche mais je ne comprend pas pourquoi la variable "i" est
encapsulé la valeur "lc - 1" et non pourquoi simplement la valeur "lc
" , j'avais fait un script similaire avant de regarder la solution
mais je n'avais pas diminuer la valeur lc de 1 . Il est écrit que
c'est pour commencer par le dernier caractère , mais si l'on enlève
1 , ne commence t-on pas avec l'avant dernier caractère ?
output erreur sans la valeur lc - 1 :
me@robby:~/python.swinnen/solutions$ python exercice_5_09.py
entrer un mot: hello
Traceback (most recent call last):
File "exercice_5_09.py", line 12, in ?
nch = nch + ch[i]
IndexError: string index out of range
quelqu'un peut m'expliquer ? j'ai déjà chercher le nom de l erreur
mais elle pas trop compréhensible a ce niveau ..
merci