Les fonctions
Afin de structurer le code des programmes, pour le rendre :
- plus lisibles,
- plus facilement modifiables,
- plus faciles à tester,
la plupart des langages informatiques permettent d'écrire des fonctions qui contiennent des blocs d'instructions que et que l'on peut réutiliser dès que nécessaire.
Les fonctions dans différents langages
Python |
Pascal |
C |
def nom(argument): instruction1 instruction2 instruction3 return variable_interne |
function nom(argument:type) Begin instruction1; instruction2; instruction3; return variable_interne; end; |
type nom(type argument) { instruction1; instruction2; instruction3; return variable_interne; } |
où type détermine le type de la variable (entier, flottant, chaine, etc...)
En C et en Pascal on distingue les fonctions qui rendent une variable d'une fonction qui réalise une opération d'entrée/sortie par exemple : void en C et procedure en Pascal. En python, la deuxième catégorie de fonction ne nécessite pas l'instruction return. dans ce cas, la fonction retourne la valeur None
Les arguments de la fonction ne sont pas systématiques.
Portée des variables
Une variable créée et modifiée dans une fonction est dite locale et ne sera pas accessible depuis le programme principal.
En Python une variable créé dans le programme principal est dite globale et ne peut être modifiée dans une fonction. Cela reviendrait à créer une variable locale. Le mot clé global permet toutefois de déroger à cette règle
Si on souhaite modifier une variable globale à l'aide d'une fonction, il est préférable de passer cette variable en argument.
Valeurs de retour
Comme cela a été écrit, une fonction peut retourner une valeur.
Exemple :
#fonction
def carre(n):
return n**2
#programme principal :
surface=carre(2) #surface sera égal à 4
Une fonction peut retourner plusieurs valeurs. Il suffit de séparer les valeurs par une virgule dans la fonction et de faire pareil dans l'affectation de la fonction.
Exemple :
#fonction
def division(a,b)
quotient=a//b
reste=a%b
return quotient, reste
#programme principal
q,r=division(22,5)
print("q=",q, "et r=",r)
Arguments optionnels
On peut dans une fonction définir des arguments optionnels.
Il faut pour cela donner une valeur par défaut à l'agument.
Exemple
def carre(a,afficher=true):
b=a**2
if afficher==true:
print(b)
return b
On peut écrire :
surface=carre(2) et le résultat sera affiché
ou
surface=carre(2,false) et le résultat ne sera pas affiché