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 :

Difficulté pour refaire un exercice


Sujet :

Python

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Etudiant
    Inscrit en
    Décembre 2018
    Messages
    37
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 21
    Localisation : Belgique

    Informations professionnelles :
    Activité : Etudiant

    Informations forums :
    Inscription : Décembre 2018
    Messages : 37
    Par défaut Difficulté pour refaire un exercice
    Salut à tous,

    J'apprend le Python sur internet.
    Je n'arrive pas à refaire cet exercice.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    >>> a = 5
    >>> if a > 0: # Si a est positif
    ...    print("a est positif.")
    ... if a < 0: # a est négatif
    ...    print("a est négatif.")
    Voila quand je refais cet exercice.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    >>> a=5
    >>> if a > 0:
    ...    print ("a est positif.")
    ... if a < 0:
      File "<stdin>", line 3
        if a < 0:
         ^
    SyntaxError: invalid syntax
    >>>
    Je ne comprends pas pourquoi ça donne une erreur.
    Merci d'avance pour vos réponses.

  2. #2
    Expert éminent
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 754
    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 754
    Par défaut
    Salut,

    Citation Envoyé par arnaudgengler Voir le message
    Je ne comprends pas pourquoi ça met erreur.
    Merci d'avance pour vos réponses.
    Parce que le tuto. que vous suivez ne vous a peut être pas indiqué ce qu'il fallait savoir. Prenez un vrai tuto. et lisez le chapitre qui va bien et vous trouverez la réponse à cette question et a bien d'autres.

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

  3. #3
    Rédacteur/Modérateur

    Homme Profil pro
    Ingénieur qualité méthodes
    Inscrit en
    Décembre 2013
    Messages
    4 227
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur qualité méthodes
    Secteur : Conseil

    Informations forums :
    Inscription : Décembre 2013
    Messages : 4 227
    Par défaut
    Il y a des trucs qui sont différents entre Python 2 et Python 3, donc c'est toujours utile de préciser si tu utilises l'un ou l'autre (il y a une case à sélectionner pour ça quand tu rédiges ta question). Ici, je ne psene pas que ce soit indispensable.
    L'autre point important quand tu poses une question(encore plus que le premier), c'est d'utiliser l'icone # dans la barre d'outils, pour que le code soit correctement affiché. Ici, on ne voit pas si tu as mis des espaces en début de ligne...

    Et c'est très certainement le problème. Recherche le mot 'INDENTATION' ou 'INDENTATION PYTHON' ; je pense que ça va résoudre ton problème.

  4. #4
    Membre Expert
    Avatar de Pyramidev
    Homme Profil pro
    Tech Lead
    Inscrit en
    Avril 2016
    Messages
    1 513
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Tech Lead

    Informations forums :
    Inscription : Avril 2016
    Messages : 1 513
    Par défaut
    Bonjour.

    Si un fichier Python contient :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    if True:
        print('foo')
    print('bar')
    et qu'on l'exécute, cela écrira bien "foo" et "bar" dans la sortie standard.

    Par contre, dans la REPL de Python, si on écrit la même chose, ça plante :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    >>> if True:
    ...     print('foo')
    ... print('bar')
      File "<stdin>", line 3
        print('bar')
            ^
    SyntaxError: invalid syntax
    >>>
    L'origine de ce problème vient du fait que la grammaire de la REPL est un peu différente : elle nécessite des lignes vides de temps en temps.

    Extrait de The Python Language Reference :
    Note that a (top-level) compound statement must be followed by a blank line in interactive mode; this is needed to help the parser detect the end of the input.
    Après print('foo'), si on tape deux fois sur entrée au lieu d'une seule, ça marche :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    >>> if True:
    ...     print('foo')
    ...
    foo
    >>> print('bar')
    bar
    >>>
    Dans ton cas, le code suivant est rejeté, car la première instruction if n'est pas suivie par une ligne vide avant la deuxième :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    >>> a = 5
    >>> if a > 0:
    ...     print("a est strictement positif.")
    ... if a < 0:
      File "<stdin>", line 3
        if a < 0:
         ^
    SyntaxError: invalid syntax
    >>>
    Par contre, les deux solutions suivantes fonctionnent :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    >>> a = 5
    >>> if a > 0:
    ...     print("a est strictement positif.")
    ...
    a est strictement positif.
    >>> if a < 0:
    ...     print("a est strictement négatif.")
    ...
    >>>
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    >>> a = 5
    >>> if a > 0:
    ...     print("a est strictement positif.")
    ... elif a < 0:
    ...     print("a est strictement négatif.")
    ...
    a est strictement positif.
    >>>
    Remarque 1 : dans ce deuxième cas, il n'y a qu'une seule instruction if, qui contient un elif. Comme le elif fait partie du if, il n'y a pas besoin de mettre une ligne vide avant elif.
    Remarque 2 : en français, positif signifie positif ou nul, contrairement au mot anglais positive qui signifie strictement positif. Idem pour négatif et le mot anglais negative.

  5. #5
    Membre averti
    Homme Profil pro
    Etudiant
    Inscrit en
    Décembre 2018
    Messages
    37
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 21
    Localisation : Belgique

    Informations professionnelles :
    Activité : Etudiant

    Informations forums :
    Inscription : Décembre 2018
    Messages : 37
    Par défaut
    Bonjour,

    Merci beaucoup pour vos réponses, ça fonctionne.

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

Discussions similaires

  1. [Débutant] Difficultés pour exercices
    Par imkyozz dans le forum x86 16-bits
    Réponses: 6
    Dernier message: 29/11/2014, 15h38
  2. Réponses: 17
    Dernier message: 16/12/2012, 09h27
  3. Réponses: 10
    Dernier message: 22/09/2003, 21h58
  4. Difficultés pour afficher un pixel à l'écran
    Par Bubonik software dans le forum C
    Réponses: 9
    Dernier message: 17/08/2003, 12h48

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