C2.3 : Créer ses fonctions

Prendre connaissance

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

Application : utilisation du vocabulaire

Programme n°1

# Définition des fonctions
def surface(rayon):
    """
    Calcul l'aire d'un disque à 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

Applications

Application III_app1

Écrire un programme avec :

Afficher la correction
def volume_cube(c: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
Afficher la correction
# Importation des modules
from math import sqrt

# Définition des fonctions
def hypothenus(a:float, b: float)->float:
    return sqrt(a ** 2 + b ** 2)

# Programme principal
print(hypothenus(3, 4))

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
Afficher la correction
# Importation des modules
from random import randint

# Définition des fonctions
def de6()->int:
    return randint(1, 6)

# Programme principal
print(de6())
print(de6())