teaching:progappchim:suite_de_fibonacci-3

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentes Révision précédente
Prochaine révision
Révision précédente
teaching:progappchim:suite_de_fibonacci-3 [2015/02/26 12:39] villersdteaching:progappchim:suite_de_fibonacci-3 [2017/02/24 08:52] (Version actuelle) villersd
Ligne 3: Ligne 3:
 Voici la structure que doit avoir un programme pour lequel le calcul de l'élément d'indice n de la suite de Fibonacci est encapsulé dans une fonction : Voici la structure que doit avoir un programme pour lequel le calcul de l'élément d'indice n de la suite de Fibonacci est encapsulé dans une fonction :
  
-<sxh python; title : fibonacci05_fonction.py>+<code python fibonacci05_fonction.py>
 #! /usr/bin/env python #! /usr/bin/env python
 # -*- coding: utf-8 -*- # -*- coding: utf-8 -*-
Ligne 19: Ligne 19:
     # le programme "principal" ....     # le programme "principal" ....
          
-</sxh>+</code>
  
 Le rôle de la structure conditionnelle **<nowiki>if __name__ == '__main__':</nowiki>** est de n'exécuter la suite du code **que** si le programme python concerné est le programme principal (explications plus complètes [[teaching:progappchim:notions_fondamentales#test_sur_le_programme_main|ici]]). Le rôle de la structure conditionnelle **<nowiki>if __name__ == '__main__':</nowiki>** est de n'exécuter la suite du code **que** si le programme python concerné est le programme principal (explications plus complètes [[teaching:progappchim:notions_fondamentales#test_sur_le_programme_main|ici]]).
  
 Voici une proposition complète : Voici une proposition complète :
-<sxh python; title : fibonacci05_fonction.py>+<code python fibonacci05_fonction.py>
 #! /usr/bin/env python #! /usr/bin/env python
 # -*- coding: utf-8 -*- # -*- coding: utf-8 -*-
Ligne 36: Ligne 36:
     """     """
     a, b = 0, 1     a, b = 0, 1
-    if n==0:+    if n == 0:
         return a         return a
-    elif n==1:+    elif n == 1:
         return b         return b
     for i in range(1,n):     for i in range(1,n):
Ligne 45: Ligne 45:
  
 if __name__ == '__main__': if __name__ == '__main__':
-    i=input("Suite de Fibonacci. Donnez l'indice de l'élément souhaité ? ") +    i = int(input("Suite de Fibonacci. Donnez l'indice de l'élément souhaité ? ")
-    print ("Élément de la suite : "), +    print("Élément de la suite : "), 
-    print fibonacci_item(i) +    print(fibonacci_item(i)
-    print ('Premiers éléments de la suite : ')+    print('Premiers éléments de la suite : ')
     for j in range(10):     for j in range(10):
-        print j,fibonacci_item(j) +        print(j,fibonacci_item(j)
-</sxh>+</code>
  
 On peut compléter les fonctionnalités par une fonction **fibonacci_list(n)** qui génère et renvoie la liste des éléments de la suite de Fibonacci jusqu'à l'élément n inclus. Finalement, on peut aussi proposer des alternatives (aussi efficace ?) sous forme de fonctions appelant d'autres fonctions, avec **fibonacci_list_from_items(n)** qui construirait la liste à partir de la fonction donnant un élément particulier, et **fibonacci_item_from_list(n)** qui renverrait l'élément d'indice n comme dernier élément de la liste ! On peut compléter les fonctionnalités par une fonction **fibonacci_list(n)** qui génère et renvoie la liste des éléments de la suite de Fibonacci jusqu'à l'élément n inclus. Finalement, on peut aussi proposer des alternatives (aussi efficace ?) sous forme de fonctions appelant d'autres fonctions, avec **fibonacci_list_from_items(n)** qui construirait la liste à partir de la fonction donnant un élément particulier, et **fibonacci_item_from_list(n)** qui renverrait l'élément d'indice n comme dernier élément de la liste !
  
 Voici ce que cela donne : Voici ce que cela donne :
-<sxh python; title : fibonacci06_fonctions.py>+<code python fibonacci06_fonctions.py>
 #! /usr/bin/env python #! /usr/bin/env python
 # -*- coding: utf-8 -*- # -*- coding: utf-8 -*-
Ligne 68: Ligne 68:
     """     """
     a, b = 0, 1     a, b = 0, 1
-    if n==0:+    if n == 0:
         return a         return a
-    elif n==1:+    elif n == 1:
         return b         return b
     for i in range(1,n):     for i in range(1,n):
Ligne 80: Ligne 80:
     Renvoie la liste des éléments de la suite de Fibonacci jusqu'à l'élément n inclus.     Renvoie la liste des éléments de la suite de Fibonacci jusqu'à l'élément n inclus.
     """     """
-    a,b,ans = 0,1,[0,1] +    a, b, ans = 0, 1, [0,1] 
-    if n==0:+    if n == 0:
         return [0]         return [0]
     for i in range(1,n):     for i in range(1,n):
Ligne 100: Ligne 100:
  
 if __name__ == '__main__': if __name__ == '__main__':
-    i=input("Suite de Fibonacci. Donnez l'indice de l'élément souhaité ? ") +    i = int(input("Suite de Fibonacci. Donnez l'indice de l'élément souhaité ? ")
-    print ("Élément de la suite : "), +    print("Élément de la suite : "), 
-    print fibonacci_item(i) +    print(fibonacci_item(i)
-    print ('Premiers éléments de la suite : ')+    print('Premiers éléments de la suite : ')
     for j in range(10):     for j in range(10):
-        print j,fibonacci_item(j)+        print(j,fibonacci_item(j))
  
-    print ('Avec fibonacci_item_from_list : ')+    print('Avec fibonacci_item_from_list : ')
     for j in range(10):     for j in range(10):
-        print j,fibonacci_item_from_list(j)+        print(j,fibonacci_item_from_list(j))
  
  
-    print ("Liste des éléments de la suite de Fibonnaci jusqu'à l'élément souhaité, inclus : "), +    print("Liste des éléments de la suite de Fibonnaci jusqu'à l'élément souhaité, inclus : "), 
-    print fibonacci_list(i) +    print(fibonacci_list(i)
-    print ('Premières listes : ')+    print('Premières listes : ')
     for j in range(10):     for j in range(10):
-        print j,fibonacci_list(j)+        print(j,fibonacci_list(j))
  
-    print "Avec fibonacci_list_from_items"+    print("Avec fibonacci_list_from_items")
     for j in range(10):     for j in range(10):
-        print j,fibonacci_list_from_items(j) +        print(j,fibonacci_list_from_items(j)
-</sxh>+</code>
  
 Des fonctions qui appellent d'autres fonctions !  Mais que voilà une idée intéressante, qui peut déboucher sur une écriture récursive d'une fonction donnant l'élément d'indice n de la suite de Fibonacci quir par définition est la somme de l'élément d'indice n-1 de la suite de Fibonacci, et de l'élément d'indice n-2 de la suite de Fibonacci ! Des fonctions qui appellent d'autres fonctions !  Mais que voilà une idée intéressante, qui peut déboucher sur une écriture récursive d'une fonction donnant l'élément d'indice n de la suite de Fibonacci quir par définition est la somme de l'élément d'indice n-1 de la suite de Fibonacci, et de l'élément d'indice n-2 de la suite de Fibonacci !
  
-<sxh python; title : fibonacci07_fonction_recursive.py>+<code python fibonacci07_fonction_recursive.py>
 #! /usr/bin/env python #! /usr/bin/env python
 # -*- coding: utf-8 -*- # -*- coding: utf-8 -*-
Ligne 138: Ligne 138:
     """     """
     ... (?)     ... (?)
-    return fibonacci_item_recursive(n-1)+fibonacci_item_recursive(n-2)+    return fibonacci_item_recursive(n-1) + fibonacci_item_recursive(n-2)
  
 if __name__ == '__main__': if __name__ == '__main__':
     ...     ...
-</sxh>+</code>
  
 [[suite_de_fibonacci-4|Pour la suite, cliquez ici !]] [[suite_de_fibonacci-4|Pour la suite, cliquez ici !]]
  • teaching/progappchim/suite_de_fibonacci-3.1424950775.txt.gz
  • Dernière modification : 2015/02/26 12:39
  • de villersd