Re: Problème sa marche dans la command line mais pas dans un fichier
Posté par
jacko
le
31/01/2012 13:13
Il y a une différence entre l'exécution d'un script (un fichier) et l'exécution au clavier :
- lors de l'exécution au clavier, l'interpréteur affiche la valeur retournée par l'évaluation de chaque ligne (sauf si c'est None). C'est une facilité pratique pour le mode interactif.
- lors de l'exécution d'un script, ce n'est pas le cas. Heureusement, sinon l'exécution d'un programme donnerait lieu à quantité d'affichages inutiles.
Dans tous les cas, print() affiche ce qu'on lui demande bien sûr.
Dans votre cas, la ligne :
presentation[:2]
calcule effectivement "lut" et le retourne. Au clavier, cette valeur retournée est affichée. Dans un script, non. Mais attention : cette expression ne modifie pas la chaîne presentation, qui demeure donc égale à "salut". C'est pourquoi, l'instruction :
print(presentation)
qui suit affiche "salut" dans tous les cas. Remarque : dans un script, la ligne :
presentation[:2]
ne sert à rien, car la valeur calculée est aussitôt perdue.
Si vous souhaitez vraiment modifier la chaîne, il faut écrire :
presentation=presentation[:2]
Dans ce cas, cette ligne ne rend rien -> aucun affichage même au clavier. Mais print(presentation) affiche dans tous les cas "lut".
Bonne continuation en Python.
|