python - 为什么 num = 100?
问题描述
在这个 Python 参数中:
total = 0
for num in range(101):
total = total + num
print(total)
在 Python IDLE shell 中运行代码后(它运行正确,返回值 5050),如果我要求它返回 的值num
,它返回 100。
为什么?我从来没有赋值num
过?循环是否为for
它分配了一个值?
解决方案
range是一个生成器。
对于每个循环迭代,num 从 0 开始递增。
当您说 range(101) 时,它实际上采用 [0,101) 中的所有值
因此,在您的示例中,它不采用值 101。
range() 定义为
range(start, stop, step)
start 和 step 不是强制性的