Fonctions Python

La fonction est un bloc de code qui s'exécute uniquement au moment de l'appel.

Vous pouvez transmettre des données (dites paramètres) à la fonction.

La fonction peut renvoyer des données en tant que résultat.

créer une fonction

En Python, utiliser def Définir une clé :

Exemple

def my_function():
  print("Hello from a function")

Appel de la fonction

Pour appeler une fonction, utilisez le nom de la fonction suivi de parenthèses :

Exemple

def my_function():
  print("Hello from a function")
my_function()

Exécuter l'exemple

Paramètres

Les informations peuvent être transmises comme paramètres à la fonction.

Les paramètres sont spécifiés dans les crochets après le nom de la fonction. Vous pouvez ajouter un nombre quelconque de paramètres, à condition de les séparer par des virgules.

L'exemple suivant montre une fonction avec un paramètre (fname). Lorsque nous appelons cette fonction, nous transmettons un nom, que nous utilisons à l'intérieur de la fonction pour imprimer le nom complet :

Exemple

def my_function(fname):
  print(fname + " Gates")
my_function("Bill")
my_function("Steve")
my_function("Elon")

Exécuter l'exemple

Valeur par défaut des paramètres

L'exemple suivant montre comment utiliser la valeur par défaut des paramètres.

Si nous appelons la fonction sans paramètres, nous utilisons la valeur par défaut :

Exemple

def my_function(country = "China"):
  print("Je suis de " + country)
my_function("Sweden")
my_function("India")
my_function()
my_function("Brazil")

Exécuter l'exemple

Transmettre avec une liste

Les paramètres que vous envoyez à la fonction peuvent être de n'importe quel type de données (chaînes, nombres, listes, dictionnaires, etc.) et seront traités comme le même type de données à l'intérieur de la fonction.

Par exemple, si vous envoyez une liste en tant que paramètre, elle restera une liste (liste) lorsqu'elle atteindra la fonction :

Exemple

def my_function(food):
  for x in food:
    print(x)
fruits = ["apple", "banana", "cherry"]
my_function(fruits)

Exécuter l'exemple

Valeur de retour

Pour que la fonction retourne une valeur, utilisez return Instruction :

Exemple

def my_function(x):
  return 5 * x
print(my_function(3))
print(my_function(5))
print(my_function(9))

Exécuter l'exemple

Paramètres nommés

Vous pouvez également utiliser la syntaxe key = value pour envoyer des paramètres.

L'ordre des paramètres n'a pas d'importance.

Exemple

def my_function(child3, child2, child1):
  print("Le plus jeune enfant est " + child3)
my_function(child1 = "Phoebe", child2 = "Jennifer", child3 = "Rory")

Exécuter l'exemple

Dans les documents Python, le terme "paramètres nommés" est généralement abrégé en kwargs.

Paramètres arbitraires

Si vous ne savez pas combien de paramètres vous allez transmettre à votre fonction, ajoutez * avant le nom du paramètre dans la définition de la fonction.

De cette manière, la fonction recevra un tuple de paramètres et pourra accéder aux éléments en conséquence :

Exemple

Si le nombre de paramètres est inconnu, ajoutez * avant le nom du paramètre :

def my_function(*kids):
  print("Le plus jeune enfant est " + kids[2])
my_function("Phoebe", "Jennifer", "Rory")

Exécuter l'exemple

Instructif pass

La définition de la fonction ne peut pas être vide, mais si vous avez écrit une définition de fonction sans contenu pour une raison quelconque, utilisez l'instruction pass pour éviter les erreurs.

Exemple

def myfunction:
  pass

Exécuter l'exemple

Récursion

Python accepte également la récursion de fonctions, ce qui signifie que les fonctions définies peuvent appeler elles-mêmes.

La récursion est une notion courante en mathématiques et en programmation. Cela signifie que la fonction appelle elle-même. L'avantage de cela est de pouvoir accéder en boucle aux données pour obtenir un résultat.

Les développeurs doivent être très prudents en matière de récursion, car il est facile d'écrire une fonction qui ne cesse jamais de s'exécuter, ou qui utilise une mémoire ou une capacité de traitement excessive. Mais, une fois correctement écrite, la récursion peut être une méthode de programmation très efficace et mathématiquement élégante.

Dans cet exemple,tri_recursion() Est une fonction définie comme appelant elle-même ("recurse"). Nous utilisons la variable k comme données et la réduisons à chaque itération de récursion (-1). La récursion se termine lorsque la condition n'est pas supérieure ou égale à 0 (par exemple, lorsque c'est 0).

Pour les nouveaux développeurs, il peut être nécessaire de prendre un certain temps pour comprendre le fonctionnement, et le meilleur moyen est de le tester et de le modifier.

Exemple

Exemple de récursion

def tri_recursion(k):
  if(k>0):
    result = k+tri_recursion(k-1)
    print(result)
  else:
    result = 0
  return result
print("\n\nRésultats d'exemple de récursion")
tri_recursion(6)

Exécuter l'exemple