checkily 发表于 2018-1-26 15:19:11

求素数程序中的问题

for i in range(10):
    for j in range(2,i-1):
      if i%j==0:
            break
    else:
      print(i,"是素数")

当i的值为1时,j的for循环值变成(2,0) , 那j的值会是什么?None吗?
同样的,当i的值为2时,j的for循环值变成(2,1),那j的值会是什么?

我输入:
for x in range(2,0):
    print(x)
for y in range(2,1):
    print(y)
for z in range(2,2):
    print(z)

都是没有输出内容,求解。

BngThea 发表于 2018-1-26 15:28:43

当i的值为1时,j的for循环值变成(2,0) , 那j的值会是什么?None吗?
是的,此时range函数返回的是空,也就是第二个循环不进行,i=2同理

checkily 发表于 2018-1-26 15:54:48

BngThea 发表于 2018-1-26 15:28
当i的值为1时,j的for循环值变成(2,0) , 那j的值会是什么?None吗?
是的,此时range函数返回的是空, ...

那一个整数整除一个空值,求余数,为不会报错?我在交互模式中输入
2%   2除以空值,会报错的。

BngThea 发表于 2018-1-26 16:20:36

checkily 发表于 2018-1-26 15:54
那一个整数整除一个空值,求余数,为不会报错?我在交互模式中输入
2%   2除以空值,会报错的。

range此时返回的是一个空,所以for循环根本就不执行啊,就没有你说的这个问题

checkily 发表于 2018-1-26 16:29:21

那我明白了。谢谢
页: [1]
查看完整版本: 求素数程序中的问题