Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1509 connectés 

  FORUM HardWare.fr
  Programmation
  Python

  [python] erreur que je ne comprends pas

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[python] erreur que je ne comprends pas

n°1521834
Riot
Buy me a riot
Posté le 28-02-2007 à 16:35:41  profilanswer
 

Bonjour,

 

Je me mets à Python, donc je programme des exemples à la con.
Voici mon code pour la factorielle:

 
Code :
  1. def facto( n ):
  2.     if n == 0:
  3.         return 1
  4.     print n * facto( n-1 )


Mais je n'obtiens pas du tout le résultat attendu ...
Ca fait une bonne demi-heure que j'essaie de trouver le pb, mais je ne comprends pas.

 

Par exemple, si je fais un print n après l'affichage du résultat, je n'ai pas la même valeur que celle de l'argument de ma fonction.

 

Merci.

 

mood
Publicité
Posté le 28-02-2007 à 16:35:41  profilanswer
 

n°1521874
elpacifica​tor
Posté le 28-02-2007 à 17:15:26  profilanswer
 

Code :
  1. def facto( n ):
  2.     if n == 0:
  3.         return 1
  4.     return n * facto( n-1 )
  5. print facto(15)


Message édité par elpacificator le 28-02-2007 à 17:16:03
n°1521889
Riot
Buy me a riot
Posté le 28-02-2007 à 17:38:00  profilanswer
 

Je vois bien que "ça marche" mais je ne saisis pas la différence.

n°1521913
masklinn
í dag viðrar vel til loftárása
Posté le 28-02-2007 à 18:32:26  profilanswer
 

...

 

Tu réalises que "n" est local à ta fonction?

 

Pour quelle raison pourrais tu y accéder depuis l'extérieur de ta fonction? C'est complètement illogique...

 

Sans même parler du fait que toute la fonction est incorrecte, si on teste "facto(3)" avec ton truc il nous explose à la tronche...

Message cité 1 fois
Message édité par masklinn le 28-02-2007 à 18:34:03

---------------
I mean, true, a cancer will probably destroy its host organism. But what about the cells whose mutations allow them to think outside the box, and replicate and expand beyond their wildest dreams by throwing away the limits imposed by overbearing genetic r
n°1521973
Riot
Buy me a riot
Posté le 28-02-2007 à 21:15:10  profilanswer
 

masklinn a écrit :

...
 
Tu réalises que "n" est local à ta fonction?
 
Pour quelle raison pourrais tu y accéder depuis l'extérieur de ta fonction? C'est complètement illogique...
 
Sans même parler du fait que toute la fonction est incorrecte, si on teste "facto(3)" avec ton truc il nous explose à la tronche...


Non, tu n'as pas compris ce que je voulais dire. Voici du code :

Code :
  1. def facto( n ):
  2.     if n == 0:
  3.         return 1
  4.     print n * facto( n-1 )
  5.     print n
  6. facto(3)


 
Ici le dernier print n ne m'affiche pas Bon je viens de comprendre pourquoi le print n ne m'affiche pas ce que j'attendais.
D'ailleurs je viens aussi de comprendre le reste, c'est tellement évident  [:pingouino]  
 
Merci à tous les deux. :jap:

n°1521978
masklinn
í dag viðrar vel til loftárása
Posté le 28-02-2007 à 21:48:12  profilanswer
 

:D


---------------
I mean, true, a cancer will probably destroy its host organism. But what about the cells whose mutations allow them to think outside the box, and replicate and expand beyond their wildest dreams by throwing away the limits imposed by overbearing genetic r

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  Python

  [python] erreur que je ne comprends pas

 

Sujets relatifs
[python]Pair et impair[python]Pocket pc
.[RESOLU] 1 erreur de validation (x)HTML 1.0 Transitional
Erreur Inconnueerreur de parsing XML
erreur cookiesErreur SDL
Erreur Win32[python] c_char_p ???
Plus de sujets relatifs à : [python] erreur que je ne comprends pas


Copyright © 1997-2025 Groupe LDLC (Signaler un contenu illicite / Données personnelles)