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é.

Répondre à