Python: Fonctions: Difference between revisions

From Wiki Cours
Jump to navigation Jump to search
No edit summary
Line 4: Line 4:


Deux options suivant la complexité
Deux options suivant la complexité
1. 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
1. 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
<source lang="py">
<source lang="py">

Revision as of 22:49, 20 August 2015

<--Sommaire

Définir une fonction

Deux options suivant la complexité

1. 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

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 ce type de fonction en argument.

Appliquer une fonction à une liste

une suppose une fonction f() définie, par exemple

f = lambda x: x**2
A = range(10)# initialisation d'une liste

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)

passage d'arguments d'une fonction