python的for..else

lt發表於2017-01-12
S = set(range(2,10))
R = set()
T = set()
for x in S:
   for y in S:
      if x>y and x%y==0: break
   else:R.add(x)

for x in S:
   for y in S:
      if x>y and x%y==0: break
      else:T.add(x)

print S
print R
print T

---
set([2, 3, 4, 5, 6, 7, 8, 9])
set([2, 3, 5, 7])
set([2, 3, 5, 7, 9])

第1個else與第2個for對齊,不知道是什麼意思?
檢視了這篇http://www.cnblogs.com/qq78292959/p/3702604.html, 終於知道了:
在for 迴圈中,如果沒有從任何一個break中退出,則會執行和for對應的else,只要從break中退出了,則else部分不執行。

相關文章