Welcome to the Treehouse Community

Want to collaborate on code errors? Have bugs you need feedback on? Looking for an extra set of eyes on your latest project? Get support with fellow developers, designers, and programmers of all backgrounds and skill levels here with the Treehouse Community! While you're at it, check out some resources Treehouse students have shared here.

Looking to learn something new?

Treehouse offers a seven day free trial for new students. Get access to thousands of hours of content and join thousands of Treehouse students and alumni in the community today.

Start your free trial

Python Python Basics (2015) Logic in Python Loop

charles liscomb
charles liscomb
2,074 Points

How does a for loop know what is in an array when it's not defined?

In the section of my code below, I do not understand how this works. When I think about this code, I interpret this as "For every time word in found within the hellos array, we are going to print the word and a string". Yet, at no point does this code define what "word" is. How does Python know what we are looking for within the array?

This would make sense if we created a variable and defined what "word" was, but this isn't done and I am having difficulty understanding how it works.

for word in hellos print(word + " World")

loop.py
hellos = [
    "Hello",
    "Tungjatjeta",
    "Grüßgott",
    "Вiтаю",
    "dobrý den",
    "hyvää päivää",
    "你好",
    "早上好"
]

for word in hellos:
    print(word + " World")

2 Answers

Steven Parker
Steven Parker
231,269 Points

The "for" statement defines "word" as the variable it will use to represent each item of the iterable "hellos". And since variables in Python are not typed, it really doesn't matter what "hellos" contains. If you've programmed other languages before, it may take some getting used to before you can "think in Python".

For each pass through the loop, "word" will be assigned to one of the strings in the array. Each one is used in the order it is found. Nothing is "looked for".

andren
andren
28,558 Points

Your understanding of how a for loop works is slightly off.

The way it actually works is that the for loop will take the list you give it and then assign each item of the list to the variable you tell it to create. So the first time the loop runs it will pull out the first item of hellos and assign it to item then run the code, then it will pull out the second item of hellos and assign it to item and then run the code again. It continues this routine until it has gone though all of the items in the list and then the loop stops on it's own.