Retour aux quiz
Débutant

Opérateurs logiques and et or

Combien d'itérations cette boucle effectue-t-elle ?

quiz.py
1
a = 256
2
b = 256
3
print(a is b)
4
 
5
a = 257
6
b = 257
7
print(a is b)

Réponses possibles

Atrue puis true
Bfalse puis false
Ctrue puis false
Dfalse puis true

Explication

En Python, les petits entiers (-5 à 256 inclus) sont mis en cache (pour des raisons de performances). Donc a et b sont le même objet quand ils valent 256, mais plus quand ils valent 257. Ça fonctionne aussi avec -5 (même objet) et -6 (différents objets). À noter que ce comportement peut dépendre de votre implémentation de Python si vous n'êtes pas sur CPython par exemple.