2014-12-04 97 views
0
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

回答

2

使用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])