原文链接: Python for-else 语句
当循环正常退出时,包括循环结束和continue时,才会调用else中的语句
当使用break结束循环时,不会执行else中的语句
1for i in range(5): 2 print(i) 3else: 4 print('else') 50 61 72 83 94 10else 11 12 13for i in range(5): 14 print(i) 15 if i == 3: 16 break 17else: 18 print('else') 190 201 212 223 23 24for i in range(5): 25 print(i) 26 if i == 3: 27 continue 28else: 29 print('else') 300 311 322 333 344 35else
一种使用场景,当没有找到需要处理的items时,会执行not_found
1for item in container: 2 if search_something(item): 3 # Found it! 4 process(item) 5 break 6else: 7 # Didn't find anything.. 8 not_found_in_container()
素数的寻找,内循环中,如果没有执行break,则表示没有不是2--n-1的因子,也就是说该数是素数
1for n in range(2, 10): 2 for x in range(2, n): 3 if n % x == 0: 4 print(n, 'equals', x, '*', n / x) 5 break 6 else: 7 # loop fell through without finding a factor 8 print(n, 'is a prime number') 9 10 112 is a prime number 123 is a prime number 134 equals 2 * 2.0 145 is a prime number 156 equals 2 * 3.0 167 is a prime number 178 equals 2 * 4.0 189 equals 3 * 3.0