Cours interactif sur les notions fondamentales des sous-programmes en Python (fonctions, procédures, paramètres, tableaux).
Public cible : les élèves des lycées tunisiens
Simulation : https://aminefr85.github.io/sous-programmes-python/
- Importation de la bibliothèque numpy
- Définition d'une fonction
- Définition d'une procédure
- Entête de définition
- Paramètres formels
- Paramètres effectifs
- Variable locale
- Variables globales
- Programme principal
- Déclaration d'un tableau
La bibliothèque numpy contient plusieurs fonctions, y compris array qui nous permet de déclarer des tableaux.
Un tableau est un objet qui contient un nombre fini de valeurs de mêmes types.
La définition d'un module se fait par le mot clé def.
Puisque ce module contient un return à la fin, il est considéré comme une fonction.
def ma_fonction(parametre):
# corps de la fonction
return resultatLa définition d'un module se fait par le mot clé def.
Puisque ce module ne contient pas de return à la fin, il est considéré comme une procédure.
def ma_procedure(parametre):
# corps de la procédure
# pas de returnC'est l'entête de définition d'un module. L'entête contient :
- Le nom du module
- Les différentes paramètres formels (Entrées)
def nom_module(param1, param2, ...):Les noms de paramètres formels ne sont pas intéressants en eux-mêmes, mais plutôt :
- Le nombre de paramètres
- L'ordre des types de ces paramètres
qui doivent être en accord avec les paramètres effectifs.
Les valeurs de ces paramètres vont remplacer les paramètres formels lors de l'appel.
Exemple :
Le professeur de Mathématiques vous propose la fonction suivante :
Soit f(x) = x² puis il vous demande de calculer f(2)
x: est dit paramètre formel — le nom ne change rien au fonctionnement def2: est dit paramètre effectif — le changement de cette valeur implique un changement de résultat def
Une variable locale est une variable déclarée à l'intérieur d'un module. Elle n'est accessible que dans ce module et n'est pas visible depuis l'extérieur.
def ma_fonction():
variable_locale = 10 # visible uniquement ici
return variable_localeTout objet précédé par le mot global devient globale et sera connu par tous les autres modules ainsi que le programme principal.
compteur = 0 # variable globale
def incrementer():
global compteur
compteur += 1Le programme principal (ou programme appelant) est le programme maestro : c'est celui qui fait appel aux autres modules et qui organise l'envoi et la réception des données entre les différentes parties du programme.
Cet acheminement des informations entre PP et modules s'appelle passage de données.
On distingue deux modes de passage :
Le programme appelant envoie une copie de la valeur du paramètre effectif au module appelé. Toute modification apportée à cette valeur ne concerne plus le programme appelant.
Exemple : L'enseignant distribue les feuilles du TP. Les feuilles du TP ne sont pas à remettre — dans ce cas, elles sont passées par valeur.
Le programme appelant envoie non seulement la valeur du paramètre effectif, mais aussi l'adresse du paramètre lui-même. Alors toute modification dans le programme appelé affecte le programme appelant.
Exemple : L'enseignant distribue les feuilles de l'examen. Les feuilles de l'examen sont à remettre à l'enseignant — dans ce cas, elles sont passées par adresse (ou par variable).
Pour déclarer un tableau avec numpy, on utilise la syntaxe suivante :
t = array( [type] * taille_max )| Description | Code |
|---|---|
| Tableau de 24 degrés de température en Tunisie | t = array( [int] * 24 ) |
| Tableau de 30 noms d'élèves | t = array( [str] * 30 ) |
| Tableau de 26 alphabets | t = array( [str()] * 26 ) |
| Tableau de 10 booléens | t = array( [bool] * 10 ) |
Remarque : On a déclaré ici un tableau de 20 réels au maximum avec
array( [float] * 20 ).
| Concept | Description |
|---|---|
def |
Mot clé pour définir un module (fonction ou procédure) |
| Fonction | Module avec return à la fin |
| Procédure | Module sans return à la fin |
| Paramètre formel | Variable dans la définition du module |
| Paramètre effectif | Valeur passée lors de l'appel du module |
| Variable locale | Accessible uniquement dans le module |
| Variable globale | Accessible par tous les modules (global) |
| Passage par valeur | Copie de la valeur — l'original n'est pas modifié |
| Passage par adresse | Référence à la variable — l'original peut être modifié |
Cours créé avec iSpring — Python sous-programmes
Amine Farjallah