mercredi 17 avril 2019

Can we have en ELSE statement without IF [duplicate]

This question already has an answer here:

I recently noticed this snippet of code to find prime numbers between a range of numbers. Let me put the code here as well -

start = 11
end = 25
for val in range(start, end + 1): 
   # If num is divisible by any number   
   # between 2 and val, it is not prime  
   for n in range(2, int(val/2)+1): 
       if (val % n) == 0: 
           break
   else: 
       print(val)
11
13
17
19
23

If the inner for loop is exhausted without getting remainder 0 for any of the divisors, then the said number is a prime number. In this case this else, which doesn't even have its corresponding if, gets executed thereby printing the prime number. But, in case we found a divisor which produces 0 as remainder, then we break from the inner for loop, but this time the else is not executed.

My question: What is this construct where we can have an else statement without its engendering if statement? Can anyone explain as to how this construct even works?

Aucun commentaire:

Enregistrer un commentaire