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 :

SyntaxError : invalid syntax


Sujet :

Python

  1. #1
    Membre habitué
    Homme Profil pro
    Cadre en reconversion
    Inscrit en
    Mars 2018
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 65
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Cadre en reconversion
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Mars 2018
    Messages : 9
    Par défaut SyntaxError : invalid syntax
    Bonjour,

    Dans le cadre de mon initiation en cours, je suis en train de faire un petit programme et j'ai un message [SyntaxError : invalid syntax ] au lancement.
    Il y a bien sûr une raison mais je n'arrive pas à me l'expliquer...
    Je ne suis pas encore familier avec la manière des poser des questions ici et sous quelle forme c'est plus facile pour vous...
    Je vois que certains ont des n° de lignes mais je ne vois pas comment faire ça...
    Cela intervient au 3ème "elfi" du 1er "if", sur l'assignation de la variable "nombreSphinx"
    Bref, je joins une copie d'écran de l'erreur et le fichier .py, qui seront peut-être plus exploitables pour vous qu'un long blabla.

    Merci.

    Bien cordialement,
    nicolas06600
    Images attachées Images attachées  
    Fichiers attachés Fichiers attachés

  2. #2
    Expert éminent
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 736
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Architecte technique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2008
    Messages : 21 736
    Par défaut
    Salut,

    C'est parce qu'à la ligne précédente vous avez oublié une parenthèse fermante ")".

    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

  3. #3
    Membre prolifique
    Avatar de Sve@r
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2006
    Messages
    12 830
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 12 830
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par nicolas06600 Voir le message
    Je vois que certains ont des n° de lignes mais je ne vois pas comment faire ça...
    Bonjour

    Il suffit de poster un code en l'encadrant de balises

    Exemple sans les balises
    if True:
    print "ok"

    Exemple avec les balises
    On peut rajouter le pattern "=truc" entre le "code" et le crochet fermant. Ca a pour effet de mettre le texte "Code truc" comme titre du code.
    Exemple en rajoutant "=toto"...
    Code toto : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    if True:
        print "ok"
    Bien entendu, généralement on écrit plutôt "=python".


    Si on doit écrire un petit exemple d'une ligne au milieu d'un texte (pour illustrer), alors on peut utiliser les balises "c" et "/c" pour encadrer l'exemple. Ne pas oublier de rajouter ne serait-ce qu'un seul caractère après la balise "/c" sinon la phrase suivante éventuelle reste collée après le code.

    Exemple: on peut calculer la racine carrée de "n" en écrivant n ** 0.5 mais ça ne fonctionne que si "n" est positif.

    PS: prisonnier à jamasi !!! Je connais ce pays. C'est entre Munchkin et Winkie...
    PS2: "tu n'as pas deviné le bon ciffre" => tu as même reproduit le zézaiement par écrit. Chapeau !!!
    Mon Tutoriel sur la programmation «Python»
    Mon Tutoriel sur la programmation «Shell»
    Sinon il y en a pleins d'autres. N'oubliez pas non plus les différentes faq disponibles sur ce site
    Et on poste ses codes entre balises [code] et [/code]

  4. #4
    Membre habitué
    Homme Profil pro
    Cadre en reconversion
    Inscrit en
    Mars 2018
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 65
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Cadre en reconversion
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Mars 2018
    Messages : 9
    Par défaut
    Citation Envoyé par wiztricks Voir le message
    Salut,

    C'est parce qu'à la ligne précédente vous avez oublié une parenthèse fermante ")".

    - W
    @ wiztricks :
    Oups ! Et oui...ça ne pardonne pas effectivement.
    Il faut dire que ce message et à cet endroit était un peu déroutant...

    @ Sve@r :
    Je n'ai pas encore tout compris de ce que vous m'expliquez. Je vais relire ça tranquillement et je reviendrai vers vous si besoin ;-)

    Merci à tous les deux.

    Bien cordialement.

  5. #5
    Expert éminent
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 736
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Architecte technique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2008
    Messages : 21 736
    Par défaut
    Citation Envoyé par nicolas06600 Voir le message
    @ wiztricks :
    Oups ! Et oui...ça ne pardonne pas effectivement.
    Il faut dire que ce message et à cet endroit était un peu déroutant...
    C'est une des facéties de Python à laquelle on s'habitue vite (ou pas: les programmeurs utilisent des IDE qui comptent les parenthèses et signalent les incohérences).

    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

  6. #6
    Membre habitué
    Homme Profil pro
    Cadre en reconversion
    Inscrit en
    Mars 2018
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 65
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Cadre en reconversion
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Mars 2018
    Messages : 9
    Par défaut
    Bonjour Sve@r,

    Z'ai relu çe matin et ze pançe que z'ai pizé ;-)

    Hier, il était tard et je n'étais pas assez frais...

    Merci pour ton aide... et la pointe d'humour... j'apprécie !

    A bientôt.

    nicolas06600

  7. #7
    Membre prolifique
    Avatar de Sve@r
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2006
    Messages
    12 830
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 12 830
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par nicolas06600 Voir le message
    Il faut dire que ce message et à cet endroit était un peu déroutant...
    Ben en fait ça se comprend. L'analyseur de code voit, en ligne (par exemple 125), une expression qui ouvre certaines parenthèses. Déjà il faut savoir que tu n'es pas obligé de fermer les parenthèses sur la même ligne que celle où tu les ouvres. Moi je me sers de cette possibilité pour écrire un code plus aéré.
    Exemple (code de base): print("\n".join("%d fois %d=%d" % (x, y, x*y) for x in range(1, 11) for y in range(1, 11))).
    Exemple un peu plus aéré
    Code python : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    print(
    	"\n".join(
    		"%d fois %d=%d" % (x, y, x*y)
    		for x in range(1, 11)
    		for y in range(1, 11)
    	)
    )

    Donc la fin de ligne arrivant avant la fermeture ne constitue pas une erreur pour Python. Il continue tranquillement son analyse sur la ou les lignes suivantes jusqu'à ce que la fin de l'instruction soit trouvée.

    Mais dans ton cas, à la ligne 126 il trouve une instruction qui ne s'adapte pas au contexte initié à la ligne 125. Il t'indique donc l'erreur et la ligne sur laquelle elle se trouve qui est la 126. Et en effet, dans l'absolu, vis à vis de la ligne 125, la ligne 126 constitue bien une erreur de syntaxe puisqu'elle n'a rien à y faire tant que la ligne 125 n'est pas terminée.

    Donc quand tu as une erreur qui te parait incompréhensible sur une ligne, cherche alors l'erreur dans les lignes précédentes...

    PS: ce qui me rend un peu triste, c'est de voir que tu t'es cassé le noeud pour écrire un tel code qui, une fois écrit, ne sera presque pas utilisé tellement il est immuable. Au bout de 3 essais on sait qu'on doit choisir la porte 1 ou 3 (la 2 conduisant à la mort et la 4 à une question presque impossible). Et que si on choisit la 3, il faut ensuite choisir de se tirer sans réveiller le dragon.
    Alors que si tu commences à y introduire du random, ça sera de suite un peu plus intéressant. Avec des fonctions dédiées à chaque situation ; situation qui surviendrait selon le résultat du dé...
    Mon Tutoriel sur la programmation «Python»
    Mon Tutoriel sur la programmation «Shell»
    Sinon il y en a pleins d'autres. N'oubliez pas non plus les différentes faq disponibles sur ce site
    Et on poste ses codes entre balises [code] et [/code]

  8. #8
    Membre habitué
    Homme Profil pro
    Cadre en reconversion
    Inscrit en
    Mars 2018
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 65
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Cadre en reconversion
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Mars 2018
    Messages : 9
    Par défaut
    Bonsoir et merci Sve@r pour ces explications détaillées.
    D'une certaine manière je suis content d'avoir fait cette erreur maintenant, soit après mon 2ème jour de Python*.
    Comme ça je serai plus "aware" lorsque cela se produira à nouveau...
    * pour info, j'ai 58ans et je débute en info et en Python, ce qui explique la naïveté de mes questions.
    Bien cordialement,
    nicolas06600

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

Discussions similaires

  1. [Python 2.X] SyntaxError: invalid syntax
    Par clovis.comete dans le forum Général Python
    Réponses: 1
    Dernier message: 08/03/2017, 08h23
  2. SyntaxError: invalid syntax lorsque j'exécute mon .py
    Par Carcio dans le forum Général Python
    Réponses: 2
    Dernier message: 12/02/2012, 17h44
  3. SyntaxError: invalid syntax
    Par cotede2 dans le forum Général Python
    Réponses: 2
    Dernier message: 16/02/2009, 10h04
  4. Else = SyntaxError : invalid syntax
    Par telodo dans le forum Général Python
    Réponses: 3
    Dernier message: 12/02/2009, 22h13
  5. invalid syntax sur close()
    Par scary dans le forum Général Python
    Réponses: 20
    Dernier message: 07/12/2008, 20h19

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