Afficher un message
Vieux 27/09/2007, 10h23   #1
Eastwind - Vent d Est
Aucun Avatar
 
Messages: n/a
Hébergeur:
Par défaut explication source inversion de chaine ?

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

  Réponse avec citation
 
Page generated in 0,04837 seconds with 9 queries