IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Python Discussion :

syntaxe de script en ligne de commande


Sujet :

Python

  1. #1
    Membre confirmé Avatar de sopsag
    Profil pro
    Inscrit en
    Octobre 2008
    Messages
    224
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Octobre 2008
    Messages : 224
    Par défaut syntaxe de script en ligne de commande
    Bonjour,

    j'avais un tout petit truc à faire qui tient en quelques instructions python et j'ai essayé de le faire en ligne de commande plutôt que d'écrire et d'executer un .py.

    Mais là, quand mon mini script est sur une seule ligne, je tombe sur un petit problème qui me laisse perplexe !

    Voici la bête :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    c:\>python
    Python 2.6.1 (r261:67517, Dec  4 2008, 16:51:00) [MSC v.1500 32 bit (Intel)] on win32
    Type "help", "copyright", "credits" or "license" for more information.
    >>> for i in range(5): print i
    ...
    0
    1
    2
    3
    4
    >>> for i in range(10): if i==5: print i
      File "<stdin>", line 1
        for i in range(10): if i==5: print i
                             ^
    SyntaxError: invalid syntax
    Pourquoi mon script avec un "if" provoque une erreur de syntaxe alors que celui sans "if" fonctionne ?

    Bien sûr, si je vais à la ligne entre chaque instructions, ça marche.

  2. #2
    Membre chevronné
    Avatar de vincent.mbg
    Homme Profil pro
    Développeur Python
    Inscrit en
    Décembre 2007
    Messages
    327
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Développeur Python

    Informations forums :
    Inscription : Décembre 2007
    Messages : 327
    Par défaut
    Je pense que "if i == 5 : print i" est considéré comme un bloc d'instruction puisqu'il possède deux instructions.
    De ce fait, on ne peut pas écrire

    for i in range( 5 ) : bloc d'instruction de deux lignes.

    Si tu veux écrire sur une seule ligne, utilise la compréhension de liste

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    print( [ i for i in range(10)  if i == 5  ] [0] )
    Mon guide pour apprendre Tkinter - N'oubliez pas de consulter les FAQ Python ou de visiter mon blog

  3. #3
    Membre émérite

    Profil pro
    Inscrit en
    Août 2004
    Messages
    723
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2004
    Messages : 723
    Par défaut
    Effectivement, il n'est pas possible d'utiliser cette pratique pour imbriquer des blocs, de plus, une telle pratique nuirait à la lisibilité.

    Pour reproduire exactement l'algorithme de départ avec une liste en compréhension :

    Code python 2 : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    def aff(x):
        print x
     
    [aff(i) for i in range(10)  if i == 5]

    Code python 3 : Sélectionner tout - Visualiser dans une fenêtre à part
    [print(i) for i in range(10)  if i == 5]

  4. #4
    Membre confirmé Avatar de sopsag
    Profil pro
    Inscrit en
    Octobre 2008
    Messages
    224
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Octobre 2008
    Messages : 224
    Par défaut
    Merci les gars !

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 1
    Dernier message: 18/12/2007, 12h47
  2. Script en ligne de commande
    Par choas dans le forum Langage
    Réponses: 2
    Dernier message: 23/03/2006, 10h31
  3. Utilisation d'un script en ligne de commande
    Par Thylia dans le forum Langage
    Réponses: 5
    Dernier message: 23/01/2006, 16h28
  4. [SQL*Plus] Lancer un script en ligne de commandes
    Par Jibees dans le forum Décisions SGBD
    Réponses: 2
    Dernier message: 04/07/2005, 17h05
  5. [SQL*Plus] Lancer un script en ligne de commandes
    Par Jibees dans le forum Oracle
    Réponses: 6
    Dernier message: 04/07/2005, 15h31

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo