Bonjour,
Alors voilà je viens de commencer à apprendre le Python (version 3.2 sous Windows 7) et c'est mon premier langage de programmation que j'apprends mais j'ai un petit problème:
Dans le tutoriel, second chapitre, les limites de la condition simple en if, il y a un exemple où l'on utilise 2 if mais moi des que j'essaye ça me marque ça :
>>> a=5
>>> if a > 0:
... print("a est positif.")
>>> if a < 0:
File "(stdin)", line 3
if a < 0:
^
SyntaxError: invalid syntax
Alors je voudrais savoir, si c'est moi qui me trompe et où et si c'est autre chose, et ben quoi ?
P.S: J'ai déjà fait des recherches sur Internet et j'ai pu apprendre que "(stdin)" apparaissait dans un message d'erreur où il y a un mauvais "code"
Tout d'abord, merci de lire les règles de ce forum, notamment le point à propos des balises codes qui sont absolument essentielles en Python.
Ensuite, si tu as un problème, il y a de grandes chances que le problème viennent de toi et pas de Python (en fait, je dirais que 99.99% du temps c'est toi le problème). Donc évidemment, le problème vient de ton code et non de Python, et ça aurait été plus facile de t'aider si tu avais copié/collé toutes les lignes :
>>> a = 5
>>> if a > 0:
... print("a est positif")
... if a < 0:
File "<stdin>", line 3
if a < 0:
^
Comme tu le vois, devant le deuxième if, il y a trois points. Cela signifie que tu te trouves encore dans le bloc conditionnel. Toi, tu veux en sortir, donc tu dois appuyer deux fois sur la touche Entrée :
>>> if a > 0:
... print("a est positif")
...
a est positif
>>> if a < 0:
... print("a est négatif")
...
>>>
Comme tu le vois, Python interprète d'abord la première condition (a > 0), voit que c'est vrai et affiche le message. Puis, tu écris la deuxième condition, qui est fausse, donc rien n'est affiché. Ce n'est pas très pratique, et habituellement, on utilise plutôt le elif (else if) et else :
>>> if a > 0:
... print("a est positif")
... elif a < 0:
... print("a est négatif")
... else:
... print("a est nul")
...
a est positif
Ça ne t'empêche pas d'éditer ton premier post pour les rajouter.
En l'occurrence je viens de le faire, mais ne les oublie pas la prochaine fois. Elles sont indispensables en Python étant donné que sans elles on ne voit plus l'indentation.
Bonjour tout le monde, vous m'excuserez de déterrer le sujet mais je tiens à signaler qu'il y a visiblement une erreur dans le cours : il y est écrit :
>>> 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.")
alors que, comme l'a montré Fayden, ce n'est pas juste. Du coup j'ai (et je pense pas être le seul) chercher un bon moment ce que je faisais de mal avant de trouver ce sujet et me rendre compte que visiblement le code du cours n'est pas correct.
Voici le passage du cours : http://puu.sh/gKEIz/035db7609b.png
× Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
× Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
entwanne — @entwanne — Un zeste de Python — La POO en Python — Notions de Python avancées — Les secrets d'un code pythonique