![](https://secure.gravatar.com/avatar/d8798382aa64d5767d749a8328364e53.jpg?s=120&d=mm&r=g)
Hi Oliver! This list is not intended to get help about Python, just to report issues or discuss enhancements about its documentation. If you feel this question is induced by something that could have been explained better in the doc, feel free to let me know and proponse enhancements. About your question, looks like you missed the fact that the else is at the same level as the for, not the same level as the if. So the else is bound to the for, not the if, which looks surprising if you don't know Python yet. But as 4.4 is about "else Clauses on Loops" we're right on the topic. About 9 being found to equal 3 × 3 ahere's the flow: - We're on the n = 9 loop of the first for, so n = 9 during the whole explanation - x get assigned to 2, as you said there's a reminder of 1, so the if block is not executed. No jump to an "else" as there is no "else" for this if (remember: this else is at the for level). - x get assigned to 3, 9 % 3 equals zero so the if block is executed, the print prints, and the loop breaks. As the loop exited with a break, the else block is *not* executed, the last print is not printed (9 is not prime). Hope it helps, Bests, -- Julien Palard