1

最初の繰り返しが最初の 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
4

2 に答える 2

1

ループを初めて通過するときn = 2xrange(2, 2)空のリストです。空のリストを繰り返し処理しても、内側のループには入りませんが、else句は実行されます。

于 2013-06-13T15:58:34.100 に答える
0

2は入っていませんrange(2, 2)。の上限rangeは排他的であるため、到達する前に停止します。

于 2013-06-13T16:00:42.223 に答える