基于提供的范围,重复执行特定次数的操作
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出来看一看
</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)