我在他们的网站上关注 python 教程,我目前在休息继续部分。我刚刚尝试了这个示例代码。
>>> 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 equals 2 * 2
5 is a prime number
6 equals 2 * 3
7 is a prime number
8 equals 2 * 4
9 equals 3 * 3
而不是吐出上面所说的我得到
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 number
7 is a prime number
7 is a prime number
7 is a prime number
7 is a prime number
8 equals 2 * 4
9 is a prime number
9 equals 3 * 3
在我看来,它继续运行内部 for 循环,但为什么本教程不考虑这一点?最新的解释器版本是否已经过时(我正在运行 xubuntu jaunty)?
我能够通过添加该行来修复它
else:
... if n != y:
... print n, 'is a prime number'
... y = n
但我担心这可能是不好的编码习惯。谢谢您的帮助。