Corrigé du TD1 : variables et types natifs
Exercice 1 — None
verifier_age ne contient pas de return sur le chemin où age < 18 : la fonction renvoie donc implicitement None.
Exercice 2 — bool
bool est un sous-type de int (True = 1, False = 0), donc ces valeurs se comportent comme des entiers dans les calculs.
Exercice 3 — math
Exercice 4 — round
Ce comportement (arrondi au pair) est une spécificité de Python à signaler : il évite un biais systématique vers le haut lors d’arrondis répétés sur de grandes quantités de données.
Exercice 5 — typage dynamique / affectation chaînée
Le même nom a a désigné successivement un int puis un str : c’est le typage dynamique (le type est attaché à la valeur, pas au nom).
x, y = y, x = 1, 2. Alorsprint(x,y)affiche :
Python évalue l’expression 1, 2 (le tuple (1, 2)) une seule fois, puis l’affecte à chaque cible de gauche à droite :
x, y = (1, 2)→x = 1,y = 2y, x = (1, 2)→y = 1,x = 2Le résultat final est doncx = 2,y = 1.
- En deux lignes:
Exercice 6 — références, is, ==
==compare les valeurs ;iscompare les références (même emplacement mémoire, donné parid).- Remarque pour l’enseignant : CPython “interne” (met en cache) certaines chaînes courtes et simples, donc
a is bpeut afficherTruemême sans lien explicite entreaetb— c’est un détail d’implémentation, pas une garantie du langage. En revanche,a is cest toujoursTrueici puisquec = afait explicitement référence au même objet. C’est l’occasion de préciser que seulc = agarantitis, pas l’égalité de contenu.
Exercice 7 — méthodes de chaînes
Exercice 8 — f-strings
Exercice 9 — parser une date
- La méthode
splitest plus robuste : elle ne dépend pas de positions fixes. Si le jour ou le mois avait un seul chiffre (format non normalisé), le slicing donnerait des résultats faux, alors quesplit("-")fonctionne tant que le séparateur-reste présent.