IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Python Discussion :

Suite de Fibonacci


Sujet :

Python

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2019
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2019
    Messages : 10
    Par défaut Suite de Fibonacci
    Bonjour,

    Je dois réaliser un programme permettant de lister la suite de Fibonacci selon un élément maximum "n".
    Voici ce que j'ai réalisé sous Python 3.7, Windows 10 :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    F = []
    b = False
    while b is False:
        try:
            n = int(input("Pour la valeur maximum de la suite de Fibonacci\nEntrez un entier supérieur à 1 : "))
            [F.append(0) for i in range(n)]
            F[0] = F[1] = 1
            for i in range(n-2):
                F[i+2] = F[i] + F[i+1]
            print(F)
            b = True
        except IndexError:
            print("Ce n'est pas un entier supérieur à 1 !")
        except ValueError:
            print("Ce n'est pas un chiffre !")
    print("Programme terminé !")
    Lorsque je fais des tests, tout fonctionne correctement sauf que quand j'entre "1", je valide, il me marque l'exception que "ce n'est pas un entier supérieur à 1" puis j'entre un autre chiffre, et ça me rajoute un "0" à la fin de la liste.

    Pour la valeur maximum de la suite de Fibonacci
    Entrez un entier supérieur à 1 : 5
    [1, 1, 2, 3, 5]
    Programme terminé !
    Pour la valeur maximum de la suite de Fibonacci
    Entrez un entier supérieur à 1 : 1
    Ce n'est pas un entier supérieur à 1 !
    Pour la valeur maximum de la suite de Fibonacci
    Entrez un entier supérieur à 1 : 5
    [1, 1, 2, 3, 5, 0]
    Programme terminé !
    Par contre, l'erreur ne survient pas lorsque j'entre autre chose que "1".

    Pour la valeur maximum de la suite de Fibonacci
    Entrez un entier supérieur à 1 : g
    Ce n'est pas un chiffre !
    Pour la valeur maximum de la suite de Fibonacci
    Entrez un entier supérieur à 1 : 5
    [1, 1, 2, 3, 5]
    Programme terminé !
    Pour la valeur maximum de la suite de Fibonacci
    Entrez un entier supérieur à 1 : 0
    Ce n'est pas un entier supérieur à 1 !
    Pour la valeur maximum de la suite de Fibonacci
    Entrez un entier supérieur à 1 : 5
    [1, 1, 2, 3, 5]
    Programme terminé !
    Pour la valeur maximum de la suite de Fibonacci
    Entrez un entier supérieur à 1 : -5
    Ce n'est pas un entier supérieur à 1 !
    Pour la valeur maximum de la suite de Fibonacci
    Entrez un entier supérieur à 1 : 5
    [1, 1, 2, 3, 5]
    Programme terminé !
    Je n'arrive pas à corriger cette erreur.

    Merci de votre aide.

    Doky.

  2. #2
    Expert éminent
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 741
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Architecte technique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2008
    Messages : 21 741
    Par défaut
    Salut,

    Citation Envoyé par Doky44 Voir le message
    sauf que quand j'entre "1", je valide, il me marque l'exception que "ce n'est pas un entier supérieur à 1" puis j'entre un autre chiffre, et ça me rajoute un "0" à la fin de la liste.
    Lorsque vous entrez 1 vous créez une liste de taille 1.
    Donc l'accès à F[1] plante en IndexError (ce qui affiche le message indiqué) et si on entre un autre chiffre, on ajoute des éléments à la liste précédente...
    Ce qui fait que la liste a un élément de plus qu'attendu (et çà fait un 0 à la fin).
    Il faut initialiser la liste après le try: et non avant le while.

    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

  3. #3
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2019
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2019
    Messages : 10
    Par défaut
    Parfait ! Merci beaucoup wiztricks

    Doky.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [68k] Problème exercice suite de Fibonacci
    Par tim91700 dans le forum Autres architectures
    Réponses: 15
    Dernier message: 31/03/2009, 20h59
  2. Suite de Fibonacci parallélisée
    Par nicolas66 dans le forum Algorithmes et structures de données
    Réponses: 6
    Dernier message: 07/12/2006, 22h04
  3. Réponses: 6
    Dernier message: 01/12/2006, 17h32
  4. [NASM] Problème suite de Fibonacci
    Par empochez dans le forum Assembleur
    Réponses: 1
    Dernier message: 05/04/2006, 11h17
  5. Suite de Fibonacci
    Par Évariste Galois dans le forum C++
    Réponses: 13
    Dernier message: 22/07/2005, 21h21

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo