Probleme de plateforme?


#1

Je vous joins mon code et l'erreur mais on m'a dejà repondu que ça ne vient pas du code...
je dois contacter la plate-forme.
merci de m'aider...

def factorielle(x):
if (x == 0):
return 1
else:
return x * factorielle(x-1)

message d'aide que j'ai reçu
Confirm, able to reproduce this error. The message is SCT generated, not a console (interpreter) thrown error caused by your code. The error looks like an interpreter error which must be against the SCT code, not the code in the editor.

Google Translate
Confirmer, capable de reproduire cette erreur. Le message est généré SCT, pas une console (interprète) erreur renvoyée causée par votre code. L'erreur ressemble à une erreur d'interprétation qui doit être contre le code SCT, pas le code dans l'éditeur.
Sending to Platform Issues category.

Envoi à la catégorie des questions Plate-forme.


#2

@textsolver97036

Bonjour,

Pourrais-tu nous donner le lien à l'exercise juste question de me situer un peu sur le problème.


#3

https://www.codecademy.com/fr/courses/python-intermediate-fr-FR-py0yl/0/5?curriculum_id=5370f030fed2a866a2000001

je pense que c'est le lien qu'il te faut.
merci


#4

@textsolver97036

Je ne pense pas que c'est une erreur de plateforme. Le problème vient de comment tu as réalisé ta fonction.

  1. Nous créons la fonction factorielle qui ne prend qu'une seule entrée x
  2. On créé la variable résultat qu'on va imprimer lorsque nous avons calculé le résultat.
  3. Si l'entrée x est plus grand que 0
  4. Nous créons une boucle avec while qui va exécuter le code tant que x est plus grand que 0.
  5. Le code à l'intérieur de la boucle va rétablir la valeur de la variable résultat à lui-même fois x
  6. Avant de fermer la boucle nous allons rétablir la valeur de x à lui-même moins un afin de ne pas générer une boucle infinie.
  7. Après la boucle, encore à l'intérieur de la déclaration if, nous retournons la variable résultat

J'espère que cela t'as pu aider :slight_smile:


#5

Sniff... ça ne veut pas fonctionner....merci de m'avoir répondu, je rame depuis plusieurs jours!

def factorielle(x):
variable = 1
if x>0 :
while x>0:
variable = variable * x
x -=1
return variable

Oups, merci de réessayer. Votre fonction a échoué sur 1 comme entrée car votre fonction indique "global name 'reponse' is not defined" error.


#6

@textsolver97036

Sois sûre que tu as fait tes alinéas. Le language Python est vraiment stricte là-dessus:

def factorielle(x):
     variable = 1
     if x>0 :
        while x>0:
           variable = variable * x
           x -=1
        return variable

#7

j'ai bien vérifié, j'ai bien fait l'indentation...
mais il ne veut rien savoir!!


#8

@textsolver97036

Désolé, j'ai fait moi-même une erreur d'indentation. La déclaration return devrait être au même niveau que la déclaration if

def factorielle(x):
     variable = 1
     if x>0 :
        while x>0:
           variable = variable * x
           x -=1
     return variable

#9

rien à faire!!
toujours le même message d'erreur

Oups, merci de réessayer. Votre fonction a échoué sur 1 comme entrée car votre fonction indique "global name 'reponse' is not defined" error.


#10

@textsolver97036

Moi aussi ça me lance l'erreur...

Mais bon, essayons une nouvelle méthode!

  1. On importe le module math histoire de ne pas se compliquer la vie.

from math import *
  1. On créé la fonction factorielle avec x comme entrée

def factorielle(x):
  1. À l'intérieur de la fonction on retourne factorielle(x) en s'assurant que le math. est en avant de cette fonction pour qu'elle fonctionne.

return math.factorielle(x)

J'espère que cela fonctionne!