Vous êtes sur la page 1sur 11

S.N.T.

Séance : fonctions
1 –- Utilité
PRÉSENTATION
et concept de fonction
Nous avons déjà vu beaucoup de fonctions : print(), type(),
len(), input(), range() ...
Mais ce sont des fonctions prédéfinies.
Il est possible de créer ses propres fonctions.

Une fonction est une portion de code (sorte de sous-programme) que


l'on peut appeler au besoin.
L'utilisation des fonctions permet :
 d’éviter la répétition ;
 de mettre en relief les données et les résultats : entrées et sorties de
la fonction ;
 la réutilisation dans d’autres scripts par l’intermédiaire du
mécanisme de l'import ;
 de décomposer une tâche complexe en tâches plus simples.
On obtient ainsi des programmes plus courts et plus lisibles.

Langages et programmation
2 - Syntaxe
La syntaxe Python pour la définition d’une fonction est la suivante :
def nom_fonction(liste de paramètres):
bloc d'instructions

def nom_de_la_fonction(parametre1,parametre2,parametre3,...) :
""" Documentation qu'on peut écrire sur plusieurs lignes """
# docstring entouré de 3 guillemets (ou apostrophes)
bloc d'instructions # attention à l'indentation
return resultat
# la fonction retourne le contenu de la variable resultat

Langages et programmation
2 - Syntaxe a. Fonction sans paramètre
b. Fonction avec paramètres
Exemple :
def mapremierefonction(): # cette fonction n'a pas de paramètre
""" Cette fonction affiche 'Bonjour' """
print("Bonjour")
return # cette fonction ne retourne rien ('None')
# l'instruction return est ici facultative

Langages et programmation
2 - Syntaxe a. Fonction sans paramètre
b. Fonction avec paramètres
Exemple :
def tirage_de2(valeur_min, valeur_max):
""" Retourne un nombre entier aléatoire entre valeur_min et
valeur_max """
import random
return random.randint(valeur_min, valeur_max)

# début du programme
for i in range(5):
print(tirage_de2(1, 10), end=' ')
# appel de la fonction avec les arguments 1 et 10

Langages et programmation
3 - Portée des variables : variables locales et variables globales
Activité :
1. a. Taper dans l’éditeur de scripts les lignes suivantes :
def monter():
a = 15
a = a+1
print(a)
b. Dans l’interpréteur, appeler plusieurs fois la fonction monter()
et observer ce qui se passe.
d. Taper dans l’interpréteur la commande suivante :
>>> print(a).
Que peut-on en déduire de la variable a ?

Langages et programmation
3 - Portée des variables : variables locales et variables globales
Activité :
2. a. Modifier le script de la façon suivante :
a = 20

def monter():
a = 15
a = a+1
print(a)
b. Taper dans l’interpréteur la commande : >>> print(a).
c. Dans l’interpréteur, appeler la fonction monter() puis taper la
commande : >>> print(a).
Que peut-on en déduire de la variable a ?

Langages et programmation
3 - Portée des variables : variables locales et variables globales
Activité :
3. a. Modifier le script de la façon suivante :
a = 20

def monter():
global a
a = a+1
print(a)
b. Taper dans l’interpréteur la commande : >>> print(a).
c. Dans l’interpréteur, appeler plusieurs fois la fonction monter().
d. Taper dans l’interpréteur la commande : >>> print(a).

Langages et programmation
3 - Portée des variables : variables locales et variables globales
La portée d'une variable dépend de l’endroit du programme où on peut
accéder à la variable.
Une variable globale est visible et utilisable dans tout le programme.
Une variable locale est crée par une fonction et n’est visible que par
cette fonction. Lors de la sortie de la fonction, la variable est détruite.

Langages et programmation
3 - Portée des variables : variables locales et variables globales
Exemple :
x = 10 # variable globale
def ma_fonction() :
x = 20 # variable locale
print("La variable locale est",x)
# programme principal
print("La variable globale est",x)
ma_fonction()

>>>
La variable globale est 10
La variable locale est 20
Bien que possédant, le même identifiant, les deux variables x sont
distinctes.

Langages et programmation
3 - Portée des variables : variables locales et variables globales
L'instruction global rend une variable globale mais il est préférable
d'éviter son utilisation car c'est une source d'erreurs (on peut ainsi
modifier le contenu d'une variable globale en croyant agir sur une
variable locale).
La sagesse recommande donc de suivre la règle suivante :
 ne jamais affecter dans un bloc de code local une variable de même
nom qu'une variable globale

Langages et programmation

Vous aimerez peut-être aussi