6. Paramétrer - rect(d, e)

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, 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 rect(50, 30).

Question

En Python, def est un raccourci pour




6.1. 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 1

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

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

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

6.2. Dessiner une maison

Nous revenons à notre fonction pour dessiner une maison.

Exercice 2

Ajoutez une maison de taille 100.

6.3. 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 (point, position) qui consiste d’un tuple (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 3

Aujoutez deux autres maisons de taille différente.

6.4. 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 4

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

6.5. Drapeau tricolore

Exercice 5

Modifiez les couleurs pour obtenir le drapeau d’un autre pay.
Créez une deuxième fonction drapeau2(d, c, c2, c3) qui crée un drapeau avec des barres horizontales.

6.6. 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

Exercice 6

Définissez une fonction foret(n) qui dessine n arbres.

6.7. 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 a paramètres

  • p – position du bus

  • d – dimension (longeur) du bus

  • c – couleur du bus

6.8. Coeur

Exercice 7

Ajoutez deux paramètres: w pour l’épaisseur de la ligne (width), et c2 pour la couleur de ligne.
La fonction aura la forme coeur(r, w, c, c2).

6.9. Escalier

  • d – longueur de marche

  • e – hauteur de marche

  • n – nombre de marches

6.10. Valeurs par défaut

Quand une fonction possède beaucoup d’arguments, nous pouvons spécifier des valeurs par défaut. Pour ceci nous ajoutons la valeur par défaut dans la liste de paramètres avec le symbole =.

La fonction rectangle(p, d, e, w=1, pen='black', fill='white') dessine un rectangle aux dimensions d x e à la position p. Cette fonction possède 3 paramètres optionnels (valeur par défaut en parenthèse):

  • w – épaisseur de ligne (1)

  • pen – couleur de ligne ('black')

  • fill – couleur de remplissage ('white')

Il a maintenant différentes façons à appeler la fonction. Tous les paramètres qui ont une valeur par défaut sont optionnels. Au minimum nous devons spécifier les paramètres sans valeur par défaut.

rectangle((40, 0), 80, 40)

Le rectangle est dessiné dans la direction actuelle de la tortue. Cette orientation peut être changée avec seth(). La tortue se positionne de l’autre côté du point de départ. Ceci permet d’enchainer à dessiner des rectangles.

6.11. Polygone régulier

La fonction polygone() dessine un polygone régulier avec n sommets. Les arguments de la fonction sont :

  • d – distance du segment

  • n – nombre de segments

6.12. Polygone étoilé

En ajoutant un paramètre supplémentaire m, la fonction polygone() permet également de dessiner un polygone étoilé. Ce paramètre signifie le nombre de pics sauté pour aller au prochain des n points répartis dans un cercle. Pour m=1 un polygone régulier est dessiné.

es arguments de la fonction sont :

  • d – distance du segment

  • n – nombre de segments

  • m – paramètre pour polygone étoilé (nombre de pics sautés)

6.13. Nommer une variable

Pour nommer une variable, vous pouvez utiliser :

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

  • chiffres (0...9),

  • le tiret bas (_).

Le nom de variable :

  • est sensible aux majuscules/minuscules,

  • ne peut pas commencer avec un chiffre,

  • ne doit pas consister d’un mot-clé (if, else, for),

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
IF n’est pas un mot-clé

6.14. Exercices

Pingpong

La fonction pingpong() reprend le dessin du chapitre 1 et ajoute trois paramètres

Mondrian

Avec la fonction rectangle(p, d, e, w, pen, fill) dessinez une copie de ce tableau de Mondrian.

mondrian

Stickman