了解python3 docs示例代码

时间:2013-06-13 15:45:59

标签: python

为什么第一次迭代不会转到第一个print语句。毕竟,不是2%2 == 0?

>>> for n in range(2, 10):
...     for x in range(2, n):
...         if n % x == 0:
...             print(n, 'equals', x, '*', n//x)
...             break
...     else:
...         # loop fell through without finding a factor
...         print(n, 'is a prime number')
...
2 is a prime number
3 is a prime number

2 个答案:

答案 0 :(得分:1)

第一次循环,n = 2所以x位于range(2, 2),这是一个空列表。迭代空列表不会进入内部循环,但会执行else子句。

答案 1 :(得分:0)

2不在range(2, 2)中。 range的上限是独占的,因此它在到达之前就会停止。