3. Les fonctions¶
Mémento Python
Raccourcis clavier
C’est quoi une fonction ? 🤨¶
Python, comme tout autre langage de programmation, contient tout une séries de fonctions, c’est-à-dire des instructions déjà définies qui font faire quelque chose de précis au programme.
Nous en avons déjà utilisés deux au chapitre précédent, la fonction print
qui affiche quelque chose à l’écran et la fonction type
qui retourne le type d’un objet.
Elles permettent aux programmeurs de gagner du temps en réutilisant du code déjà écrit (par quelqu’un d’autre) 🙏
L’appel d’une fonction s’effectue en indiquant la nom de la fonction, suivi d’une paires de parenthèses. Ces parenthèse contiennent les éventuels arguments de la fonction, c’est-à-dire les objets nécessaires pour que la fonction puisse être exécutée. S’il y en a plusieurs, ces arguments sont séparés par des virgules.
Dans l’exemple ci-dessus, chaque appel de fonction se fait en fournissant un argument.
Cet argument peut soit être une valeur donnée directement (comme dans les deux premières lignes), soit une variable (ligne 4-5).
Certaines fonctions prennent plus qu’un argument comme la fonction pow
qui calcule la puissance de deux nombres, et qui a donc besoin de deux arguments.
⚠️ Si vous ne donnez qu’un seul argument à la fonction pow
, Python vous indiquera une erreur. ⚠️
Souvent, les fonctions retournent une valeur qui contient le résultat de la fonction.
Dans l’exemple ci-dessus, ce résultat (ici 8) est stocké dans la variable a
puis affiché.
La fonction print
a ceci de spécial qu’elle peut accueillir zéro, un, ou plusieurs arguments.
Chaque argument sera alors affiché et séparé par un espace.
Il est aussi possible d’utiliser ce qu’on appelle un f-string (pour string formaté) afin d’intégrer directement des variables à une chaîne de caractères.
Un string formaté a toujours la forme suivante : f"...{var1}...{var2}..."
où var1
, var2
, etc sont des variables dont l’on veut afficher la valeur.
Ainsi les 2 print
de l’exemple précédent affichent la même chose.
Exercice 7
Ecrivez un programme qui calcule 3.5 à la puissance 5 et qui affiche le résultat à l’aide d’une phrase commençant par “3.5 à la puissance 5 vaut …”.
Solution
Python contient un grand nombre de fonctions, et la plupart d’entre elles sont organisées au sein de modules, qui ne sont rien d’autre que des collections de fonctions.
Par exemple, le module math
contient beaucoup de fonctions mathématiques 🤓, comme la fonction sqrt
qui calcule la racine carrée (square root en anglais) d’un nombre.
Pour utiliser ces fonctions, il faut d’abord importer le module grâce à l’instruction import
.
La première ligne de l’exemple ci-dessus indique que l’on va utiliser les fonctions du module math
.
La seconde ligne utilise la fonction sqrt
pour calculer la racine carrée de 9.
La description des fonctions du module math
est disponible ici.
Exercice 8
Trouvez dans le lien ci-dessus la fonction permettant de calculer le sinus d’un nombre. Ecrivez un programme calculant le sinus de 1 radian et affichant le résultat à l’écran.
Solution
Les fonctions d’entrée (input)¶
Une des fonctions les plus utiles est la fonction input(phrase)
qui affiche phrase
dans le terminal et retourne la chaîne de caractères que l’utilisateur ou l’utilisatrice écrit dans le terminal.
Cela lui permet de donner des informations au programme, et le résultat du programme pourra ainsi dépendre des indications de la personne qui l’utilise 😉
Dans cet exemple, le programme va demander à la personne utilisatrice d’écrire son nom dans le terminal, puis assignera la chaîne de caractère entrée à la variable nom
.
Il affiche ensuite “Bonjour” suivi du nom donné par la personne utilisatrice.
Exercice 9
Ecrivez un programme demandant d’abord le nom, puis le prénom de l’utilisateur ou l’utilisatrice et qui la salue ensuite avec son prénom et son nom.
Solution
Si l’on souhaite que l’utilisateur rentre un nombre, il faudra convertir la chaîne de caractère rentrée soit en un nombre entier avec la fonction int
, soit en nombre à virgule avec la fonction float
.
Si l’on n’appelle pas la fonction int
dans la première ligne, annee
sera une chaîne de caractère et la seconde ligne retournera une erreur car Python ne sait pas comment soustraire une chaîne de caractère à un nombre 😵 (faites le test !).
Exercice 10
Ecrivez un programme qui demande d’entrer un nombre et affiche le carré de ce nombre dans le terminal.
Solution
Exercice 11
Complétez et exécutez le programme suivant:
(Rappel : La circonférence d’un cercle est égale à pi fois son diamètre.
La surface d’un cercle est égale à pi fois son rayon au carré.)
Solution
Exercices Turtle 🐢 (facultatif)¶
Exercice - Une maison sur demande
Reprenez l’exercice Turtle du chapitre précédent mais permettez à l’utilisateur ou utilisatrice de choisir la taille de la maison grâce à la fonction prédéfinie input
.
Solution