Python: Fonctions: Difference between revisions
Jump to navigation
Jump to search
Wiki-cours (talk | contribs) |
Wiki-cours (talk | contribs) |
||
Line 5: | Line 5: | ||
#définition d'une fonction: deux options suivant la complexité | #définition d'une fonction: deux options suivant la complexité | ||
<source lang="py"> | <source lang="py"> | ||
# définition usuelle, return permet que la fonction renvoie un résultat | |||
# mais ce n'est pas obligatoire, la fonction peut simplement manipuler | |||
# les données en entrée | |||
def f(x): | def f(x): | ||
return x**2 | return x**2 | ||
# on peut également définir une fonction lambda ou fonction anonyme selon | |||
f = lambda x: x**2 | f = lambda x: x**2 | ||
# dans l'exemple ci-dessus, le caractère anonyme n'est pas très clair car | |||
# on lui a affecté la variable f pour l'utiliser avec f(x) comme précédemment | |||
# le caractère anonyme apparaît lorsqu'on passe une fonction en argument. | |||
</source> | </source> | ||
Revision as of 11:40, 14 July 2015
définir une fonction
- définition d'une fonction: deux options suivant la complexité
# définition usuelle, return permet que la fonction renvoie un résultat
# mais ce n'est pas obligatoire, la fonction peut simplement manipuler
# les données en entrée
def f(x):
return x**2
# on peut également définir une fonction lambda ou fonction anonyme selon
f = lambda x: x**2
# dans l'exemple ci-dessus, le caractère anonyme n'est pas très clair car
# on lui a affecté la variable f pour l'utiliser avec f(x) comme précédemment
# le caractère anonyme apparaît lorsqu'on passe une fonction en argument.
appliquer une fonction à une liste
# une suppose une fonction f() définie, par exemple
f = lambda x: x**2
# initialisation d'une liste
A = range(10)
# une première version lourde mais qui ressemble au C
B = [ 0.0 ]*len(A)
for i in range(len(A)):
B[i] = f(A[i])
# une version similaire mais écrite en ligne
B = [ f(A[i]) for i in range(len(A)) ]
# le même résultat en itérant directement sur les éléments de A
B = [ f(a) for a in A ]
# en utilisant la fonction map du standard Python (générique)
B = map(f,A)
# enfin le tout en une ligne, possible uniquement avec une définition
# faite par le mot-clé lambda
B = map(lambda x: x**2,A)