C2.3 : Créer ses fonctions

Prendre connaissance

Prendre connaissance de Mémo : Créer des fonctions.

Utilisation du vocabulaire

Application

Programme n°1

Texter le code suivant.

# Définition des fonctions
def surface(rayon):
    """
    Renvoie l'aire d'un disque, calculée à partir du rayon
    """
    return 3.14159 * rayon ** 2

# Programme principal
r = 4.2
s = surface(r)

Programme n° 2

Tester le code suivant et observer les valeurs des variables.

# Définition des fonctions
def plus2(p):
    """
    Ajoute 2
    """
    return p + 2

# Programme principal
a = 0
b = plus2(a)
c = plus2(b)
d = plus2(c)
e = plus2(d)

Questions

Pour chacun des deux programmes :

1) Tester le programme et observer les valeurs des variables.

2) Quelles lignes correspondent à la définition de la fonction ?

3) Dans quelle ligne trouve-t-on l'appel de la fonction ?

4) Quel est le nom donné au paramètre de la fonction ?

5) Quelle valeur est passée en argument de la fonction ?

6) Que devient la valeur renvoyée par la fonction lors de son appel ?

Applications : documentation d'une fonction

Application II_app1

Compléter le code ci-dessous avec les annotations de type et la docstring.

def surface(rayon):
    return 3.14159 * rayon ** 2
Afficher la correction
def surface(rayon:float)->float:
    """
    Renvoie l'aire d'un disque à partir du rayon
    Paramètres :
        rayon (float) : rayon du disque
    Valeur renvoyée:
        (float) : aire du disque
    """
    return 3.14159 * rayon ** 2

Application II_app2

from random import randint

def de24():
    return randint(1,24)

1) Expliquer le role de la ligne 1.

2) Compléter le code avec les annotations de type et une docstring.

Afficher la correction

1)

La première ligne permet d'importer le module random

2)

from random import randint

def de24()->int:
    """
    Renvoie un nombre aléatoire entre 1 et 24
    Valeur renvoyée
        (int) : entier aléatoire entre 1 et 24
    """
    return randint(1,24)

Applications

Application III_app1

Écrire un programme avec :

Afficher la correction
def volume_cube(c:float)->float:
    """
    Renvoie le volume d'un cube
    Paramètre :
        c (float) : côté du cube
    Return :
        (float) : volume du cube
    """
    return c ** 3

# Programme pincipal
cote1 = 5
volume1 = volume_cube(cote1)
cote2 = 2.5
volume2 = volume_cube(cote2)

Application III_app2

1) Écrire une fonction B_nb(nb) qui prend un nombre en paramètre et renvoie une chaine de caractère constituée de la lettre B suivie du nombre passé en paramètre.

2) Ajouter, dans le programme principal, l'instruction qui permet de vérifier que B_nb(7) renvoie bien "B7".

3) Sur feuille : Quelle sera la valeur stockée dans la variable a avec l'instruction suivante : a = B_nb(B_nb(52))

Sur ordinateur : Vérifier votre proposition.

Afficher la correction
def B_nb(nb):
    """
    Renvoie une chaine commençant par 'B' suivie du nombre passé en paramètre
    Paramètre :
        nb (int) : nombre entier
    Return :
        (str) : chaine commençant par 'B' suivie de nb
    """
    return 'B' + str(nb)

# Programme pincipal
resultat_test1 = B_nb(7) == 'B7'
a = B_nb(B_nb(52))

Application III_app3

1) Écrire une fonction qui :

2) Compléter le programme principal pour tester la fonction avec les valeurs 3 et 4.

Théorème de Pythagore

Application III_app4

Écrire une fonction qui simule un dé à six faces, c'est-à-dire une fonction qui renvoie un entier aléatoire parmi 1, 2, 3, 4, 5 ou 6.

Deux dés à 6 faces