我正在通过LPTHW,练习33,以及在最后一次学习练习中,他们要求将我所拥有的代码更改为' for'循环,而不是' while'循环我写的。以下是我提出的代码:
numbers = []
def loop(i, x, new_num):
while i < x:
print "At the top i is %d" % i
numbers.append(i)
i = i + new_num
print "Numbers now: ", numbers
print "At the bottom i is %d" % i
print "The numbers: "
for num in numbers:
print num
loop(0, 10, 6)
现在,学习练习指示我,&#34;现在,将其编写为使用for循环和范围。你需要增量器吗? 中间了?如果你没有摆脱它会发生什么?&#34;
这是我能够走得多远,但我不知道自己是否朝着正确的方向前进。基本上只是在黑暗中拍摄:
numbers = []
new_numbers = [0]
def loop2():
for i in new_numbers:
print "At the top i is %d" % i
numbers.append(i)
我不知道在哪里插入&#39;范围&#39;功能要么。如果我设法将其转变为&#39; for&#39;循环确实完成了这个&#39; while&#39;循环代码呢,它会是什么样子?
答案 0 :(得分:0)
在使用while循环的工作示例中,您在每个循环中分配i = i + new_num
,因此您按i
迭代new_num
。这可以使用range
轻松复制。
range
最多需要3个参数:(starting_point, upper_bound, num_to_iterate_by)
在您的代码中,i
是起点,x
是上限,new_num
是每个循环迭代的数字。
注意: for循环中的第三个参数是可选的。如果没有指定,Python将使用1作为默认迭代器。
您的代码更改
while i < x:
替换for i in range(i, x, new_num):
i = i + new_num
-
numbers = []
def loop(i, x, new_num):
for i in range(i, x, new_num):
print "At the top i is %d" % i
numbers.append(i)
print "Numbers now: ", numbers
print "At the bottom i is %d" % i
print "The numbers: "
for num in numbers:
print num
loop(0, 10, 6)
<强>输出:强>
At the top i is 0
Numbers now: [0]
At the bottom i is 0
At the top i is 6
Numbers now: [0, 6]
At the bottom i is 6
The numbers:
0
6
答案 1 :(得分:-1)
通过在范围内使用for =&gt; for i in range(x,y)
numbers = []
def loop(i, x, new_num):
for i in range(i, x):
print "At the top i is %d" % i
numbers.append(i)
i = i + new_num
print "Numbers now: ", numbers
print "At the bottom i is %d" % i
print "The numbers: "
for num in numbers:
print num
loop(0, 10, 6)