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 :

erreur sur fonction recursive


Sujet :

Python

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Formateur en informatique
    Inscrit en
    Février 2016
    Messages
    188
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Loir et Cher (Centre)

    Informations professionnelles :
    Activité : Formateur en informatique

    Informations forums :
    Inscription : Février 2016
    Messages : 188
    Par défaut erreur sur fonction recursive
    le code
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    def recursive(n):
        if (n>=0) :
            return ((n*n)+recursive(n-1))
     
    a=recursive (5)
    print (a)

    les erreurs

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    ESTART: C:\Users\jm18c\AppData\Local\Programs\Python\Python36-32\recurse.py 
    Traceback (most recent call last):
      File "C:\Users\jm18c\AppData\Local\Programs\Python\Python36-32\recurse.py", line 5, in <module>
        a=recursive (5)
      File "C:\Users\jm18c\AppData\Local\Programs\Python\Python36-32\recurse.py", line 3, in recursive
        return ((n*n)+recursive(n-1))
      File "C:\Users\jm18c\AppData\Local\Programs\Python\Python36-32\recurse.py", line 3, in recursive
        return ((n*n)+recursive(n-1))
      File "C:\Users\jm18c\AppData\Local\Programs\Python\Python36-32\recurse.py", line 3, in recursive
        return ((n*n)+recursive(n-1))
      [Previous line repeated 2 more times]
    TypeError: unsupported operand type(s) for +: 'int' and 'NoneType'
    >>>

    merci

  2. #2
    Expert confirmé
    Avatar de fred1599
    Homme Profil pro
    Lead Dev Python
    Inscrit en
    Juillet 2006
    Messages
    4 062
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Lead Dev Python
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Juillet 2006
    Messages : 4 062
    Par défaut
    Et quand n<0 on fait quoi ? Eh bien rien, on retourne None ! Donc lui il comprend pas qu'on ajoute None à un entier

    >>> 5 + None
    Traceback (most recent call last):
    File "<stdin>", line 1, in <module>
    TypeError: unsupported operand type(s) for +: 'int' and 'NoneType'
    Du coup tu vas devoir gérer cette exception...

  3. #3
    Membre confirmé
    Homme Profil pro
    Formateur en informatique
    Inscrit en
    Février 2016
    Messages
    188
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Loir et Cher (Centre)

    Informations professionnelles :
    Activité : Formateur en informatique

    Informations forums :
    Inscription : Février 2016
    Messages : 188
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    def recursive(n):
        if (n<0):
            return (0)
        if (n>=0) :
            return ((n*n)+recursive(n-1))
     
    a=recursive (5)
    print (a)
    mais ca ne marche pas

  4. #4
    Membre confirmé
    Homme Profil pro
    Formateur en informatique
    Inscrit en
    Février 2016
    Messages
    188
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Loir et Cher (Centre)

    Informations professionnelles :
    Activité : Formateur en informatique

    Informations forums :
    Inscription : Février 2016
    Messages : 188
    Par défaut
    merci

  5. #5
    Membre prolifique
    Avatar de Sve@r
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2006
    Messages
    12 833
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 12 833
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par jmc41320 Voir le message
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    def recursive(n):
        if (n<0):
            return (0)
        if (n>=0) :
            return ((n*n)+recursive(n-1))
     
    a=recursive (5)
    print (a)
    Bonjour

    T'es certain de l'utilité du second if ??? Et d'avoir vraiment besoin de calculer n*n+recursive(n-1) quand n=0 ??? (0 * 0 + 0)...
    Mon Tutoriel sur la programmation «Python»
    Mon Tutoriel sur la programmation «Shell»
    Sinon il y en a pleins d'autres. N'oubliez pas non plus les différentes faq disponibles sur ce site
    Et on poste ses codes entre balises [code] et [/code]

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

Discussions similaires

  1. Erreur sur Fonction PL/SQL
    Par boudou dans le forum PL/SQL
    Réponses: 2
    Dernier message: 22/10/2007, 08h34
  2. [Système] avis sur fonction recursive
    Par feydakine dans le forum Langage
    Réponses: 2
    Dernier message: 24/06/2007, 10h36
  3. [MySQL] Erreur sur fonction PHP
    Par lothar59 dans le forum PHP & Base de données
    Réponses: 3
    Dernier message: 04/03/2007, 11h31
  4. Erreur sur fonction
    Par all4linux dans le forum C
    Réponses: 2
    Dernier message: 30/06/2006, 10h40

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