
Les fonctions originales en Python, souvent appelées fonctions spécifiques ou personnalisées, sont celles que vous pouvez écrire vous-même pour résoudre des problèmes précis. Ces fonctions ne sont pas “natives” ou “built-in” mais plutôt créées par l’utilisateur en fonction des besoins.
Une fonction anonyme apporte plus de lisibilité dans le code : elle est donc utilisée lorsqu'une fonction prend comme argument d'autres fonctions.
Exemple :
maliste = [1, 2, 3, 87, 40, 49, 303, 34, 32, 98]
liste_filtree = list(filter(lambda x: x > 10, maliste)) # retourne [87, 40, 49, 303, 34, 32, 98]
Syntaxe :
def mafonction(param1, param2, ...):
'''chaine littérale décrivant ce que fait la fonction :
print(mafonction.__doc__)
retourne la chaine'''
bloc de code
mafonction(arg1, arg2, ...) # appel de la fonction (chaque argument passé à la fonction doit correspondre au paramètre attendu)
NB : les paramètres sans valeur par défaut devront obligatoirement être placés en début de fonction.
def calculSomme(a, b=0, prenom='Pierre'):
print('Bonjour', prenom, ', le résultat est :', a+b)
calculSomme(5) # retournera : Bonjour Pierre, le résultat est : 5
calculSomme(4, 7, 'Marc') # retournera : Bonjour Marc, le résultat est : 11
NB : lors de l'appel de la fonction, les arguments nommés devront être passés en dernier.
def trouveValeur(prenom, x, tableau):
if x in tableau:
resultat = True
else:
resultat = False
print(prenom, 'voici le résultat de la recherche :', resultat)
maliste = [2, 5, 7, 10, 40]
valCherchee = 7
prenom = 'Pierre'
trouveValeur(prenom, tableau=maliste, x=valCherchee)
def trouveValeur(*args):
for listeArguments in args:
print(listeArguments)
if args[2] in args[1]:
resultat = True
else:
resultat = False
print(args[0], 'voici le résultat de la recherche :', resultat)
maliste = [2,5,7,10,40]
valCherchee = 7
prenom = 'Pierre'
trouveValeur(prenom, maliste, valCherchee)
def trouveValeur(**kwargs):
if kwargs['x'] in kwargs['tableau']:
resultat = True
else:
resultat = False
print(kwargs['user'], 'voici le résultat de la recherche :', resultat)
maliste = [2, 5, 7, 10, 40]
valCherchee = 7
prenom = 'Pierre'
trouveValeur(tableau=maliste, x=valCherchee, user=prenom)
Le mot-clé yield fonctionne de la même manière que le mot-clé return mais, au lieu de retourner une variable, il retourne un générateur. Cette fonctionnalité permet de gérer une fonction qui retournerait un ensemble important de valeurs.
def genererMultiplicationPar2():
maliste = range(10)
for i in maliste:
yield i*2
monGenerateur = genererMultiplicationPar2()
for i in monGenerateur:
print(i) # retourne : 0 2 4 6 8 10 12 14 16 18