Les fonctions

Présentation

La déclaration d'une fonction en Python suit la syntaxe suivante :

1
def nomFonction(liste arguments):
2
   ...
3
   return variable_à_retourner

Cas particulier n°1 : la fonction n'a pas besoin d'argument (un argument correspondant à une donnée, voir exercice ci-dessous).

1
def nomFonction():
2
   ...
3
   return variable_à_retourner

Cas particulier n°2 : la fonction a besoin de plusieurs arguments.

1
def nomFonction(arg1, arg2, arg3, ...):
2
   ...
3
   return variable_à_retourner

Cas particulier n°3 : la fonction ne renvoie pas de résultat.

1
def nomFonction(liste arguments):
2
   ...

Exemple :

Soit une fonction qui renvoie un nombre élevé à la puissance 2.

Déclaration de la fonction (voir extrait de programme ci-dessous) avec :

  • carre = nom de la fonction ;

  • x = argument (ici le nombre à élever au carré)

  • resultat = variable utilisée dans la fonction (que l'on peut nommer comme l'on veut).

1
def carré(x):
2
   resultat=x*x
3
   return resultat

Utilisation de la fonction dans le programme (voir extrait de programme ci-dessous) :

1
y=carré(3)
2
print("le résultat vaut : " + str(y))

Question

Q1 : Créer une fonction permettant de calculer le périmètre d'un rectangle en respectant les consignes ci-dessous :

  • nom de la fonction : PérimetreRectangle ;

  • arguments : longueur (a) et largeur (b).

Indice

La formule pour calculer le périmètre d'un rectangle est ... 2 x a + 2 x b

Solution

Ci-dessous une proposition de réponse où la variable interne à la fonction est péri.

1
def PérimetreRectangle(a,b):
2
   péri=2*a+2*b
3
   return péri

Question

Q2 : Créer une fonction permettant de calculer la surface d'un disque en respectant les consignes ci-dessous :

  • nom de la fonction : SurfaceDisque ;

  • argument : rayon (R).

Indice

La formule pour calculer la surface d'un disque est ... π x R2

Solution

Ci-dessous une proposition de réponse où la variable interne à la fonction est surf.

1
def SurfaceDisque (R):
2
   péri= 3.1416*R*R
3
   return péri

Ci-dessous une autre proposition de réponse qui utilise la fonction pi ( nombre π = 3.1416...) de la librairie math.

De plus, on utilise l'écriture **2 pour élever au carré (R**2 = R2).

Dans notre cas, cela semble peut intéressant mais si on doit élever à la puissance 16, cette forme d'écriture est beaucoup plus simple (par exemple pour 216 : 2**16 est plus simple à saisir que 2*2*2*2*2*2*2*2*2*2*2*2*2*2*2*2).

1
import math
2
def SurfaceDisque (R):
3
   péri= math.pi*R**2
4
   return péri

Ci-dessous une ultime proposition de réponse qui utilise aussi la fonction pi de la librairie math.

Cette version d'appel de la librairie math permet de ne plus préciser le nom de la librairie avant le nom de la fonction.

1
from math import*
2
def SurfaceDisque (R):
3
   péri= pi*R**2
4
   return péri