[Python] Problème d'indentation (grand débutant)

Répondre
Partager Rechercher
Bonjour,

J'ai un programme avec l'indentation dans Python.

J'utilise l'IDLE pour taper mon texte :

Code:
if age >=18:
	print("Majeur !")
	else:
J'obtiens cela : SyntaxError: invalid syntax

Je crois avoir compris le problème : le "else:" est mal placé et devrait être au même niveau de tabulation que mon "if".

Simplement l'IDLE ne me laisse pas le choix. Après ma première ligne, il m'a automatiquement mis une tabulation pour mon "print" (ça c'est bien). Mais après avoir tapé cette ligne je me retrouve au même niveau d'indentation pour mon "else:".

Déjà, je souhaiterai savoir si mon problème est bien celui que je pense.

Si c'est le cas, comment résoudre mon problème en mettant mon "else:" au même niveau que mon "if..." ?

Merci pour votre aide !
Oui, le problème est bien celui que tu penses. Le if et le else doivent être au même niveau.

Pour corriger ca, faut faire un "back" juste avant d'écrire le else. Normalement ca va virer toute l'indentation superflue, et tu va revenir au niveau du if.
Je pense qu'il indente automatiquement à ce niveau-là car il s'attend à ce que tu écrives plusieurs choses à faire dans ta première branche. Par exemple si tu veux faire
Code:
if truc
  a()
  b()
par contre pour écrire ton else: tu dois donc faire back après avoir créé la nouvelle ligne.
Au passage pour écrire des algos un peu complexes, utilise plutôt IPython, bien meilleur que IDLE.
Sinon, le mieux reste de créer un script .py et de l'exécuter, ça évite de tout retaper et permet de conserver ce que tu as fait.
Bonjour à tous !

Tout d'abord merci pour vos réponses. Vous aviez raison c'était bien cela. Le pire, c'est que j'y avais pensé, mais comme ma première ligne, dans l'IDLE, est précédée par ">>>", j'ai ajouté des espaces pour que mon ELSE se place au même niveau que mon IF (soit après les ">>>").

En fait sur l'IDLE il y a quand même un décalage mais uniquement du aux flèches.

Sinon oui j'ai appris il y a peu que je peux créer un fichier sur NotePad++ et le lancer directement dans Python, je ferais sans doute comme ça dorénavant.

Comparé à NotePad++ justement, qu'apporte IPython ? Je vais regarder ça de plus près en tout cas.

En tout cas ce système d'indentation est pas mal, mais il faut s'habituer quand même (le langage que j'utilise quotidiennement n'impose pas ça).
Tu peux faire des scripts également avec IDLE, l'avantage c'est qu'on peut l'exécuter de suite.

Fais gaffe quand même parce qu'une fois qu'on a goûté à python on a du mal à revenir à d'autres langages.
Ce genre de probleme est exactement la raison pour laquelle je suis allergique au Python, alors que ce langage dechire sa race. J'arrive pas a me faire a l'importance syntaxique de l'indentation.
Citation :
Publié par Railgun
Ce genre de probleme est exactement la raison pour laquelle je suis allergique au Python, alors que ce langage dechire sa race. J'arrive pas a me faire a l'importance syntaxique de l'indentation.
Tu indentes pas tes blocs dans les langages qui ne le requierent pas ? Parce que dans le genre illisible, le code pas / mal indente, ca se pose. En python, tu evites la redondance d'information sur le debut du bloc (accolade + indentation)
Citation :
Publié par Malka
Tu indentes pas tes blocs dans les langages qui ne le requierent pas ? Parce que dans le genre illisible, le code pas / mal indente, ca se pose. En python, tu evites la redondance d'information sur le debut du bloc (accolade + indentation)
Si mais si tu te loupes/indère des trucs dans ton code à l'arrache, tu peux mettre tes accolades comme un porc et ton éditeur réidente automatiquement tes blocs, c'est plus confort quand même
Répondre

Connectés sur ce fil

 
1 connecté (0 membre et 1 invité) Afficher la liste détaillée des connectés