Écrire une fonction en Python qui respecte la spécification suivante :
Paramètre | un nombre réel c |
---|---|
Valeur renvoyée | l'aire du carré de côté c |
Écrire parallèlement à cette fonction une autre fonction qui sera chargée uniquement d'afficher des résultats. Par exemple avec un message tel que : « L'aire du carré de côté 5 (en unité de longueur) est égale à 25 (en unités d'aire) ».
- Un code possible
- Documenter le code
print()
vsreturn
def aire_du_carre(c):
"""
paramètre : c (flottant ou entier)
contrainte : c positif (c représente la longueur du côté d'un carré)
valeur calculée : carré de c
"""
return c*c
def affiche_aire_du_carre(c):
print("L'aire du carré de côté {} unités de longueur est égale à {} unités d'aires.".format(c, aire_du_carre(c)))
affiche_aire_du_carre(3)
affiche_aire_du_carre(5)
Un code bien écrit est un code documenté, commenté.
Dans le corrigé de cet exercice, on a par exemple explicité la spécification de la fonction (le cahier des charges)
dans la partie placée entre les triple guillemets """
et """
juste après l'en-tête de la fonction et avant
le corps de la fonction. L'expression docstring est utilisée dans la documentation Python
pour désigner cette documentation de la fonction.
En classe de seconde, on aura assez peu souvent besoin d'ajouter de tels commentaires.
Les programmes en jeu sont très courts et en général déjà très "documentés" dans l'énoncé de l'exercice.
Il est par contre préférable de respecter une autre habitude d'auto-documentation en donnant des noms explicites
aux fonctions.
Par exemple, nous n'avons pas appelé f
la fonction calculant l'aire du carré mais
aire_du_carre
. De même, la fonction ne servant qu'à un affichage a été nommée
affiche_aire_du_carre
, ce qui permet de comprendre avec son seul nom que l'on
aura affaire à une fonction à "effet de bord" : son rôle principal
n'est pas de calculer une valeur mais de réaliser un affichage.
Il faut faire comprendre au plus tôt la différence entre print
et return
.
Une différence importante est la réutilisation possible de la sortie. Supposons par exemple que l'on ait besoin, dans la suite de l'exercice, de calculer la somme des aires de deux carrés. Une écriture de fonction telle que ci-dessous serait inutilisable (car on ne peut faire des calculs avec un message !) :
def aire_du_carre(c):
print(c*c)
print("La somme de l'aire du carré de côté 3 et de l'aire du carré de côté 5 est égale à :")
aire_du_carre(3)+aire_du_carre(5) # erreur !!
C'est bien return
que l'on doit utiliser :
def aire_du_carre(c):
return c*c
print("La somme de l'aire du carré de côté 3 et de l'aire du carré de côté 5 est égale à :")
print(aire_du_carre(3)+aire_du_carre(5))