You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
\phmnote{Proposition de mentionner ici les autres caractéristiques
96
-
\og avancées\fg{} des fonctions : documentation, instruction
97
-
\ci{return}, renvoyer plusieurs valeurs. (Mais pas le fait qu'une
98
-
fonction puisse admettre plusieurs paramètres.) Ajouter un exemple
99
-
d'utilisation d'une fonction renvoyant plusieurs valeurs.}
100
+
Il peut y avoir plusieurs paramètres en entrée, il peut y avoir plusieurs résultats en sortie.
101
+
100
102
101
103
\mybox{
102
104
\myfigure{0.7}{
103
105
\tikzinput{../fonctions/fig-fonctions-cours-3}
104
106
} }
105
107
108
+
Voici un exemple d'une fonction avec deux paramètres et deux sorties.
109
+
\begin{lstlisting}
110
+
def somme_produit(x,y):
111
+
""" Calcule la somme et le produit de deux nombres. """
112
+
S = x + y # Somme
113
+
P = x*y # Produit
114
+
return S, P # Renvoie les résultats
115
+
116
+
# Appel de la fonction
117
+
som, prod = somme_produit(3,7) # Résultats
118
+
print("Somme :",som) # Affichage
119
+
print("Produit :",prod) # Affichage
120
+
\end{lstlisting}
121
+
122
+
\begin{itemize}
123
+
\item Très important ! Il ne faut pas confondre afficher et renvoyer une valeur.
124
+
L'affichage (par la commande \ci{print()}) affiche juste quelque chose à l'écran. La plupart des fonctions n'affichent rien, mais renvoient une valeur (ou plusieurs). C'est beaucoup plus utile car cette valeur peut être utilisée ailleurs dans le programme.
125
+
126
+
127
+
\item Dès que le programme rencontre l'instruction \ci{return}\index{return@\ci{return}}\index{fonction!return@\ci{return}}, la fonction s'arrête et renvoie le résultat. Il peut y avoir plusieurs fois l'instruction \ci{return} dans une fonction mais une seule sera exécutée. On peut aussi ne pas mettre d'instruction \ci{return} si la fonction ne renvoie rien.
128
+
129
+
\item Dans les instructions d'une fonction, on peut bien sûr faire appel à d'autres fonctions !
130
+
131
+
% \item Il est important de bien commenter tes programmes. Pour documenter une fonction, tu peux décrire ce qu'elle fait en commençant par un \emph{docstring}\index{docstring@\emph{docstring}}\index{fonction!docstring@\emph{docstring}}, c'est-à-dire une description (en français) entourée par trois guillemets : \ci{""" Ma fonction fait ceci et cela. """} à placer juste après l'entête.
\item Teste ton algorithme à la main avec papier/crayon p our les cas faciles.
386
414
387
-
\item N'hésite pas à afficher les valeurs des variables, pour voir leur évolution au cours du temps. Par exemple \ci{print(i,liste[i])} dans une boucle. \phmnote{Ce n'est pas une bonne pratique. L'usage d'un dévermineur permettant de visualiser les valeurs associées aux variables et l'exécution pas à pas est à conseiller.}
415
+
\item N'hésite pas à afficher les valeurs des variables, pour voir leur évolution au cours du temps. Par exemple \ci{print(i,liste[i])} dans une boucle.
388
416
417
+
\item Une meilleur méthode pour inspecter le code est de visualiser les valeurs associées aux variables à l'aide des fonctionnalité \emph{debug} de ton éditeur \Python{} favoris. Il est aussi possible de faire un exécution pas à pas.
418
+
389
419
\item Est-ce que le programme fonctionne avec certaines valeurs et pas d'autres ? As-tu pensé aux cas extrêmes ? Est-ce que $n$ est nul alors que ce n'est pas autorisé ? Est-ce que la liste est vide, alors que le programme ne gère pas ce cas ? etc.
0 commit comments