Le triangle de pascal.

ilyan174 -  
M3NSONG3 Messages postés 615 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour à tous, j'ai un code à faire sur le triangle de pascal et les consignes sont les suivantes :

- Vous devez écrire une fonction factorielle(). Elle prend en paramètre un entier n quelconque et retourne la factorielle de cet entier (n!).

- Écrire une fonction parmi() qui prend en paramètre des nombres entiers i et j et retourner "j parmi i".
On sait que : "j parmi i" = i! / (j!×(i−j)!)

- Écrire une fonction chaine_triangle_Pascal() qui prend n comme paramètre et qui renvoie une chaîne de caractère chaine.

Je ne comprend pas pourquoi dans mon code : on m'explique que la syntaxe est invalide dans la ligne 2 et 3. Je n'ai pour l'instant fait que le premier tiret. Pourriez vous m'aider ? Merci beaucoup !!


def factorielle(n):
  n=input("Entrez un nombre entier")
  return n!


Configuration: Windows / Chrome 79.0.3945.79
A voir également:

5 réponses

CrazyGeekMan Messages postés 873 Date d'inscription   Statut Membre Dernière intervention   139
 
Bonsoir,

Le signe ! est intégré au langage python ?
0
ilyan174
 
oui !
0
CrazyGeekMan Messages postés 873 Date d'inscription   Statut Membre Dernière intervention   139 > ilyan174
 
Mauvaise réponse.
Une petite recherche te suffirait pour répondre à ta question ! http://python.jpvweb.com/python/mesrecettespython/doku.php?id=factorielle

Bien évidemment que ce n'est pas la meilleure façon d'apprendre un langage, d'abord on coince et on réfléchit, si on sèche complètement on fait une recherche.

Bonne soirée
0
yg_be Messages postés 23541 Date d'inscription   Statut Contributeur Dernière intervention   Ambassadeur 1 584
 
bonjour, où as-tu lu que tu pouvais ainsi utiliser le point exclamation en python?
par ailleurs, pourquoi la ligne 2?
est-ce ton premier exercice en python?
0
ilyan174
 
Ce n'est pas mon premier exercice en python mais mon professeur à écrit la consigne telle qu'elle alors il se peut que j'ai confondu le n! avec une phrase exclamative...
0
trifou
 
Bonsoir,

- Vous devez écrire une fonction factorielle(). Elle prend en paramètre un entier n quelconque et retourne la factorielle de cet entier (n!).

A ton niveau, tu devrais tout de même savoir comment se calcule la factorielle d'un nombre.

Et au cas où --> https://fr.wikipedia.org/wiki/Factorielle
0
ccm81 Messages postés 10909 Date d'inscription   Statut Membre Dernière intervention   2 433
 
Bonjour

Tu devrais commencer par séparer ton programme principal (qui va utiliser ta fonction) et l'implémentation de ta fonction

def facto(n):
    .... à toi d'écrire le code qui calcule fff
    return fff

# programme principal
n = int(input("donner un entier n :  "))
f = facto(n)
print("factorielle ", n, " = ", f)


Cdlmnt
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
M3NSONG3 Messages postés 615 Date d'inscription   Statut Membre Dernière intervention   162
 
Désolé, je tombe sur le sujet un peu tard, mais comme personne n'a vraiment donné de solution... Je me permet de t'apporter une aide, qui pourra peut-être aider d'autres personnes après... Qui sait ?

Tu as deux grandes méthodes de le faire :
- Une fonction récursive, c'est à dire une fonction qui va s'appeler elle même, dans ce cas il faut revenir à la définition de la factorielle et on retrouve vite la solution :
0! = 1
n! = n*(n-1)!

-Une boucle qui marchera sensiblement de la même façon...

Bonne chance et désolé de répondre si tard.
0
trifou
 
Bonjour,

On utilise la récursivité que lorsqu'on n'a pas d'autre choix, ici il n'y a AUCUN intérêt à utiliser une récursivité alors qu'une bête boucle for fait le job.
0
M3NSONG3 Messages postés 615 Date d'inscription   Statut Membre Dernière intervention   162 > trifou
 
J'ai précisé les deux, car c'est pas rare de voir des profs demander de faire des fonctions récursives pour aborder le principe... Mais je suis bien d'accord avec toi, et j'aurais dû préciser d'utiliser la boucle si il n'y a aucune contre-indication !
Merci.
0