comment multiplier tous les nombres dans une séquence (python)

Comme si je disais le programme n=10, comment pourrais-je faire retour 10*9*8*7*6*5....1?

J'ai pensé à une boucle while mais je sens que j'ai foiré quelque part car il n'a pas la somme de tous les chiffres de la séquence.

Mon code ressemble à ceci

def product(n):
  i=n
  a=n-1
  while a>0:
    return i * a
    b=i * a
    a=a-1
    i=i-1

Sont là les meilleures façons de le faire sans l'aide de la récursivité? Désolé pour le incroyablement question de débutant, mais je suis en train de m'enseigner comment code. Vous devez commencer quelque part!

Merci!

Somme ou de se multiplier? PS vous êtes returning première chose dans votre boucle...
multipliez-vous,comment puis-je la faire revenir à tout?
Lorsque vous return vous n'êtes pas à laisser tout le reste de la boucle de code à exécuter, et vous êtes seulement en boucle une fois.
donc, en mettant la valeur de retour à l'extérieur de la boucle devrait résoudre cela? Je suis confus sur la façon de la boucle while est de multiplier tous les nombres. Comme je ressens avec mon code actuel, à chaque fois qu'il boucle sa va réinitialiser la valeur, si cela a un sens.
Vous pouvez utiliser reduce si vous le souhaitez, mais si le but est d'apprendre que ce n'est probablement pas très bon. reduce(range(1, n+1), lambda a, b: a*b) Ou math.factorial

OriginalL'auteur Billy Thompson | 2012-09-02