Valeur par défaut d'un paramètre d'une fonction
On peut donner une valeur par défaut à certains paramètres d'une fonction.
Un appel à cette fonction ne nécessitera d'arguments que pour les paramètres n'ayant pas de valeur par défaut.
Exemple.
Je n'arrive pas à retenir la table du 7. Je me suis donc écrit une petite fonction me la rappelant.
Mais parfois, c'est la table du 8 qui me fait défaut. La fonction doit pouvoir me servir aussi pour le 8... Mais comme
c'est plus souvent le 7, j'aimerais éviter de l'écrire !
def table(coef, base = 7) :
print(' {}*{} = {} '.format(coef, base, coef*base) )
print('Il serait quand même temps que tu apprennes ça.')
table(8)
table(9)
table(8,8)
table(9,8)
ce qui donne :
8*7=56
Il serait quand même temps que tu apprennes ça.
9*7 = 63
Il serait quand même temps que tu apprennes ça.
8*8 = 64
Il serait quand même temps que tu apprennes ça.
9*8 = 72
Il serait quand même temps que tu apprennes ça.
Le paramètre base a une valeur par défaut (qui est 7). Lorsqu'on appelle la fonction sans préciser de valeur pour le second
paramètre, la fonction s'exécute avec cette valeur par défaut.
Mais on peut également appeler la fonction en donnant explicitement une valeur à ce second paramètre. C'est ce qui est fait dans
les deux derniers appels dans l'exemple ci-dessus.
En nommant les paramètres
En utilisant explicitement le nom des paramètres et en leur donnant à tous une valeur par défaut, l'ordre de ces paramètres n'a plus d'importance.
Exemple.
Nous utilisons ici le module
turtle pour illustrer.
Observez les différences entre les deux appels de la fonction : les paramètres ne sont pas nécessairement dans l'ordre déclaré dans l'entête de la fonction et certains paramètres ne sont pas renseignés et seront donc utilisés avec la valeur déclarée dans l'entête de la fonction. Faîtes d'autres essais.
from turtle import *
def carre(cote = 40, sens = 'trigo', couleur = 'black', epaisseur = 2, depart = (0,0) ) :
penup() # on lève le crayon pour ne pas tracer
setposition(depart) # la tortue se place au point depart
pencolor(couleur) # on fixe la couleur du crayon
pensize(epaisseur) # on fixe l'épaisseur du crayon
if sens == 'trigo' :
angle = 90
else :
angle = 270 # 3*90
pendown() # on abaisse le crayon pour tracer
for _ in range(4) :
forward(cote) # on avance de la longueur cote (l'unité est le pixel) dans l'orientation donnée par la tortue
left(angle) # la tortue tourne sur sa gauche de angle degrés.
penup()
# on donne à la tortue une forme de tortue (par défaut la forme est celle d'un triangle) :
shape("turtle")
# premier appel :
carre(cote = 30, couleur = 'red')
# second appel :
carre( depart = (0,-5), sens = 'pendule', epaisseur = 5, couleur = 'green')
# instruction permettant de garder la fenêtre ouverte et
# de la fermer en cliquant sur cette fenêtre :
exitonclick()
ce qui donne :