
Voici une proposition de fonction:
\begin{python}
def somme(n):
    s = 0
    for k in range(1,n+1):
        produit = 1
        for p in range(1,k+1): produit = produit * p
        s = s + 1 / produit

    return s
\end{python}
%On commence par définir la somme qu'il faudra renvoyer: on lui attribue la valeur 0 au départ.
%
%\medskip
%
%Ensuite (ligne 3), on fait une boucle (de variable \texttt{k}) pour exécuter $n$ fois des instructions pour calculer chaque terme (car dans la somme demandée, il y a $n$ termes).
%
%\medskip
%
%Quand on entre dans cette boucle, on commence (ligne 4) par affecter la valeur \og 1 \fg{} à la variable \texttt{produit} (qui désignera le produit $1\times2\times\cdots\times k$, c'est-à-dire le dénominateur du\linebreak $k$-ième terme de la somme). Pour calculer ce produit, on fait une autre boucle (de variable~\texttt{p}, ligne 5); dans cette boucle, on prend la valeur stockée dans \texttt{produit} et on la multiplie par \texttt{p}, nombre variant de 1 à $k$. Au final, on obtient bien que \texttt{produit} contient le produit souhaité.
%
%\medskip
%
%Cette dernière boucle étant finie, on ajoute (ligne 7) à la valeur de \texttt{s} la fraction \texttt{1/produit}, c'est-à-dire la fraction $\dfrac{1}{1\times2\times\cdots\times k}$, qui est le $k$-ième terme de la somme demandée.
