Retour au cours
Les fonctions
Comme des travailleurs qui travaillent pour vous
NOUS LES
FONCTIONS,
ON TRAVAILLE
POUR VOUS
Il existe plusieurs fonctions dites
'natives' qu'on peut utiliser en les
appelant tout simplement
Comment appelle-t-on un travailleur ?
Par son nom,
on dit
simplement
son nom !!!
On n'oublie pas
de lui donner du
matériel à
travailler: des
données !
nomDeLaFonction(3)
Nous avons
utilisé le nom
de la fonction
Nous lui
avons passé
une donnée
en paramètre
Appel avec valeur
nomDeLaFonction(0, 0, x, y)
Nous avons
utilisé le nom
de la fonction
Nous lui avons
passé 4
paramètres:
2 valeurs et 2
variables
Appel avec plusieurs paramètres
ON SÉPARE LES
PARAMÈTRES PAR
DES VIRGULES
Appel de fonctions existantes - code
Exemples d'appel de fonctions sans
paramètre
random.random()
Exemples d'appel de fonctions avec
paramètre
math.pow(2, 4)
abs(-10)
max(2, 5)
math.floor(2.5)
math.radians(90)
C'EST LA FONCTION
QUI A DÉJÀ DÉCIDÉ
SON NOMBRE DE
PARAMÈTRES.
IL
FAUT REGARDER LA
DOC.
Appel de fonctions existantes - gaspillage
Exemples d'appel de fonctions sans
paramètre
random.random()
Exemples d'appel de fonctions avec
paramètre
math.pow(2, 4)
abs(-10)
max(2, 5)
math.floor(2.5)
math.radians(90)
C'est bien beau appeler des
fonctions et faire travailler les
travailleurs.
Mais si on laisse cela comme
cela, c'est comme laisser le
résultat du travail en plan, ne
pas le cueillir.
Appel de fonctions existantes - gaspillage
Exemples d'appel de fonctions sans
paramètre
random.random()
Exemples d'appel de fonctions avec
paramètre
16.0
10
5
2
1.5707963267948966
C'est bien beau appeler
des fonctions et faire
travailler les travailleurs.
Mais si on laisse cela
comme cela, c'est comme
laisser le résultat du travail
en plan, ne pas le cueillir.
MERCI de ne pas
gaspiller notre
travail !!!
RETOUR ÉCHAPPÉ
Appel de fonctions existantes - code complet
Exemples d'appel de fonctions sans
paramètre
inconnu: float = random.random()
Exemples d'appel de fonctions avec
paramètre
puissanceDeDeux: float
puissanceDeDeux = math.pow(2, 4)
valeurAbsolue: int = abs(-10)
maximum: int = max(2, 5)
plancher: int = math.floor(2.5)
radian: float = math.radians(90)
Appel de fonctions existantes - code complet
Exemples d'appel de fonctions sans
paramètre
inconnu: float = random.random()
Exemples d'appel de fonctions avec
paramètre
puissanceDeDeux: float
puissanceDeDeux = 16.0
valeurAbsolue: int = 10
maximum: int = 5
plancher: int = 2
radian: float = 1.5707963267948966
Appel de fonctions existantes - données
Comme on peut le constater dans les
exemples:
●
On envoie des données à la fonction
entre ses parenthèses
●
Lorsque la fonction s'est exécutée,
son code est comme remplacé par
son résultat,
○
qu'on peut attraper dans une
variable
○
ou utiliser autrement
x = nomFonction(variable)
On utilise un
contenant pour
attraper le
résultat du travail
On ne jette
plus le
résultat à la
poubelle
Appel avec variable
PARAMÈTRE
EXÉCUTION
RETOUR
RÉCEPTION
x = nomFonction(variable)
x = nomFonction(3)
x = 9
x contient 9
DANS L'ORDRE
Tout le code de la fonction s'exécute et son appel
est remplacé par la valeur retournée par celle-ci,
le résultat de son travail.
C'est comme si la valeur de retour, le résultat,
remplaçait la variable.
Le résultat est attrapé et contenu dans une
variable prévue à cet effet
La variable est transvasée dans la fonction.
def calculerCube(chiffre: int):
print(chiffre)
return chiffre ** 3
def main():
temps = 7
r = calculerCube(temps)
Cycle appel-exécution-réception
Je suis la fonction
Je suis le programme principal
La variable
verse son
contenu dans
la fonction
On devrait
récupérer ce
calcul dans
une variable
chiffre = 7
C'est comme si une
variable était déclarée
juste dans la fonction
et recevait la valeur
versée
Appel versus implémentation
L'appel de fonction c'est
l'utilisation d'une fonction
existante.
L'implémentation de fonction c'est quand on invente
une nouvelle fonction avec un nouveau nom. C'est
dans l'implémentation qu'on écrit son code.
Créer sa propre fonction : syntaxe
●
Pour l'instant on va placer
'def' devant notre fonction
●
On doit lui donner un nouveau nom qui
n'est pas déjà utilisé
○
Ce nom commence par un verbe
○
Ce nom commence par une minuscule
●
Elle comporte toujours des parenthèses
●
On termine la ligne par deux-points :
son code va dessous, décalé d'un cran
Créer sa propre fonction :
direBonjour( )
On va coder cette fonction de base
(genre Hello World)
def direBonjour():
print("Bonjour")
CE CODE N'EST JAMAIS EXÉCUTÉ,
POURQUOI ?
Créer sa propre fonction :
direBonjour( )
On va coder cette fonction de base
(genre Hello World)
def direBonjour():
print("Bonjour")
On va tester notre fonction en l'appelant à
partir de notre programme principal
direBonjour()
TESTER À MESURE = le plus important
13:
55
On doit appeler la
fonction dès que son
squelette est
fonctionnel AVANT
d'écrire le code
dedans.
APPEL
Créer sa propre fonction : les données
IL FAUT SAVOIR
●
que les variables déclarées dans les fonctions
n'existent pas en-dehors
●
que les variables du programme principal ne
doivent pas être utilisées dans la fonction
●
que la seule manière d'utiliser dans la fonction
une valeur du programme principal est de la lui
passer en paramètre
●
que la manière de ne pas perdre le résultat
d'un travail est de le retourner au programme
principal avec return
Créer sa propre fonction :
afficherCarre()
On va coder cette fonction qui calcule et
affiche un carré
def afficherCarre(chiffre: int):
carre = chiffre * chiffre
print("Le carré est", carre)
On va tester notre fonction en lui passant un
chiffre à calculer
afficherCarre(3)
Créer sa propre fonction :
calculerCube()
On va coder cette fonction qui calcule un cube
et le retourne
def calculerCube(chiffre: int) -> int:
cube = chiffre * chiffre * chiffre
return cube
On va tester notre fonction en lui passant un
chiffre à calculer ET en récupérant le résultat
resultat = calculerCube(5)
print("Cube de 5 est", resultat)
def calculerCube(chiffre: int):
def main():
temps = 7
r = calculerCube(temps)
Intervalle de validité
Je suis la fonction
Je suis le programme principal
print(chiffre) # ERREUR
Ici temps
n'existe pas, il
est copié dans
chiffre
print(temps) # ERREUR
Quand devrait-on faire des fonctions ?
Quand le même algorithme
est réutilisé plus d'une fois,
surtout si ce n'est pas en
boucle.
Si tu vois du code
répété ou qui se ressemble
avec de petites différences.
Quand on a assez de code
pour vouloir lui donner un titre,
le nom
3
2
1
Économise du
temps de travail
Permet d'écrire le
code une seule
fois
Coûte un petit peu
de temps
d'exécution
Met de l'ordre
dans le code et le
documente
Avantages & désavantages
Repérer les
redondances
Identifier ce qui
est pareil
Identifier
ce qui est
différent
Mettre ce qui est
différent dans
des variables
PRÉPARER la FACTORISATION