Les sous-programmes

Déclaration des sous-programmes

  • En programmation, un sous-programme est généralement appelé une fonction.
  • Une fonction est déclarée avec le mot-clé def suivi du nom de la fonction et des parenthèses ().
  • Les instructions à exécuter sont ensuite écrites sous cette déclaration, indentées d’une tabulation.
  • Comme pour les structures conditionnelles (if) ou les boucles (for, while), il ne faut pas oublier le : qui est primordial.
  • Donnez un nom pertinent à votre fonction qui permettra à un futur programmeur de comprendre le contenu de votre fonction.
# Déclaration d'une fonction nommée bonjour
def bonjour():
    print("Bonjour le monde!")

Appel des sous-programmes

  • Lorsqu’on veut utiliser une fonction, on dit qu’on appelle la fonction.
  • Pour appeler une fonction, il suffit d’écrire son nom suivi de parenthèses ().
# Appel (utilisation) de la fonction bonjour
bonjour()
Bonjour le monde!

Passage de paramètres

  • Les fonctions peuvent prendre des paramètres, qui sont des valeurs passées à la fonction lors de son appel.
  • Les paramètres sont précisés entre les parenthèses d’une fonction, lors de la déclaration de la fonction.
# Déclaration de la fonction saluer
def saluer(prenom):
    print(f"Bonjour {prenom}!")

# Demander à un utilisateur de saisir son prénom. Ce prénom est passé en paramètre pour être utilisé dans la fonction.
prenom = str(input("Veuillez saisir votre prénom : "))
saluer(prenom) 

Dans le cas où l’utilisateur saisie Alexandre, le résultat est celui ci-dessous :

Bonjour Alexandre!

Les paramètres par défaut

  • Les paramètres par défaut dans les fonctions en Python permettent de donner une valeur par défaut à un ou plusieurs paramètres.

  • Cela signifie que si un argument n’est pas fourni lors de l’appel de la fonction, le paramètre prendra la valeur par défaut spécifiée.

  • Les paramètres par défaut sont très utiles pour rendre les fonctions plus flexibles et faciles à utiliser, car ils permettent de ne pas spécifier certains arguments si les valeurs par défaut conviennent.

  • Voici un exemple simple pour illustrer cela :

def salutation(prenom, message="Bonjour"):
    print(f"{message}, {prenom}!")

# Appel de la fonction avec 1 argument
prenom = str(input("Veuillez saisir votre prénom : "))
salutation(prenom)

Dans le cas où l’utilisateur saisie Alexandre, le résultat est celui ci-dessous :

Bonjour Alexandre!
def salutation(prenom, message="Bonjour"):
    print(f"{message}, {prenom}!")

# Appel de la fonction avec les deux arguments
prenom = str(input("Veuillez saisir votre prénom : "))
salutation(prenom, "Allo")

Dans le cas où l’utilisateur saisie Alexandre, le résultat est celui ci-dessous :

Allo Alexandre!

Explication

  • Dans cet exemple, la fonction salutation prend deux paramètres : nom et message.
  • Le paramètre message a une valeur par défaut de "Bonjour".
  • Lorsque la fonction est appelée avec les deux arguments, elle affiche “Salut, Alexandre!”.
  • Lorsque la fonction est appelée avec seulement le premier argument, elle utilise la valeur par défaut pour message et affiche “Bonjour, Alexandre!”.
  • L’ordre dans lequel les paramètres sont passés doivent correspondre à l’ordre défini dans la fonction.
  • Le nom des paramètres ne sont pas obligatoirement les mêmes que ceux dans le code principal.
Attention !

Il faut toujours mettre les paramètres par défaut à la fin lors de la création de votre fonction.

Retour des sous-programmes

  • Une fonction peut renvoyer une valeur pour que cette valeur soit utilisée dans le reste du programme.
  • Dans ce cas précis, le résultat devra être stocker dans une variable qui sera déclarée avec l’appel de la fonction.
  • Pour faire en sorte qu’une fonction renvoie une valeur, on utilise le mot clé return.
  • L’instruction avec le mot clé return DOIT être la dernière de la fonction. En d’autres mots, il ne peut pas avoir d’autres lignes de code dans une fonction, APRÈS l’instruction return
  • Il faut éviter d’utiliser plusieurs return dans une fonction.
# Déclaration de la fonction carre
def carre(nombre):
    nombre_au_carre = nombre ** 2
    return nombre_au_carre

# Utilisation de la fonction pour calculer le carré de 5 et stocker le résultat dans la variable x
nombre = 5
x = carre(nombre)  # x vaut maintenant 25
print(f"{nombre}² = {x}") # affiche 25
Attention !

Les variables déclarées dans une fonction sont accessibles uniquement dans celle-ci.
Dans notre exemple ci-dessus, la variable nombre_au_carre ne pourra pas être réutilisée dans une autre cellule. nombre_au_carre appartient à la fonction carre().

Atelier

Atelier sur les sous-programmes