Gegeven de syntactische regels voor if-elif-else constructies en inspringing, is het mogelijk om if statements op te nemen in de code blokken behorende bij andere if statements. Zo’n geneste if wordt alleen uitgevoerd als de boolean expressie behorende bij het code blok waarin de geneste if staat True is.

Het nesten van condities dient men zoveel mogelijk te vermijden omwille van efficiëntie en leesbaarheid. Vaak kan met het gebruik van elif een geneste conditie vermeden worden. Echter zal blijken dat bij moeilijkere opgaven een geneste conditie onvermijdbaar is.

Voorbeeld

x = 41
if x%7 == 0:
    # --- Hier begint een genest blok code ---
    if x%11 == 0:
    print( x, "is deelbaar door 7 en 11." )
    else:
    print( x, "is deelbaar door 7, maar niet door 11." )
    # --- Hier eindigt een genest blok code ---
elif x%11 == 0:
    print( x, "is deelbaar door 11, maar niet door 7." )
else:
    print( x, "is niet deelbaar door 7 of 11." )