Salut,

Quel genre d'exemple tu aurais besoin d'avoir en plus de ceux de Yannick 
pour t'aider?

Je prends juste le cas de deux boucles imbriquées:

i=0
j=0
while i<10:
<tab> while j<10:
<tab> <tab> j+= 1
<tab> <tab> print "i=%s, j=%s" % (i, j)
<tab> i+= 1

Dans ce cas de figure, le print provoque un affichage pour chaque tour 
de boucle interne, donc si je me suis pas trlompé, 10 fois 10 lignes de 
print. Si tu enlève une tab sur la ligne print, l'instruction 
n'appartient plus au bloc interne, mais au bloc du dessus, la boucle i, 
et tu n'as plus que dix lignes de print.

Note: fait à la volée, pas testé, pas à l'abri d'erreurs de syntaxe mais 
c'est pour le principe.

J.-F.

Le 29/04/2012 12:00, Maan ALOUN écrit :
>
> bonjour J.F,
>
> merci bien pour cet explication, peux-tu la compléter par des exemples,
> si on considère l'indentation par tab, comme Yannick a fait?
>
>
>
> --------------------------------------------------
> From: "Jean-François Colas"<jfco...@inja.fr>
> Sent: Saturday, April 28, 2012 2:23 PM
> To:<progliste@ml.free.fr>
> Subject: [progliste] Python et indentation
>
>> 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"<quent...@cfardel.net>
>>> Sent: Friday, April 27, 2012 5:13 PM
>>> To:<progliste@ml.free.fr>
>>> 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:progliste-requ...@ml.free.fr?subject=unsubscribe
>>>>
>>>> Pour voir les archives de la liste :
>>>> http://www.mail-archive.com/progliste@ml.free.fr/
>>>>
>>>> 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:progliste-requ...@ml.free.fr?subject=unsubscribe
>>>
>>> Pour voir les archives de la liste :
>>> http://www.mail-archive.com/progliste@ml.free.fr/
>>>
>>> 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:progliste-requ...@ml.free.fr?subject=unsubscribe
>>
>> Pour voir les archives de la liste :
>> http://www.mail-archive.com/progliste@ml.free.fr/
>>
>> 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:progliste-requ...@ml.free.fr?subject=unsubscribe
>
> Pour voir les archives de la liste :
> http://www.mail-archive.com/progliste@ml.free.fr/     
>
> 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:progliste-requ...@ml.free.fr?subject=unsubscribe

Pour voir les archives de la liste :
http://www.mail-archive.com/progliste@ml.free.fr/       

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 à