我正在尝试将其转换为while循环。
def function(n, step):
s = 0
for i in range(1, n, step):
s += i
return s
有什么想法吗?
def function(n, step):
s = 0
i = 1
while i<n:
所以我不知道在此之后该怎么做。
编辑:所以解决方案是
def function(n, step):
s = 0
i = 1
while(i<n):
s += i
i += step
return s
答案 0 :(得分:0)
range(a, b, c)
会返回一个从a
开始的迭代,其每一步都会递增c
,直到达到b
,排除。所以你所要的就是这样:
def function(n, step):
s = 0
i = 1
while i < n:
s += i
i += step
return s
尽管如此,它并不是你应该这样做的方式,除非它是python练习的一部分。更好的方式是:
def function(n, step):
return sum(range(1, n, step))
sum()
是Python的内置函数之一
答案 1 :(得分:0)
您应该将初始值设为def function(n, step):
s = 0
i = 1
while(i<n):
s += i
i += step
return s
并在每个循环中逐步递增此值
Point point = new Point(x, y)
答案 2 :(得分:0)
这里的很多答案是正确的,除非他们将索引设置为1.范围()函数是基于0索引的所以我应该从0开始。您可以使用以下示例代码检查差异:
n = 40
step = 3
def function(n, step):
s = 0
for i in range(s, n, step):
s += i
return s
def function2(n, step):
s = 0
i = 0
while(i < n):
s += i
i += step
return s
def function3(n, step):
s = 0
i = 1
while(i < n):
s += i
i += step
return s
print("Range function: %s" % function(n, step))
print("While loop, i=0: %s" % function2(n, step))
print("While loop i=1: %s" % function3(n, step))
这里是这些值的输出
Range function: 273
While loop, i=0: 273
While loop i=1: 247
答案 3 :(得分:-2)
您可以使用1个附加语句完成for循环中的操作,以增加i
循环
while
的值{/ 1}}
def funt(n, step):
s = 0
i = 1
while i < n:
s+=i
i+=1
return s