首页 > 解决方案 > 为什么 num = 100?

问题描述

在这个 Python 参数中:

total = 0
for num in range(101):
    total = total + num
print(total)

在 Python IDLE shell 中运行代码后(它运行正确,返回值 5050),如果我要求它返回 的值num,它返回 100。

为什么?我从来没有赋值num过?循环是否为for它分配了一个值?

标签: python

解决方案


range是一个生成器。

对于每个循环迭代,num 从 0 开始递增。

当您说 range(101) 时,它实际上采用 [0,101) 中的所有值

因此,在您的示例中,它不采用值 101。

range() 定义为

range(start, stop, step)

start 和 step 不是强制性的


推荐阅读