Beide versies gedragen zich op precies dezelfde manier wanneer de lijst getallen
minstens één negatief getal bevat. Bevat de lijst geen enkel negatief getal,
dan zal het eerste fragment “Niet gevonden” afdrukken, maar zal
het tweede fragment helaas ‘crashen’.
De while-lus zal nog een laatste keer uitgevoerd worden waarbij i
de lengte
van de lijst getallen als waarde heeft, en op dat moment is getallen[i]
geen geldige opdracht meer - de index i
komt nu immers net voorbij
het einde van de lijst.
Dat versie A wel werkt, komt door de manier waarop Python met and
omgaat.
Als de uitdrukking vóór de and
reeds de waarde false
heeft, wordt
de uitdrukking na de and
niet meer uitgewerkt, de waarde van de volledige
and
-uitdrukking zal immers hoe dan ook false
zijn. Dit heet luie
evaluatie.
(Ook or
wordt lui geëvalueerd: als het deel vóór de or
reeds true
is,
wordt het tweede deel niet meer uitgewerkt.)