L'affectation ma_date = **2026, 9, 11** crée un tuple, et annee, mois, jour = ma_date récupère séparément ses trois valeurs.
Une fonction Python peut recevoir un tuple en argument et renvoyer plusieurs résultats en retournant un tuple.
Un tuple comme une boîte contenant plusieurs valeurs, déballées par affectation multiple
Avec l1test, on écrit dans la docstring un appel près de $$$ puis la valeur attendue, avant de lancer tous les tests avec le bouton « Run All tests ».
Pour la fonction lendemain, les tests doivent notamment couvrir une date ordinaire, les fins de mois à 30 et 31 jours, la fin d'année, le 28 février d'une année non bissextile, le 28 février d'une année bissextile et le 29 février.
Cas particulier → test dans la docstring → Run All tests → correction
Problème complexe → sous-problèmes plus petits → fonctions spécialisées
dernier(mois, annee) renvoie 30 pour avril, juin, septembre et novembre, 29 ou 28 pour février selon l'année, et 31 pour les autres mois.lendemain décompose la date en année, mois et jour, augmente le jour, puis remet le jour à 1 et augmente le mois si le jour dépasse dernier(mois, annee), avant de gérer le passage de décembre à janvier.Jour suivant → changement de mois → changement d’année
★ À maîtriser
📌 Une année est bissextile si elle est divisible par 4 et non divisible par 100, ou si elle est divisible par 400.
Compléments
annee % 4 == 0 and annee % 100 != 0 or annee % 400 == 0.📌 L'opérateur ternaire remplace
if condition: return valeur_1 else: return valeur_2parreturn valeur_1 if condition else valeur_2, et permet aussi une affectation conditionnelle.
Février bissextile : 29 jours ; année non bissextile : 28 jours
Dans le problème du château de cartes, l'entrée est un entier représentant le nombre d'étages et le résultat est un entier représentant le nombre de cartes.
Pour passer d'un château de n − 1 étages à un château de n étages, on met à jour la base avec base = base + 3, puis le total avec nb_cartes = nb_cartes + base.
Nouvelle base → nouvelles cartes → château d’étage supérieur
range est un itérable qui distribue des entiers selon une borne de départ, une borne d'arrivée exclue et éventuellement un pas.range(a, b) distribue les entiers de a à b − 1, range(a, b, p) utilise le pas p, et range(b) équivaut à range(0, b, 1).
La fonction chateau(nb_etages) initialise nb_cartes et base à 2, puis parcourt range(2, nb_etages + 1) pour mettre à jour ces deux variables et renvoyer le nombre total de cartes.
Initialiser → parcourir range → mettre à jour → obtenir le résultat
Formes de range
| Expression | Entiers distribués | Usage dans le château |
|---|---|---|
range(a, b) | a à b − 1 | Borne de départ et borne finale exclue |
range(a, b, p) | a, a + p, etc., avant b | Itération avec un pas |
range(b) | 0 à b − 1 | Équivalent à range(0, b, 1) |
Teste tes connaissances sur Programmation Python : fonctions et boucles avec 11 questions à choix multiples et corrections détaillées.
1. Après l’affectation `ma_date = 2026, 9, 11`, que produit l’instruction `annee, mois, jour = ma_date` ?
2. Quel est le rôle d’une docstring placée au début du corps d’une fonction Python ?
Mémorisez les concepts clés de Programmation Python : fonctions et boucles avec 11 flashcards interactives.
Qu'est-ce qu'un tuple en Python ?
Un objet qui manipule plusieurs valeurs séparées par des virgules.
Que fait l'affectation `annee, mois, jour = ma_date` ?
Elle récupère séparément les trois valeurs du tuple.
Qu'est-ce qu'une docstring dans une fonction ?
Une chaîne de caractères au début du corps d'une fonction décrivant son rôle et contenant des exemples de tests.
Importe ton cours et l'IA génère fiches, QCM et flashcards en 30 secondes.
Générateur de fiches