Fonctions

On peut segmenter un programme en fonctions, qui seront calculées uniquement si elles sont appelées.

  • Permet de faire le calcul uniquement si la fonction est appelée, gain de temps

  • Permet de segmenter son code, meilleur lisibilité

  • Permet de réutiliser des portions de code pour d'autres fonctions, gain de temps

Exemple :

  • Une fonction qui calcule la masse en fonction du poids. m(p)

  • Une autre fonction qui calcule la vitesse en fonction de la distance et de la durée. v(d,t)

  • Enfin une dernière qui calcule l’énergie cinétique en utilisant les fonctions précédentes. ec(m,v)

## Définir une fonction en python :
def nom_de_la_fonction(parametre):
    ...CODE...

Le code de la fonction doit être indenté, c'est à dire espacé d'une tabulation. Cette particularité que Python partage avec d'autres langages permet une meilleur lisibilité, mais peut entrainer des erreurs au début.

Exemple :

def poids(m):
    g = 9.81
    return m*g

Ici la fonction s'appelle "poids", prend pour paramètre une uniquement variable.

Elle donne pour résultat le produit de cette variable avec g, définie dans la fonction.

On appellera la fonction ainsi :

>>> poids(50)

Avec cet appel, on précise la valeur de la variable. Vous remarquez qu'il n y a aussi référence explicite lien "m" et "50". C'est la fonction qui associe cette valeur à la variable.

Remarque : On peut définir la valeur de "m" dans le script ou lors de l'appel. On peut également définir une valeur "par défaut" si la valeur n'est pas précisée

def poids(m=50):
    g = 9.81
    return m*g

Une fonction peut ne pas avoir de paramètre, ou un, ou plusieurs.

def ma_fonction():
    return("Cette fonction n’a pas de variable")
    
>>>ma_fonction()
'Cette fonction n’a pas de variable'

Attention, même si une fonction n'a pas besoin de paramètre, il faut l'appeler avec les parenthèses. exemple "ma_fonction()".

L'appel sans "ma_fonction" interroge l'objet. Python nous explique alors que c'est une fonction et nous donne son emplacement mémoire.

def ma_fonction():
    return("Cette fonction n’a pas de variable")
    
>>>ma_fonction()
'Cette fonction n’a pas de variable'

>>>ma_fonction
<function ma_fonction at 0x00000209C2B61950>

Enfin, attention, return permet de "retourner" le résultat de la fonction lorsque celle-ci est appelée.

Si la fonction est appelée depuis la console, le résultat s'affichera en console (s'il est affichable, ce n'est pas le cas de tous les objets)

Si la fonction est appelée dans le programme, le résultat ne sera pas affiché en console

Exercice !

  1. Définir une fonction energie_cinetique qui calcule l’énergie cinétique d’un objet de masse m et de vitesse v

  2. Tester avec les valeurs m = 50 et v = 10 : energie_cinetique(50,10)

  3. Définir une fonction masse(poids) qui calcule la masse à partir du poids. Tester :

    masse(500) (donne le résultat 50.9683995922528)

  4. Il est possible de faire appel à des fonctions dans les appels des fonctions. Tester energie_cinetique(masse(500),10) qui donne 2548.41997961264

  5. Réfléchir à l’implémentation d’une fonction calculant la vitesse à partir de la distance et de la durée

## Définir l'énergie cinétique

## Définir la fonction qui calcule la masse en fonction du poids

## Définir la fonction qui calcule la vitesse en fonction de la distance et la durée 


Amélioration de la fonction : Réfléchir à l'amélioration de la fonction afin qu'elle donne un résultat sous une forme écrite correctement (genre "Ec = ... J"). Il sera peut-être nécessaire de créer une nouvelle fonction.

Autrement amélioration possible : Demander à l'utilisateur la valeur lorsqu'il demande à calculer la valeur. On utilisera ici la fonction input().

m = input()
def energie_cinetique(m,v):
    return 0.5*m*v**2

Last updated

Was this helpful?