FAQ: Learn Python: Loops - Infinite Loops

This community-built FAQ covers the “Infinite Loops” exercise from the lesson “Learn Python: Loops”.

Paths and Courses
This exercise can be found in the following Codecademy content:

Computer Science
Data Science

FAQs on the exercise Infinite Loops

Join the Discussion. Help a fellow learner on their journey.

Ask or answer a question about this exercise by clicking reply (reply) below!

Agree with a comment or answer? Like (like) to up-vote the contribution!

Need broader help or resources? Head here.

Looking for motivation to keep learning? Join our wider discussions.

Learn more about how to use this guide.

Found a bug? Report it!

Have a question about your account or billing? Reach out to our customer support team!

None of the above? Find out where to ask other questions here!

6 posts were split to a new topic: Why isn’t one of my lists being printed?

3 posts were split to a new topic: This was my solution

3 posts were split to a new topic: What can the iteration variable be named?

6 posts were split to a new topic: How can I advance the exercise after the infinite loop?

I’m having trouble understanding the syntax for this exercise.

my_favorite_numbers = [4, 8, 15, 16, 42]

for number in my_favorite_numbers:
my_favorite_numbers.append(1)

Does this mean that every time the loop runs, the number one is added to the list? (4, 8, 15, 16, 42, 1, 1, 1…)

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 ?

Thanks

my_favorite_numbers = [4, 8, 15, 16, 42]

for number in my_favorite_numbers:
print(number)

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?

2 Likes

Why doesn’t the following code work as a solution?

for student in students_in_period_A:
return students_in_period_B.append(student)

?

I have figured out that if you remove the return, the code works. I would like to understand why?

3 Likes

It’s not working , I wrote the same and it tells me that "Your code is failed to run.

Hello @kratika-techie and @corypoole2313891181 and welcome to the Codecademy Forums!

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.

Why my code is returning only one value instead of all the values?
it only return the last name which is Daniele
I expected to return all the list

students_period_A = [“Alex”, “Briana”, “Cheri”, “Daniele”]

for st in students_period_A:
lista = [ ]
lista.append(st)

print(lista)

Hello, @array4507277167, and welcome to the forums.

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:

```
code goes here
```

See How do I format code in my posts? for more information.

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)
1 Like

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?

1 Like

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?

3 Likes

Oh I get it now, thanks :blush:

1 Like

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!

2 Likes

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
1 Like

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!

1 Like

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.

1 Like