Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1703 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

---------------
Stick a parrot in a Call of Duty lobby, and you're gonna get a racist parrot. — Cody
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


---------------
Stick a parrot in a Call of Duty lobby, and you're gonna get a racist parrot. — Cody

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-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR