Fonction à plusieurs paramètres
Fonction à plusieurs paramètres
Objectifs cantonaux : O1.6.
Cours complet sur la plateforme Runestone de Cédric Donner : Fonction à plusieurs paramètres.
Une fonction peut définir plusieurs paramètres, séparés par des virgules, pour influencer plusieurs aspects différents de son exécution (par exemple la taille et la couleur d’un dessin).
Syntaxe
◈ Syntaxe — Plusieurs paramètres
def nom_de_la_fonction(parametre1, parametre2):
...
nom_de_la_fonction(valeur1, valeur2)L’ordre compte : la première valeur de l’appel est transmise au premier paramètre, la deuxième valeur au deuxième paramètre, etc.
from gturtle import *
def carre(taille, couleur):
setPenColor(couleur)
for _ in range(4):
forward(taille)
right(90)
carre(100, "red")
carre(200, "green")Une fonction avec paramètres qui en appelle une autre
from gturtle import *
from math import pi
def polygone(nombre_cotes, longueur_cotes):
for _ in range(nombre_cotes):
forward(longueur_cotes)
right(360 / nombre_cotes)
def cercle(rayon):
perimetre = 2 * pi * rayon
longueur_cotes = perimetre / 36
# transmission de la valeur calculée au paramètre longueur_cotes de polygone
polygone(36, longueur_cotes)
cercle(30)L’idée : un cercle n’est qu’un polygone régulier à beaucoup de côtés (ici 36). La fonction cercle(rayon) calcule la longueur de chaque côté à partir du rayon (périmètre ÷ nombre de côtés), puis transmet cette valeur calculée en paramètre à polygone.
Attention à l’ordre des paramètres
! Erreur fréquente — inverser l’ordre des arguments
from gturtle import *
def triangle_couleur(taille, couleur):
setPenColor(couleur)
for _ in range(3):
forward(taille)
left(360 / 3)
triangle_couleur("red", 100)Ce programme plante. La commande est appelée avec "red" en premier et 100 en second, mais elle attend l’ordre inverse (taille puis couleur). Python transmet donc la chaîne "red" au paramètre taille — impossible à utiliser dans forward(taille) — et 100 à couleur — invalide pour setPenColor. L’ordre des valeurs lors de l’appel doit toujours correspondre à l’ordre des paramètres dans la définition.