Vous êtes ici : Accueil / Forums & ML / Forums Python / Forum général Python / Problème sa marche dans la command line mais pas dans un fichier

Problème sa marche dans la command line mais pas dans un fichier

Remonter à Forum général Python
  • Problème sa marche dans la command line mais pas dans un fichier

    Envoyé par jakocube le 28 Janvier 2012 à 21:40
    Bonjour, je suis débutant en python et je suis bloqué à un moment quand j'écris cela (voir plus bas) dans un fichier et bien sa me met salut au lieu de 'lut' normalement, et le 'lut' ne marche que dans la command line. J'ai remarqué que c'était à cause de print donc j'aimerais savoir si il y avait un équivalent de print.

    presentation = "salut"
    presentation[:2]
    print("presentation")


    merci d'avance
    • Re: Problème sa marche dans la command line mais pas dans un fichier

      Envoyé par jacko le 31 Janvier 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.
Rendu par Ploneboard