Yes, you are correct, and because the number 1 is added each time the for is running, the for will never end because there will be always a new number.
!!! Anyway, I’ve got another problem with exercise 3 from ’ Infinite Loops’ lesson. I have to create an infinite loop here, which I did but after I hit the run button the page is freezing and I have to refresh the page. When the page has been refreshed the exercise 3 is not checked as done, so I’m actually stuck here. Any idea how to skip this one ?
If I write my code like this, the numbers on the list 4, 8, 15, 16,42 will be printed out.
my_favorite_numbers = [4, 8, 15, 16, 42]
for number in my_favorite_numbers:
my_favorite_numbers.append(1)
However, I do not get why this is an infinite loop. Doesn’t append mean to just add a number. So would it not print 4, 8, 15, 16, 42,1. Why does the loop continuously go on?
Remember that immediately after a return statement is executed, the function will be exited. Make sure you are returning the list with all the students appended.
For us to know what is or isn’t inside a code block with Python, we need to see the indentation. You need to place your code between otherwise blank lines with 3 back ticks on each like so:
That said, what does lista = [] do? You could add a few print() statements to your code to observe what exactly is happening. You could try:
students_period_A = [“Alex”, “Briana”, “Cheri”, “Daniele”]
for st in students_period_A:
lista = [ ]
print(lista) #debug print
lista.append(st)
print(lista) #debug print (see what is in the list before and after the append operation
print(lista)
Hey, I didn’t quite get why:
for student in students_period_A:
students_period_A.append(student)
print(student)
Is an infinite loop and why not:
for student in students_period_A:
students_period_B.append(student)
print(student)
In both loops, a student is added in lists every time, right?
In the first example you are adding a value to the end of the list you are iterating over. If I gave you a bowl of apples, and asked you to remove them one at a time until the bowl is empty, and had you put each apple back in the bowl after you removed it, when would you be finished?
Can someone please supply a walkthrough of the infinite loops exercise - i just don’t get it - by trial and error i manged to get the first bit where we add the list to the other list - but I’m absolutely baffled by the rest - i think the temproray variable thing is confusing me - i think if i saw a walkthrough with an explanation of what was happening and how it was being thought through i MIGHT get it…
Thanks in advance
Going to lie down - been staring at this for an hour and still not getting it!
I’ve written some code that you can run here. Hopefully by running it, and reading the comments, you’ll get an idea of what happens with an infinite loop. (Be sure to click Stop once you get an idea of what is happening.)
For quick reference, this is the code:
from time import sleep #We'll use sleep to slow things down
ab = ['a', 'b']
print(ab)
for value in ab: #value will be assigned each element of the list in turn
print('value:', value)
sleep(1) #this is just to slow things down so we can see what is happening
ab.append(value) #after running the code, comment this line out, and run it again
print(f"The value, {value} was added to the end of the list:\n",ab)
print("All finished!") #this line won't be reached while we have an infinite loop
#This loop will never end. Since we keep adding to the end of the list, we
#can never get to the end of it in the for loop
ah - this helped - i don’t understand all of it but the #value will be assigned # comment really sorted out the function and how it operates - I’ll keep studying this though - Thanks!
Any loop that has a stop condition which is never met, or impossible to meet is infinite. The example above would be similar to me asking a group of people to form a single file line, and have each of them approach you at a desk where they are to give you their name which you write down. Instead of leaving the room after giving you their name, they walk back to the end of the line, and eventually reach the front again, and again, and again forever.