Adloun

Python (école d'ingénieur) · Chapitre 1 · Exercice

Interning des petits entiers

Bases de Python, variables et types

Énoncé

Expliquer pourquoi le code suivant produit un résultat différent selon la valeur de l'entier.

a = 256
b = 256
print(a is b)  # True

x = 257
y = 257
print(x is y)  # False (dans l'interpréteur standard)

Corrigé

Cache des petits entiers : Python préeffectue (intern) les entiers compris entre -5 et 256. Toutes les références à ces entiers pointent vers le même objet réutilisé en mémoire. Pour les entiers hors de cette plage, Python crée de nouveaux objets distincts lors des affectations.

Conséquence pratique : Ne jamais utiliser is pour comparer des entiers ; utiliser == pour l'égalité de valeur (257 == 257 renvoie toujours True).

100 % gratuit

La suite du chapitre est sur Adloun

Exercice suivant et tuteur

Sans compte : le cours et le premier QCM. Exercices et tuteur : inscription gratuite en 30 secondes, sans carte bancaire.

Le cours du chapitre · Tous les exercices du chapitre

Exercice suivant et tuteur →