Fonctions originales python
Sommaire
- 1- Objectifs
- 2- Description d'une fonction en python
- 3- Définition d'une fonction en python
- 4- Utilisation d'une fonction en python
- 5- Paramètres d'une fonction Python
- 5.1- Fonction sans paramètres
- 5.2- Une fonction avec deux paramètres
- 6- Valeurs de retour d'une fonction Python
- 6.1- Fonction sans retour
- 6.2- Une fonction qui retourne une liste
- 6.3- Une fonction qui appelle une autre fonction
- 7- Applications
- 7.1- Activité
- 7.2- Activité
- 7.3- Activité
- 7.4- Activité
- 7.5- Activité
- 7.5.1- Sommaire du cours Python
Fonctions originales python
-
Objectifs
- Connaitre les fonctions de python
- Apprendre à créer des fonctions définies par l’utilisateur et à les utiliser pour écrire des programmes modulaires en Python.
-
Description d’une fonction en python
- L’approche efficace d’un problème complexe consiste souvent à le décomposer en plusieurs sous-problèmes plus simples qui seront étudiés séparément (ces sous-problèmes peuvent éventuellement être eux-mêmes décomposés à leur tour, et ainsi de suite).
- Or il est important que cette décomposition soit représentée fidèlement dans les algorithmes pour que ceux-ci restent clairs. D’autre part, il arrivera souvent qu’une même séquence d’instructions doive être utilisée à plusieurs reprises dans un programme, et on souhaitera bien évidemment ne pas avoir à la reproduire systématiquement.
- Les fonctions peuvent être utilisées pour définir un code réutilisable, d’organiser et de simplifier les programmes.
-
Définition d’une fonction en python
- Une fonction en informatique est une portion réalisant une tâche bien précise et qui pourra être utilisée une ou plusieurs fois dans la suite du programme.
- Une fonction est une portion de code que l’on peut appeler au besoin (c’est une sorte de sous-programme).
- L’utilisation des fonctions évite ainsi des redondances dans le code : on obtient ainsi des programmes plus courts et plus lisibles !
- Une fonction contient un en-tête et un corps et une valeur de retour. L’en-tête commence par le mot-clé
def
, suivi par lenom
de la fonction et desparamètres
optionnels, et se termine pardeux-points
comme le montre le schémas suivant: -
Utilisation d’une fonction en python
- La définition d’une fonction commence par une ligne d’introduction qui doit contenir :
- Le mot clé
def
, suivi du nom de la fonction, suivi de tous les paramètres de la fonction entre parenthèses. - Le mot-clé
def
est une instruction pour définir une fonction en Python. - L’appel
def
crée l’objet fonction et l’affecte au nom donné. - Vous pouvez en outre réaffecter le même objet fonction à d’autres noms.
- Pour démarrer une fonction Python commencer avec le mot-clé
def
, spécifier unnom
suivi d’un signe de deux-points (:
). - Ajouter une docstring significative pour expliquer ce que fait la fonction. Cependant, c’est une étape facultative.
- Après cette ligne d’introduction, les instructions qui définissent la fonction doivent être dans un bloc indenté (décalé à droite) qui constitue le corps de la fonction (si une instruction n’est pas indentée : elle sera considérée comme ne faisant pas partie de la définition de la fonction et entraînera la fin de la définition du corps de la fonction).
- En fin il faut utiliser le mot clé
return
- Le mot clé
return
permet d’indiquer la valeur retournée par la fonction. Il achève la définition de la fonction (lorsque Python rencontre un return dans une fonction, il sort de la fonction, les instructions qui pourraient se trouver ensuite dans le corps de la fonction seront ignorées). - La valeur retournée indiquée après le mot clé
return
est le résultat du "travail" de la fonction. - Tout ce qui a pu être calculé localement dans la fonction est perdu s’il n’est pas retourné.
- Si on ne met pas de return dans le corps de la fonction, ou bien un return sans spécifier de valeur, alors Python retourne automatiquement la valeur None.
- La syntaxe Python pour la définition d’une fonction est la suivante :
- Interprétation:
def
pour expliquer qu’on définit une fonction.nomDeLaFonction
: vous pouvez mettre des lettres et chiffres (mais pas en premier) dans le nom mais pas d’espace.liste_de_parametres
on peut préciser les paramètres de la fonction comme en math pour f(x), le paramètre est x (En mathématique, on l’appelle une variable). S’il y a plusieurs paramètres, on les sépare par une virgule. S’il n’y en a pas, on met juste des parenthèses sans rien dedans.:
les 2 points à la fin de la ligne sont obligatoires- Le
bloc instructions
effectue les calculs pour réaliser les tâches confiées à la fonction définie. Les calculs peuvent produire de nouvelles valeurs que l’on peut renvoyer dans une expression (affecter à variable, utiliser comme arguments d’une autre fonction). return
Cette commande permet de renvoyer un résultat obtenu par la fonction pour pouvoir l’utiliser dans la suite du programme.- L’exécution de l’instruction
return
provoque la sortie immédiate de la fonction en retournant la valeur spécifiée. Si une fonction ne retourne rien, Python lui fait retourner la valeur None - Exemple:
-
Paramètres d’une fonction Python
- Nous utilisons souvent les termes paramètres et arguments de manière interchangeable. Cependant, il existe une légère différence entre eux .
- Les paramètres sont les variables utilisées dans la définition de la fonction, tandis que les arguments sont les valeurs que nous transmettons aux paramètres de la fonction.
-
Fonction sans paramètres
- exemple01
- exemple02
-
Une fonction avec deux paramètres
- Pour définir une fonction avec plusieurs paramètres, il suffit d’inclure ceux-ci entre les parenthèses qui suivent le nom de la fonction, en les séparant à l’aide de virgules.
- Lors de l’appel de la fonction, les arguments utilisés doivent être fournis dans le même ordre que celui des paramètres correspondants (en les séparant eux aussi à l’aide de virgules). Le premier argument sera affecté au premier paramètre, le second argument sera affecté au second paramètre, et ainsi de suite.
-
Valeurs de retour d’une fonction Python
- Dans les fonctions Python, vous pouvez ajouter l’instruction "
return
" pour renvoyer une valeur. - Habituellement, les fonctions renvoient une seule valeur. Mais si nécessaire, Python permet de renvoyer plusieurs valeurs en utilisant les types de collection tels que l’utilisation d’un tuple ou d’une liste.
-
Fonction sans retour
- Une fonction ne doit pas forcément renvoyer une valeur.
- Une telle fonction sans paramètre est souvent connue comme une procédure dans la terminologie de la programmation.
- Théoriquement chaque fonction en Python renvoie une valeur même si vous n’avez pas utilisé le mot clé
return
. Si une fonction ne retourne pas de valeur, par défaut, elle renvoie la valeur spécialeNone
. -
Une fonction qui retourne une liste
-
Une fonction qui appelle une autre fonction
-
Applications
-
Activité
- Écrire l’algorithme d’une fonction minimum2() qui reçoit comme paramètres deux entiers a et b et qui retourne le minimum des deux. Traduire cet algorithme en Python.
-
Activité
- Écrire l’algorithme d’une fonction minimum3() qui reçoit comme paramètres 3 entiers et qui retourne le plus petit des trois.
- On utilisera la procédure précédente minimum2(). Traduire cette fonction en Python puis réaliser le programme qui va afficher le plus petit des 3 entiers.
-
Activité
- Quelle est la différence entre un
print
et unreturn
à la fin du’une fonction ? - L’appel à
print
provoque un affichage, et l’exécution continue… comme c’est la fin de la fonction, celle-ci retourne par défaut None (en l’absence de return). - L’exécution du
return
provoque la sortie immédiate de la fonction en retournant la valeur fournie (ou None si aucune valeur n’est fournie). -
Activité
- Définissez une fonction operations(a, b) qui calcule et retourne la somme a+b,la multiplication a*b,la division a/b et la différence a-b de ses deux paramètres.
- Dans le corps de votre fonction saisir deux nombres flottants x et y, appelez votre fonction avec ces nombres et faites afficher le résultat des calculs issus de cette fonction sous la forme : « x et y ont pour somme s, multiplication m,division v et pour différence d » (en mettant bien sûr les valeurs numériques pour x, y, s ,m, v et d).
-
Activité
- Ecrire un programme en langage Python qui demande à l’utilisateur de saisir son nom et de lui afficher son nom avec un message de bienvenue !
def nomDeMaFonction(parametre1, parametre2, parametre3,...,parametreN):
"""docstring
documentation de la fonction qui s'affichera en tapant
help(nomDeMaFonction)
"""
…bloc d'instructions définissant la fonction…
return valeur_retournee
La syntaxe de
def
utilise lesdeux-points
comme les boucles for et while ainsi que les tests if, unbloc d’instructions
est donc attendu. De même que pour les boucles et les tests, l’indentation
de ce bloc d’instructions (qu’on appelle le corps de la fonction) est obligatoire.
Fonction nom de la fonction (paramètre(s):type):type du résultat
Rôle :
Déclaration : variables locales
Début
Instruction(s)
retourner paramètre
Fin
def nomfonction (paramètres séparés par des virgules):
Return variable contenant le résultat de la fonction
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
mapremierefonction()# Appeler les parenthèses ()
def tirage_de():
""" Retourne un nombre entier aléatoire entre 1 et 10 """
import random
valeur = random.randint(1, 10)
return valeur
"""Appeler la fonction"""
print(tirage_de())
# définition de fonction
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):
# appel de la fonction avec les arguments 1 et 10
print(tirage_de2(10, 20))
# définition de fonction
def tirage_multiple_de(nombretirage):
""" Retourne une liste de nombres entiers aléatoires entre 1 et 6 """
import random
resultat = [random.randint(1, 6)
for i in range(nombretirage)]
# compréhension de listes (Cf. annexe)
return resultat
# début du programme
print(tirage_multiple_de(10))
def compteur():
i = 0
while i < 3:
print(i)
i = i + 1
def double_compteur():
compteur()
compteur()
print("bonjour")
double_compteur()
elle une autre fonction
Algorithme
Fonction minimum2 (a,b : Entier): Entier
Début
Si a ≥ b alors
retourner b
Sinon
retourner a
Finsi
Fin
Codage Python
def minimum2 (a, b) :
if a >= b :
return b
else:
return a
Fonction minimum3 (a,b,c : Entier): Entier
Début
retourner minimum2(a, minimum2(b,c))
Fin
def minimum3 (a, b, c) :
return minimum2(a, minimum2(b,c))
def operations(a, b):
return a+b,a*b,a/b,a-b
x = float(input("Saisir la valeur de x:"))
y = float(input("Saisir la valeur de y:"))
s,m,v,d = operations(x, y)
print(x, "et", y, "ont pour somme", s,
",multiplication",m,
",division",v,
"et", "pour différence", d)