4. Paramétrer

Dans ce chapitre, nous revenons sur le concept de la fonction. Dans le chapitre 2 nous avons vu la fonction comme une façon de donner un nom à une séquence d’instructions. Ici nous allons voir comment nous pouvons ajouter un ou plusieurs paramètres à une fonction. Nous allons voir que :

  • l’expression def rect(d, e): permet de définir une fonction avec deux paramètres,

  • les paramètres d et e sont des variables locales valides uniquement à l’intérieur de la définition de fonction,

  • ces paramètres prennent une valeur au moment de l’appel de la fonction avec, par exemple, rect(50, 30).

Question

En Python, def est un raccourci pour




Paramétrer une fonction

Jusqu’à maintenant, notre rectangle était d’une taille fixe. La fonction rectangle() du chapitre 2 dessine toujours un rectangle de 160 x 100 pixels. Il faudrait faire une nouvelle fonction rectangle2() si on voulait dessiner une taille différente.

Il serait très utile de disposer d’une fonction de la forme rectangle(d, e) qui puisse dessiner des rectangles de largeur et hauteur variable. C’est possible en spécifiant des paramètres pour la fonction. Un paramètre de fonction est une variable locale qui peut être utilisée dans sa définition.

Lors de l’appel de la fonction, nous donnons des valeurs à la fonction. Ces valeurs sont les arguments de la fonction.

Exercice

Aujoutez un deuxième rectangle avec d’autres dimensions.

La fonction losange(d, a) a comme paramètre la longueur et le premier angle. Le deuxième angle du losange est calculé automatiquement.

La fonction polygone(d, n) a comme paramètre la distance du côté et le nombre de sommets.

Dessiner une maison

Revenons à notre fonction pour dessiner une maison.

Exercice

Ajoutez une maison de taille 100.

Positionner la maison

La fonction goto(x, y) place la tortue à la position (x, y). Cette fonction permet de positionner notre maison à un endroit précis. Pour désigner cette position, nous utilisons la variable p qui consiste en une paire (x, y) de coordonnées.

La fonction write(p) écrit la position p sur le canevas, à la position actuelle de la tortue. Pour marquer ce point de positionnement, nous ajoutons un point (dot) comme marqueur.

Exercice

Aujoutez deux autres maisons de taille différente à des endroits différents.

Colorier la maison

Maintenant nous modifions la fonction pour inclure non seulement la position, la taille, mais également la couleur de la maison comme paramètres. Les arguments de la fonction sont :

  • p – position de la maison

  • d – dimension de la maison

  • c – couleur de la maison

Exercice

Aujoutez deux autres maisons de taille et couleur différente.

Couleur de remplissage

Avec la fonction fillcolor(c), nous pouvons définir une couleur de remplissage c pour une forme quelconque que nous voulons dessiner. Pour remplir une forme avec une couleur, nous devons ajouter les deux fonctions :

  • begin_fill() au début de la forme,

  • end_fill() à la fin de la forme.

Bus

Pour dessiner un bus, une voiture ou un camion simple, nous pouvons utiliser des rectangles pour le châssis, et un disque (dot) pour les roues.
C’est une fonction qui a pour paramètres:

  • p – position du bus

  • d – dimension (longeur) du bus

  • c – couleur du bus

Arbre

Pour dessiner un arbre simple, nous utilisons un segment droit pour le tronc et un disque (dot) pour le feuillage.
C’est une fonction qui a 3 paramètres:

  • d – longueur du tronc

  • c – couleur du tronc

  • c2 – couleur du feuillage

Escalier

Voici une fonction permettant de dessiner des escaliers avec les paramètres suivants:

  • d – longueur de marche

  • e – hauteur de marche

  • n – nombre de marches

Stickman

Voici comment dessiner de petits stickmans paramètrables !

Nommer une variable

Pour nommer une variable (ou un paramètre), vous pouvez utiliser :

  • lettres (a...z et A...Z),

  • chiffres (0...9),

  • le tiret bas, appelé underscore (_).

Le nom de variable :

  • est sensible aux majuscules/minuscules,

  • ne peut pas commencer avec un chiffre,

  • ne doit pas être un mot-clé python (for, if, else, in, etc),

Ces noms de variables sont donc valides : a2, _a, speed, pos_x, POS_X

Question

Lesquels des noms de variable sont valides ?






var 2 contient une espace
2var commence par un chiffre
import est un mot clé

Exercice récapitulatif

Exercice

Reprenez l’exercice récapitulatif du chapitre 3 répéter et créez une fonction spirale pour dessiner votre spirale. La fonction doit avoir les paramètres suivants:

  • a: angle entre chaque segment

  • c: couleur de la spirale

  • n: nombre de segments

Appelez votre fonction 3 fois avec des paramètres différents pour a, c et n, afin d’obtenir 3 spirales différentes:

spirale

Vous n’avez pas à reproduire les mêmes spirales que dans l’image ci-dessus.

Téléchargez le fichier .py et déposez le sur Moodle à l’endroit prévu avec une capture d’écran du dessin.

Et à part le dessin ?

Paramètrer une fonction permet en quelque sorte de la généraliser pour qu’elle puisse être utilisable dans plein de situations.

Rappel

  • La fonction print() permet d’afficher du texte.

  • a = 0 est une instruction permettant de créer une variable a et lui donner la valeur 0.

  • a = a + 3 permet d’ajouter 3 à la variable a.

Exercice

Ecrivez une fonction qui permet de calculer l’aire d’un triangle en vous basant sur la longueur de sa base et sa hauteur.

La fonction prend donc 2 paramètres:

  • base

  • hauteur

Exercice

Reprenez la solution de l’exercice final du chapitre 3 et écrivez une fonction permettant de calculer la somme des chiffres de 0 à n.

La fonction prend donc un unique paramètre: n.