fibonacci.py 891 Bytes
  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
#!/usr/bin/env python3
# -*- coding: utf-8 -*-

import sys, argparse

parser = argparse.ArgumentParser(description=u"Calcul et affiche les n premiers nombres de la suite de Fibonacci.")
parser.add_argument("number", help=u"Nombre maximum de calcul de la séquence. Ce nombre doit égal ou supérieur à 2.", type=int)
parser.add_argument("-g", "--display-golden-number", dest="golden", help=u"Afficher le nombre d'or.", action="store_true")
parser.add_argument("--log", default=sys.stdout, type=argparse.FileType('w'), help=u"Fichier où sera enregistré le résultat.")
args = parser.parse_args()

if args.number < 2:
print(u"Indiquer un nombre supérieur ou égal à 2.")
sys.exit(1)

a,b = 0,1

while b < args.number:
print("{:d}".format(b), file=args.log)
a,b = b,a+b

if args.golden:
print(u"\nb/a = {:1.15f} (Nombre d'or)".format(b/a), file=args.log)

args.log.close()
sys.exit(0)