# Expliquez moi

**URL:** <https://www.debian-fr.org/t/expliquez-moi/20521>\
**Category:** Programmation\
**Created:** [Février 20, 2016, 8:15 UTC](https://www.debian-fr.org/t/expliquez-moi/20521 "2016-02-20T20:15:28Z")\
**Posts on this page:** 14\
**Page:** 1

<div class="post-metadata">

**Author:** ![ghafiki1](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/g/e274bd/32.png) [@ghafiki1](https://www.debian-fr.org/u/ghafiki1)\
**Post date:** [Février 20, 2016, 8:15 UTC](https://www.debian-fr.org/t/expliquez-moi/20521/1 "2016-02-20T20:15:28Z")

</div>

j’ai commencé à etudier le langage python seul , je me suis arreté sur l ex :  
ecrivez un programme qui affiche une suite de 12 nombres dont chaque terme soit le triple du precedent.  
la reponse de l’auteur est :  
a , c = 1,1  
while c \< 13 :  
print a ,  
a , c=a\*3 , c+1  
priere de bien vouloir m’expliquer le fonctionnement de ce programme point par point.y a til de bons sites pour apprendre ce langage et merci bcp.

---

<div class="post-metadata">

**Author:** ![Mimoza](https://www.debian-fr.org/user_avatar/www.debian-fr.org/mimoza/32/3858_2.png) [@Mimoza](https://www.debian-fr.org/u/Mimoza)\
**Post date:** [Février 20, 2016, 8:15 UTC](https://www.debian-fr.org/t/expliquez-moi/20521/2 "2016-02-20T20:15:28Z")

</div>

Je ne connais en rien python mais je pense pouvoir décrypter l’exemple que tu donne :

a , c = 1,1 =\> initialisation des deux variables à 1  
while c \< 13 : =\> tant que c est inférieur à 13 on fait :  
print a , =\> affichage de a  
a , c=a_3 , c+1 [b][i]=\> a=a_3 et c=c+1[/i][/b]

Ce qui me tracasse dans ton programme c’est que je ne voi pas la fin de la boucle “while” et que à la fin de la ligne “print” il y a une virgule … peut être est-ce lié.  
Que te donne l’éxecution de ce programme ? Je dirai que la boucle s’éxecute 13 fois avant de sortir … 😒

Apparement il est possible de faire plusieurs affectations/opérations en une seule ligne, il faut respecter l’ordre des variables et opérations avant et après l’opérateur, le tout séparé par des virgules.

Voilà en espérant t’avoir aidé ![:smt006](https://www.debian-fr.org/uploads/default/original/1X/924eb3db8bedad6a0d333b02031d3c6a9af9d9c5.gif)

---

<div class="post-metadata">

**Author:** ![ADcomp](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/a/41988e/32.png) [@ADcomp](https://www.debian-fr.org/u/ADcomp)\
**Post date:** [Février 20, 2016, 8:15 UTC](https://www.debian-fr.org/t/expliquez-moi/20521/3 "2016-02-20T20:15:29Z")

</div>

Hello ,

> [@](#):
>
> Ce qui me tracasse dans ton programme c’est que je ne voi pas la fin de la boucle “while” […]

python utilise l’indentation pour cela …

```auto
# init var.
a = 1
nb_iter = 12

for iter in range(nb_iter):
    # indentation ...
    print a , # avec la virgule, on ne passe pas à la ligne
    a *= 3 # a = a * 3
```

> [@](#):
>
> et que à la fin de la ligne “print” il y a une virgule […]

avec la virgule, on ne passe pas à la ligne

> [@](#):
>
> Je dirai que la boucle s’éxecute 13 fois avant de sortir

tu es sur ? c = 1 , c \< 13 … à méditer 😉

> [@](#):
>
> y a til de bons sites pour apprendre ce langage

Plongez au coeur de Python : [diveintopython.adrahon.org/](http://diveintopython.adrahon.org/)

Quelques liens pour le python :  
[python.org/](http://python.org/)  
[python.developpez.com/](http://python.developpez.com/)  
[python-eggs.org/](http://www.python-eggs.org/)  
[pythonfacile.free.fr/](http://pythonfacile.free.fr/)  
[wikipython.flibuste.net/](http://wikipython.flibuste.net/)  
[fr.wikibooks.org/wiki/Exemples\_de\_scripts\_Python](http://fr.wikibooks.org/wiki/Exemples_de_scripts_Python)

A+

---

<div class="post-metadata">

**Author:** ![ghafiki1](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/g/e274bd/32.png) [@ghafiki1](https://www.debian-fr.org/u/ghafiki1)\
**Post date:** [Février 20, 2016, 8:15 UTC](https://www.debian-fr.org/t/expliquez-moi/20521/4 "2016-02-20T20:15:32Z")

</div>

[quote=“Mimoza”]Je ne connais en rien python mais je pense pouvoir décrypter l’exemple que tu donne :

a , c = 1,1 =\> initialisation des deux variables à 1  
while c \< 13 : =\> tant que c est inférieur à 13 on fait :  
print a , =\> affichage de a  
a , c=a_3 , c+1 [b][i]=\> a=a_3 et c=c+1[/i][/b]

Ce qui me tracasse dans ton programme c’est que je ne voi pas la fin de la boucle “while” et que à la fin de la ligne “print” il y a une virgule … peut être est-ce lié.  
Que te donne l’éxecution de ce programme ? Je dirai que la boucle s’éxecute 13 fois avant de sortir … 😒

Apparement il est possible de faire plusieurs affectations/opérations en une seule ligne, il faut respecter l’ordre des variables et opérations avant et après l’opérateur, le tout séparé par des virgules.

Voilà en espérant t’avoir aidé ![:smt006](https://www.debian-fr.org/uploads/default/original/1X/924eb3db8bedad6a0d333b02031d3c6a9af9d9c5.gif)[/quote]  
[size=150]merci pour la reponse , dans le programme on c =a_3 mais toi tu as ecrit a= a_3 , quelle est la vraie reponse , et merci bcp[/size]

---

<div class="post-metadata">

**Author:** ![debianhadic](https://www.debian-fr.org/user_avatar/www.debian-fr.org/debianhadic/32/3870_2.png) [@debianhadic](https://www.debian-fr.org/u/debianhadic)\
**Post date:** [Février 20, 2016, 8:15 UTC](https://www.debian-fr.org/t/expliquez-moi/20521/5 "2016-02-20T20:15:33Z")

</div>

Il y a une virgule pour séparer, python peut travailler par couple (ou plus) ça fait un peut tape-à-l’oeil, ça impressionne les néophytes 😉

```auto
a , c=a*3 , c+1 => a=a*3 et c=c+1
```

en faisant a , c = on indique que l’on va appliquer une opération sur a en premier (a\*3) et sur c en deuxième (c+1), au lieu de faire deux lignes clairs, on écrit tout sur une seule.

---

<div class="post-metadata">

**Author:** ![Mimoza](https://www.debian-fr.org/user_avatar/www.debian-fr.org/mimoza/32/3858_2.png) [@Mimoza](https://www.debian-fr.org/u/Mimoza)\
**Post date:** [Février 20, 2016, 8:15 UTC](https://www.debian-fr.org/t/expliquez-moi/20521/6 "2016-02-20T20:15:34Z")

</div>

[quote=“ADcomp”]Hello ,

> [@](#):
>
> Ce qui me tracasse dans ton programme c’est que je ne voi pas la fin de la boucle “while” […]

python utilise l’indentation pour cela …

```auto
# init var.
a = 1
nb_iter = 12

for iter in range(nb_iter):
    # indentation ...
    print a , # avec la virgule, on ne passe pas à la ligne
    a *= 3 # a = a * 3
```

> [@](#):
>
> et que à la fin de la ligne “print” il y a une virgule […]

avec la virgule, on ne passe pas à la ligne

> [@](#):
>
> Je dirai que la boucle s’éxecute 13 fois avant de sortir

tu es sur ? c = 1 , c \< 13 … à méditer 😉

A+[/quote]  
Ok merci de ces explications. Mais se baser sur l’identation me semble légèrement dangereux comme méthode, c’est sur que ça oblige a avoir un code propre mais quand même.  
Pour le nombre de boucle j’ai écrit un peut vite en effet, 12 fois devrait suffire 😊

Mais bon comme je l’ai dit j’ai jamais fait de python ![:mrgreen:](https://www.debian-fr.org/uploads/default/original/1X/cc83e9b583138e48ff45f96609046b06d06c7f9d.gif "Mr. Green")

---

<div class="post-metadata">

**Author:** ![MisterFreez](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/m/bb73d2/32.png) [@MisterFreez](https://www.debian-fr.org/u/MisterFreez)\
**Post date:** [Février 20, 2016, 8:15 UTC](https://www.debian-fr.org/t/expliquez-moi/20521/7 "2016-02-20T20:15:35Z")

</div>

> [@](#):
>
> Il y a une virgule pour séparer, python peut travailler par couple (ou plus) ça fait un peut tape-à-l’oeil, ça impressionne les néophytes 😉

Ça peut être pratique dans certains cas mais pas trop là.  
D’ailleurs python pourrais faire ça en plus cours.

---

<div class="post-metadata">

**Author:** ![M3t4linux](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/m/5daacb/32.png) [@M3t4linux](https://www.debian-fr.org/u/M3t4linux)\
**Post date:** [Février 20, 2016, 8:15 UTC](https://www.debian-fr.org/t/expliquez-moi/20521/8 "2016-02-20T20:15:36Z")

</div>

Merci ADcomp pour tes précieux liens

Pour l’instant, je n’avais que le pdf des cours de Swinnen, voilà de quoi l’enrichir…

---

<div class="post-metadata">

**Author:** ![ghafiki1](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/g/e274bd/32.png) [@ghafiki1](https://www.debian-fr.org/u/ghafiki1)\
**Post date:** [Février 20, 2016, 8:15 UTC](https://www.debian-fr.org/t/expliquez-moi/20521/9 "2016-02-20T20:15:38Z")

</div>

[quote=“debianhadic”]Il y a une virgule pour séparer, python peut travailler par couple (ou plus) ça fait un peut tape-à-l’oeil, ça impressionne les néophytes 😉

```auto
a , c=a*3 , c+1 => a=a*3 et c=c+1
```

en faisant a , c = on indique que l’on va appliquer une opération sur a en premier (a\*3) et sur c en deuxième (c+1), au lieu de faire deux lignes clairs, on écrit tout sur une seule.[/quote]  
[size=150]merci bcp , je suis debutant en python , mais c’etais le poit qui m’ rebuté, certainement je vais solliciter ton aide en etudiant ce langage . merci bcp[/size]

---

<div class="post-metadata">

**Author:** ![debianhadic](https://www.debian-fr.org/user_avatar/www.debian-fr.org/debianhadic/32/3870_2.png) [@debianhadic](https://www.debian-fr.org/u/debianhadic)\
**Post date:** [Février 20, 2016, 8:15 UTC](https://www.debian-fr.org/t/expliquez-moi/20521/10 "2016-02-20T20:15:39Z")

</div>

[size=200]YA PAS DE QUOI MAIS LA PROCHAINE FOIS BRANCHE TON SONOTONE 😉[/size]

---

<div class="post-metadata">

**Author:** ![ADcomp](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/a/41988e/32.png) [@ADcomp](https://www.debian-fr.org/u/ADcomp)\
**Post date:** [Février 20, 2016, 8:15 UTC](https://www.debian-fr.org/t/expliquez-moi/20521/11 "2016-02-20T20:15:40Z")

</div>

@ M3t4linux : pas de quoi …  
@ debianhadic : +1 😆

---

<div class="post-metadata">

**Author:** ![Mimoza](https://www.debian-fr.org/user_avatar/www.debian-fr.org/mimoza/32/3858_2.png) [@Mimoza](https://www.debian-fr.org/u/Mimoza)\
**Post date:** [Février 20, 2016, 8:15 UTC](https://www.debian-fr.org/t/expliquez-moi/20521/12 "2016-02-20T20:15:42Z")

</div>

[size=200]JE N’ARRIVE PAS À LIRE, TU PEUX L’ÉCRIRE PLUS GROS[/size]

---

<div class="post-metadata">

**Author:** ![Stay\_n\_Alive](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/s/6de8d8/32.png) [@Stay\_n\_Alive](https://www.debian-fr.org/u/Stay_n_Alive)\
**Post date:** [Février 20, 2016, 8:15 UTC](https://www.debian-fr.org/t/expliquez-moi/20521/13 "2016-02-20T20:15:43Z")

</div>

Super langage, ça, le Python. Je m’y suis mis, une fois, et c’est plutot cool.

Mais bon, un moment donné je me suis mis a pratiquer beaucoup de guitare, alors j’ai plus le temps.

Surtout quand tu programme, l’important c’est vraiment de comprendre ce que tu fais et tous les principes logiques qu’il y a derrière. Si tu te concentre sur les concepts, les autres langages seront plus faciles a apprendre car tu auras appris a penser logiquement, et non en python.

Et ne riez pas de sa tronche, s’il vous plait.

---

<div class="post-metadata">

**Author:** ![MisterFreez](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/m/bb73d2/32.png) [@MisterFreez](https://www.debian-fr.org/u/MisterFreez)\
**Post date:** [Février 20, 2016, 8:15 UTC](https://www.debian-fr.org/t/expliquez-moi/20521/14 "2016-02-20T20:15:48Z")

</div>

> [@](#):
>
> [quote=“debianhadic”]Il y a une virgule pour séparer, python peut travailler par couple (ou plus) ça fait un peut tape-à-l’oeil, ça impressionne les néophytes 😉

Ça peut être pratique dans certains cas mais pas trop là.  
D’ailleurs python pourrais faire ça en plus cours.[/quote]  
Donc oui il est possible de faire court :

[code]#!/usr/bin/python

a = 1  
print [a\*(3\*\*i) for i in range(1, 12)][/code]  
Et aucun problème d’indentation. Pour mieux comprendre il faut connaitre les “list comprehensions” qui est la bizarrerie du langage. En fait on génère une liste avec une sorte de boucle for.
