python中的break语句2.6

问题描述:

primes = set([1,2,3]) 

for r in range(1,20): 

    if (r not in primes): 
     for q in range(2,r): 
      if r % q == 0: 
       break 
      primes.add(r) 

print primes 

set([1, 2, 3, 5, 7, 9, 11, 13, 15, 17, 19]) 

如何将9和15从素数列表中排除?python中的break语句2.6

使用for-else循环:

primes = set([1,2,3]) 

for r in range(1,20): 

    if (r not in primes): 
     for q in range(2,r): 
      if r % q == 0: 
       break 
     else: 
      #this will execute only if the for-loop completed without any breaks 
      primes.add(r) 

print primes 
#set([1, 2, 3, 5, 7, 11, 13, 17, 19])