This is an archive copy of wikilivres.ca as of 18 February 2017 (from the WikiTeam dump). The original site is closed.

Page:Swinnen - Apprendre Python, 2010.djvu/100

Free texts and images.
Jump to navigation Jump to search
This page has been proofread


78
Chapitre 7 - Fonctions originales

Vous pouvez définir une valeur par défaut pour tous les paramètres, ou une partie d'entre eux seulement. Dans ce cas, cependant, les paramètres sans valeur par défaut doivent précéder les autres dans la liste. Par exemple, la définition ci-dessous est incorrecte :

def politesse(vedette ='Monsieur', nom):

Autre exemple :


>>> def question(annonce, essais =4, please ='Oui ou non, s.v.p.!'):
... while essais >0:
...         reponse = input(annonce)
...         if reponse in ('o', 'oui','O','Oui','OUI'):
...             return 1
...         if reponse in ('n','non','N','Non','NON'):
...             return 0
...         print(please)
...         essais = essais-1
...
>>>

Cette fonction peut être appelée de différentes façons, telles par exemple :

rep = question( ' Voulez-vous vraiment terminer ? ' )

ou bien :

rep = question( ' Faut-il effacer ce fichier ? ' , 3)

ou même encore :

rep = question( ' Avez-vous compris ? ' , 2, ' Répondez par oui ou par non ! ' )

Prenez la peine d'essayer et de décortiquer cet exemple.



Arguments avec étiquettes

Dans la plupart des langages de programmation, les arguments que l'on fournit lors de l'appel d'une fonction doivent être fournis exactement dans le même ordre que celui des paramètres qui leur correspondent dans la définition de la fonction.

Python autorise cependant une souplesse beaucoup plus grande. Si les paramètres annoncés dans la définition de la fonction ont reçu chacun une valeur par défaut, sous la forme déjà décrite ci-dessus, on peut faire appel à la fonction en fournissant les arguments correspondants dans n'importe quel ordre, à la condition de désigner nommément les paramètres correspondants. Exemple :


>>> def oiseau(voltage=100, etat='allumé', action='danser la java'):
...         print('Ce perroquet ne pourra pas', action)

...          print('si vous le branchez sur', voltage, 'volts !')
...          print("L'auteur de ceci est complètement", etat)
...

>>> oiseau(etat='givré', voltage=250, action='vous approuver')
Ce perroquet ne pourra pas vous approuver
si vous le branchez sur 250 volts !