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;

}

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é