2022-10-21-01 不懂就问 range(x,x)
各位老师,请问:range(x,x) 这个结果是 none 吗?还是False
具体举例:
-------------------------------------------------------------------------------------------------
for n in range(2,10):
for x in range(2,n): # 如果 range(2,2),是什么结果,空值为什么不报错呢?
if n % x == 0:
print(n,"=",x,"*",n//x)
break
else:
print(n,"是一个素数")
返回的是一个 range 类型的对象,这个对象是可迭代的,但是其长度为 0。
由于 range 实际上是一个类,所以在代码计算 range(2, 2) 的值的时候是在调用 range 这个类的构造函数,也就返回了一个 range 类型的对象。
(这些知识在类与对象那一章小甲鱼有讲到) 自己在 IDLE 中操作一下,也许就能明白了
>>> list(range(2,10))
>>> list(range(2 , 3))
>>> list(range(2,2))
[]
>>>
很多可迭代对象都无法直接打印出内容,这个时候,可以把它变成列表,然后再打印就可以看到内容了。 jackz007 发表于 2022-10-21 12:49
自己在 IDLE 中操作一下,也许就能明白了
很多可迭代对象都无法直接打印出内容,这个时 ...
range(2,2)
这个列表为空,那变量x娶不到值,不报错吗? 取不到值,如果不报错,那就是循环条件False,然后break了,可以这样理解吗? 本帖最后由 jackz007 于 2022-10-21 13:36 编辑
nuo_1124 发表于 2022-10-21 13:06
range(2,2)
这个列表为空,那变量x娶不到值,不报错吗? 取不到值,如果不报错,那就是循环条件False, ...
for x in range(2 , 2):
不会报错,直接就不会循环。如果这个 for 循环有 else,就会直接进入,执行属于 else 的语句。 jackz007 发表于 2022-10-21 13:34
不会报错,直接就不会循环。如果这个 for 循环有 else,就会直接进入,执行属于 else 的语 ...
空迭代合法,不报错。也不是False 。然后循环条件不成立。谢谢了
页:
[1]