Activités - Les fonctions (1)
2ème année maturité
Objectifs de ce premier cours
- Comprendre l'utilité de définir des fonctions (éviter de se répéter, réutiliser, organiser).
- Connaître la structure d'une fonction :
def, nom, paramètres,:, corps indenté,return. - Savoir écrire et appeler des fonctions simples.
Regarde la vidéo en entier (tu peux la mettre en pause et revenir en arrière autant que tu veux). Tu peux avoir Thonny ouvert à côté pour retaper les exemples.
print(...), int(...), max(...), range(...),
forward(...), penup()… sont toutes des fonctions prédéfinies.
Dans ce cours, tu vas apprendre à créer tes propres fonctions.
src de la balise <iframe> ci-dessus
(par ex. le lien « Intégrer » YouTube : https://www.youtube.com/embed/XXXXXXXXXXX).
Fiche mémo — à garder sous les yeux
Définir une fonction (elle ne s'exécute pas encore !) :
def nom_de_la_fonction(parametre1, parametre2) :
# corps de la fonction (indenté de 4 espaces)
return resultat # facultatif : retourne une valeur
Appeler la fonction (là, elle s'exécute) :
nom_de_la_fonction(argument1, argument2)
Paramètre vs argument :
le paramètre est le nom écrit dans la définition (parametre1),
l'argument est la valeur donnée au moment de l'appel (argument1).
À retenir :
print affiche à l'écran ; return retourne une valeur
réutilisable dans la suite du programme.
Coche une réponse par question, puis clique sur Vérifier mes réponses. Si tu hésites, retourne voir le passage correspondant de la vidéo.
1. Pourquoi définit-on des fonctions ?
2. Quel mot-clé sert à définir une fonction ?
3. À la fin de la ligne qui commence par def, on met toujours…
4. Comment appelle-t-on les informations écrites entre les parenthèses, qu'on donne à la fonction ?
5. Que fait l'instruction return ?
6. Qu'est-ce qui délimite le corps (le contenu) d'une fonction ?
7. Quelle est la différence entre print et return ?
8. Comment nomme-t-on l'instruction de la ligne 10 ?
9. Que se passe-t-il si on définit une fonction mais qu'on ne l'appelle jamais ?
10. Dans saluer("Alice"), comment appelle-t-on la valeur "Alice" ?
Complète chaque trou en cliquant dedans, puis clique sur Vérifier. Les guillemets font partie de la réponse quand il y en a. Tu peux Copier le code (avec tes réponses) pour le tester dans Thonny.
On définit une fonction sans paramètre, puis on l'appelle deux fois. Complète le mot-clé de définition, les deux-points, et l'appel de la fonction.
dire_bonjour()
print("Bonjour et bienvenue !")
dire_bonjour
dire_bonjour
La fonction saluer reçoit un prénom en paramètre. Complète le nom du paramètre utilisé dans le print, puis passe le prénom de ton choix comme argument lors de l'appel (n'importe quel prénom entre guillemets, par ex. "Alice").
def saluer(prenom) :
print("Bonjour", )
saluer()
La fonction carre doit retourner le carré du nombre passé en argument. Complète le mot-clé qui retourne une valeur, puis récupère le résultat de l'appel dans une variable.
def carre(nombre) :
nombre * nombre
nombre =
resultat =
print(f"Le carré de {nombre} est", resultat)
Complète la définition de la fonction (mot-clé, nom, paramètres) et le calcul renvoyé : l'aire d'un rectangle est largeur * hauteur.
aire_rectangle(largeur, hauteur)
return
print("Aire :", aire_rectangle(5, 3))
Ouvre Thonny et crée un nouveau fichier pour chaque exercice (ou un seul fichier avec tout, comme tu préfères). Écris le programme, teste-le, puis compare avec le corrigé. Il y a plus d'exercices que nécessaire : va à ton rythme et monte en difficulté.
Écris une fonction dire_bonjour(), sans paramètre, qui affiche
« Bonjour, prêt à coder ? ». En dessous de ta fonction, appelle-la trois fois.
def dire_bonjour() :
print("Bonjour, prêt à coder ?")
dire_bonjour()
dire_bonjour()
dire_bonjour()
Écris une fonction saluer(prenom) qui affiche « Salut » suivi du prénom reçu en paramètre.
Appelle-la avec trois prénoms différents de ton choix.
def saluer(prenom) :
print("Salut", prenom)
saluer("Alice")
saluer("Bob")
saluer("Chloé")
print(f"Salut {prenom}").Écris une fonction carre(nombre) qui retourne (avec return) le carré du nombre.
Ensuite, demande un nombre à l'utilisateur avec input, appelle ta fonction, et affiche le résultat.
def carre(nombre) :
return nombre * nombre
n = int(input("Donne un nombre entier : "))
print("Son carré est", carre(n))
carre utilise return, on peut réutiliser sa valeur (ici directement dans le print).Écris une fonction aire_rectangle(largeur, hauteur) avec deux paramètres, qui retourne l'aire.
Demande la largeur et la hauteur à l'utilisateur, puis affiche l'aire.
def aire_rectangle(largeur, hauteur) :
return largeur * hauteur
l = float(input("Largeur : "))
h = float(input("Hauteur : "))
print("L'aire du rectangle est", aire_rectangle(l, h))
Écris une fonction moyenne(a, b) qui retourne la moyenne de deux nombres.
Teste-la en affichant, par exemple, la moyenne de 4.5 et 5.5, puis avec deux notes saisies au clavier.
def moyenne(a, b) :
return (a + b) / 2
print("Moyenne de 4.5 et 5.5 :", moyenne(4.5, 5.5))
note1 = float(input("Première note : "))
note2 = float(input("Deuxième note : "))
print("Ta moyenne est", moyenne(note1, note2))
a + b : sans elles, Python calculerait a + b/2.Écris une fonction prix_reduit(prix, remise) où remise est un pourcentage (par ex. 20 pour 20 %).
La fonction retourne le prix à payer après réduction. Affiche par exemple le prix d'un article à 50 francs avec 20 % de remise.
def prix_reduit(prix, remise) :
return prix - prix * remise / 100
print("À payer :", prix_reduit(50, 20), "francs")
prix * remise / 100), puis on le soustrait au prix.Écris une fonction appreciation(note) qui retourne le texte "Réussi" si la note est supérieure ou égale à 4,
et "Échoué" sinon. (Un if / else à l'intérieur de la fonction, avec un return dans chaque branche.)
Teste-la avec plusieurs notes.
def appreciation(note) :
if note >= 4 :
return "Réussi"
else :
return "Échoué"
print("Note 5.5 :", appreciation(5.5))
print("Note 3 :", appreciation(3))
ma_note = float(input("Ta note (1 à 6) : "))
print(appreciation(ma_note))
return est exécuté, la fonction s'arrête et retourne sa valeur : les deux branches ne peuvent pas s'exécuter en même temps.C'est ici qu'on voit toute la puissance des fonctions ! Écris une fonction point_colore(x, y, couleur) qui
déplace la tortue au point (x, y) (crayon levé) et y dessine un gros point dot(40) de la couleur donnée.
Ensuite, appelle ta fonction plusieurs fois pour dessiner d'un coup plusieurs points de couleurs différentes.
Rappel Turtle : penup(), goto(x, y), color("..."), dot(taille).
from turtle import *
def point_colore(x, y, couleur) :
penup()
goto(x, y)
color(couleur)
dot(40)
point_colore(-100, 0, "red")
point_colore(0, 0, "green")
point_colore(100, 0, "blue")
point_colore(0, 100, "orange")
hideturtle()
triangle(cote) qui dessine un triangle équilatéral (trois fois : forward(cote) puis left(120)).
Appelle-la avec des tailles différentes. On combinera bientôt les fonctions avec les boucles pour aller encore plus vite.