Aide pour comprendre un programme Python

Fermé
Crazy Man III Messages postés 14 Date d'inscription lundi 29 novembre 2004 Statut Membre Dernière intervention 11 novembre 2010 - 3 déc. 2004 à 01:36
 Encore ce Crazy Man III - 5 déc. 2004 à 02:15
Bonjour à tous et à toutes.

J'ai commencé à programmer Python il y a 5 ou 6 jours , et là je bloque sur un petit problème.......

Pourriez vous m'expliquez le fonctionnement de ce script ? ( Sur la suite de Fibonacci qui se compose comme ci : 1 , 2 , 3 , 5 , 8 , 13 , 21 , 34 , )

>>>a, b, c = 1, 1, 1, ( Ça je comprends c'est les valeurs)
>>>while c<11 ( Le nombres de termes à donnre
print b, (La , indique qu'il faut afficher horizontalement)
a, b, c = b, a+b, c+1

Là on pèse sur Enter et tous se fait par magie ..... sans que je sache comment , ce qui m'empêche de faires d'autres suites du genre.

Mercide votre aide

7 réponses

teebo Messages postés 33491 Date d'inscription jeudi 14 octobre 2004 Statut Modérateur Dernière intervention 24 février 2011 1 793
3 déc. 2004 à 08:33
Salut,

 a, b, c = b, a+b, c+1


c'est équivalent à ça:

temp=a
a=b
b=temp+b
c=c+1


mais comme tu mets ça dans une seule ligne, tu n'as pas besoin de la variable temp, c'est un des intérêt de Python :o)

Qui va en mer pour son plaisir,
irait en enfer pour ses vacances
0
Crazy Man III
3 déc. 2004 à 16:55
Excuse moi , mais ça ne m'avance pas bcp :-(

Pourrait tu m'expliquer quoi fait quoi en français SVP ?

Merci
0
teebo Messages postés 33491 Date d'inscription jeudi 14 octobre 2004 Statut Modérateur Dernière intervention 24 février 2011 1 793
3 déc. 2004 à 17:02
Difficilement mais je peux essayer ça:

Tu fais le calcul du terme suivant de la suite (a+b donc dans notre cas), tu le mets dans ta variable b, et dans a tu mets ton ancienne valeur de b. Quant à ce qui se passe en c, c'est tout simplement le compteur que tu incrémentes pour ne pas dépasser 11 itérations...


C'est mieux?

Sinon je peux aussi te montre ce que ça donne

itération0:    a= 1    b= 1   c= 1
impression de 1 (valeur de b)

itération1:    a= 1    b= 2   c= 2
impression de 2 (valeur de b)

itération2:    a= 2(ancienne valeur de b)    b= 3 (ancienne valeur de a plus ancienne valeur de b)   c= 3
impression de 3 (valeur de b)

itération3:    a= 3    b= 5   c= 4
impression de 5 (valeur de b)

...



Qui va en mer pour son plaisir,
irait en enfer pour ses vacances
0
Crazy Man III
3 déc. 2004 à 17:20
Là c'est mieux

Merci bcp
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Crazy Man III
4 déc. 2004 à 16:34
Mais là je re-bloque ailleurs , comment on fait pour

-Doubler la valeur d'une variante à chaque répétition du programme ?

- Et afficher à côté cette somme x 1. 65

1 1.65
2 3.30

Etc......

J'ai essayé de plusieurs façons , mais là ça bloque :-(

Merci de votre aide
0
kilian Messages postés 8732 Date d'inscription vendredi 19 septembre 2003 Statut Non membre Dernière intervention 5 février 2025 1 526
4 déc. 2004 à 18:07
Salut,

Pour ça il faut faire une boucle avec "while".
D'abord tu définis quelle condition doit êtr vérifiée pour exécuter ta boucle. Prenons par exemple deux variables a et b dont la valeur doublera à chaque execution de la boucle jusqu'à ce que a soit plus grand ou égal à 1000.

Ca nous donne:
a=1
b=1.65
while a<=1000:  # En python, tu peux traduire while par "tant que"
         print a, b
         a=a*2
         b=b*2


Voilà :-)




var a=unescape("%3A-%29");
document.write(a);
0
Encore ce Crazy Man III
5 déc. 2004 à 02:15
Je connais le while , je suis pas si pourri que ça lol ;-)

Encore merci , je vois toujours trop compliqué :-D
0