for 循环和循环范围

for 循环的特点

基于提供的范围,重复执行特定次数的操作

def sumFromMToN(m, n):
    total = 0
    # 注意: range(x, y) 是左闭右开区间,包含 x,不包含 y
    for x in range(m, n+1): # 记住for函数后面有冒号
        total += x # total = total + x
    return total
sumFromMToN(5, 10)
sumFromMToN(5, 10) == 5+6+7+8+9+10

range() 是什么

其实在这里,我们也可以不用循环来完成同样的任务

def sumFromMToN(m, n):
    return sum(range(m, n+1))
sumFromMToN(5, 10)

如果我们省略第一个参数会发生什么?

def sumToN(n):
    total = 0
    # range 起始范围默认为 0
    for x in range(n+1):
        total += x
    return total
sumToN(5)

<aside> 💡 range()本质上可以认为是一个数列生成器

我们可以直接print出来看一看

Untitled

</aside>

那如果我们添加第三个参数呢?

def sumEveryKthFromMToN(m, n, k):
    total = 0
    # 第三个参数k为 “步长” step,可以理解成等差数列的公差
    for x in range(m, n+1, k):
        total += x
    return total
sumEveryKthFromMToN(5, 20, 7) == (5 + 12 + 19)