Salut, Avec Python il y a indentation quand il y a bloc d'instructions. Et en principe, souvent, voire toujours, la ligne qui "déclenche" entre guillemets l'indentation se termine par deux-points (sauf si vous remettez la main sur des contre-exemples).
Par exemple, après un for ou un while, toutes les lignes qui seront indentées seront exécutées dans cette boucle, jusqu'à la première ligne qui reprendra l'indentation précédente, à savoir celle du for. Pareil pour if-else, les lignes qui suivent if sont indentées, et toutes les lignes de même indentation sont exécutées si la condition est vraie; puis le else: correspondant aura la même indentation que le if, et les lignes indentées qui suivent sont exécutées si la condition est fausse. Tous les blocs peuvent avoir des indentations très différentes. Par exemple, je peux très bien mettre trois espaces pour les lignes sous le if, et neuf sous la ligne else. Le bloc est constitué de lignes consécutives ayant la même indentation, et la première ligne après le bloc doit avoir la même indentation qu'une des lignes au-dessus, pourvu qu'elle soit inférieure ou égale à celle du bloc qui vient de se terminer. Une fonction est aussi un bloc introduite par une ligne def quelquechose. une classe aussi est un bloc, comme on le voit avec l'exemple de Yannick. La tabulation (si elle n'est pas transformée en espaces) compte pour un seul caractère, c'est indépendant de la façon dont l'éditeur la traite. Il faut donc bien connaître son éditeur pour savoir s'il la fait s'afficher comme étant 3, 4, 8, ou le nombre qu'on veut d'espaces, sans la transformer; dans ce cas, un backspace enlève directement tout le retrait. Ou bien s'il transforme effectivement une tab en espaces (c'est-à-dire, si je frappe tab l'éditeur insère par exemple quatre espaces), et si je fais une fois backspace, je n'en enlève qu'un sur ces quatre). J.-F. Le 27/04/2012 17:35, Maan ALOUN écrit : > > quelqu'un peut m'expliquer les règles de l'indentation et la structure de > code de python? > j'ai demandé Google, il y a beaucoup de question au tour de problème de code > à cause de cet indentation! > > > -------------------------------------------------- > From: "QuentinC"<[email protected]> > Sent: Friday, April 27, 2012 5:13 PM > To:<[email protected]> > Subject: [progliste] Re: niveau d'acc essibilité lang age progr amm > ation > >> Créer son propre langage était bien sûr une idée utopique. Évidemment je >> ne suis quand même pas assez fou pour m'y risquer, et il me manque >> certaines connaissances pour le faire de toute façon. Cela dit, ce >> serait assurément passionnant. Probablement pas très utile, mais >> passionnant. >> >> >> Plus sérieusement, et plus concrètement, je pense qu'on aurait tous un >> intérêt à se mettre vraiment à python. Il adresse toutes sortes de >> compromis: modèle objet assez développé, modèle fonctionnel aussi assez >> développé, syntaxe simple si on laisse de côté l'indentation, nombreuses >> bibliothèques et bindings pour plein de choses dans beaucoup de >> domaines, portabilité car basé sur une VM mais bien moins lourde que >> java... >> Tiens à ce propos, quelqu'un a déjà essayé pypy et l'a déjà comparé à >> CPython ? Il s'agit d'une VM alternative, pour ceux qui ne seraient pas >> au courant. >> >> Pur basic, c'est très bien, pourquoi pas... mais outre que c'est payant, >> l'avantage qu'on a à se mettre à python c'est que c'est réellement >> utilisé dans l'industrie et la recherche. Donc c'est non seulement >> intéressant, mais en même temps réellement utile. Vu que personne >> n'utilise pur basic à part trois glandus convaincus, ça fait un gros >> argument en moins. Bonjour, je développe en pur basic. Qu'est-ce que >> c'est comme religion ? Bon, et puis, ça implique quand même d'utiliser >> un IDE potentiellement usine à gaz. >> >> >> L'IDE tout trouvé que j'aimerais bien amener, c'est évidemment 6pad ! Si >> on se met ensemble pour faire un script qui convertit les indentations >> en accolades et vice-versa et de manière totalement transparente, il y a >> moyen de faire quelque chose de bien. Ou bien sûr si vous avez une >> meilleure idée, n'hésitez pas à proposer. >> >> Je propose 6pad pas seulement parce que c'est mon propre programme, mais >> parce que se customiser un script à l'adresse d'un seul lecteur d'écran >> ou l'autre n'est vraiment pas la bonne approche. Vous savez autant que >> moi comment les scripts jaws sont buggés et comment ils ne sont vraiment >> pas pratiques à développer. Vous savez aussi autant que moi que NVDA >> utilise justement le langage qu'on cherche à appréhender pour scripter, >> donc c'est le serpent qui se mord la queue. ET si un autre >> extraterrestre débarque sur cette liste et affirme utiliser Window eye >> ou Supernova, que va-t-on lui dire ? ET si jaws ne fonctionnait plus >> avec windows 8 ? Donc, c'est vraiment pas la bonne stratégie. >> >> >> >> Progliste : >> Pour se désinscrire de la liste : >> mailto:[email protected]?subject=unsubscribe >> >> Pour voir les archives de la liste : >> http://www.mail-archive.com/[email protected]/ >> >> Pour accéder aux fichiers de la liste >> http://outils.archive-host.com/partage.php?id=2Qar9Hy6ftzr >> Pour y ajouter des fichiers demandez-moi le ou sur la liste ou en privé, >> je vous répondrez en privé. > > > Progliste : > Pour se désinscrire de la liste : > mailto:[email protected]?subject=unsubscribe > > Pour voir les archives de la liste : > http://www.mail-archive.com/[email protected]/ > > Pour accéder aux fichiers de la liste > http://outils.archive-host.com/partage.php?id=2Qar9Hy6ftzr > Pour y ajouter des fichiers demandez-moi le ou sur la liste ou en privé, je > vous répondrez en privé. Progliste : Pour se désinscrire de la liste : mailto:[email protected]?subject=unsubscribe Pour voir les archives de la liste : http://www.mail-archive.com/[email protected]/ Pour accéder aux fichiers de la liste http://outils.archive-host.com/partage.php?id=2Qar9Hy6ftzr Pour y ajouter des fichiers demandez-moi le ou sur la liste ou en privé, je vous répondrez en privé.
