如果if语句说不应该是2,那么为什么将2打印为素数

时间:2016-09-15 01:14:47

标签: python python-3.x

我知道2是素数,但是当运行此代码时,它与if语句条件puts s1.to_s + " " + s2.to_s不匹配。但是if n % x == 0所以它应该是平等的:

2 % 2 == 0

1 个答案:

答案 0 :(得分:6)

来自range()

的Python文档
  

对于肯定的步骤,范围r的内容由公式r[i] = start + step*i确定,其中i >= 0r[i] < stop

     

如果r[0]不符合值约束,则范围对象将为空。

因此,当n = 2时,range(2, n)为空范围,因为r[0]2并且不符合约束2 < 2。因此,for循环永远不会运行,因此它永远不会中断,因此执行else:块并报告它是否为素数。