i = 0
numbers = []
while i < 6:
print "at the top i is %d" % i
numbers.append(i)
i = i + 1
print "Numbers now:", numbers
print "At the bottom i is %d" %i
print "numbers:"
for num in numbers:
print num
This version can work correctly, but I modify this but can not work correctly, as follows:
i = 0
numbers = []
start_num = raw_input('>>>')
def show_num(start_num):
global i
while i < start_num:
print "At the top i is %d" %i
numbers.append(i)
i += 1
print "Number now: ", numbers
print "At the bottom i is %d" %i
show_num(start_num)
The correct result is:
at the top i is 0
Numbers now: [0]
At the bottom i is 1
at the top i is 1
Numbers now: [0, 1]
At the bottom i is 2
at the top i is 2
Numbers now: [0, 1, 2]
At the bottom i is 3
at the top i is 3
Numbers now: [0, 1, 2, 3]
At the bottom i is 4
at the top i is 4
Numbers now: [0, 1, 2, 3, 4]
At the bottom i is 5
at the top i is 5
Numbers now: [0, 1, 2, 3, 4, 5]
At the bottom i is 6
numbers:
0
1
2
3
4
but the second code shows the infinite one plus one plus...
Why does the second code fail?