for n in range(2,10):
for x in range(2,n):
if n%x ==0:
print(n,"equals",x,"*",n//x)
break
print(n,"is a prime number")
情况一:
没有else,且print与break对齐,这种情况下,第二个print就不会被执行,因为if后面的语句执行后就break了,所以break后面同样对齐的语句就never不会被执行。
输出为
4 equals 2 * 2
6 equals 2 * 3
8 equals 2 * 4
9 equals 3 * 3
情况二:
for n in range(2,10):
for x in range(2,n):
if n%x ==0:
print(n,"equals",x,"*",n//x)
break
print(n,"is a prime number")
print与if对齐,这种情况下,相当于else与if对齐的效果,先执行if语句,出现非质数乘积break内部for循环,下一轮再来,输出结果如下:
3 is a prime number
4 equals 2 * 2
5 is a prime number
5 is a prime number
5 is a prime number
6 equals 2 * 3
7 is a prime