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 Functions and Looping For Loops

why does it print "ooh" ```python for letter in "You got this!": if letter in "oh": print(letter) ```

why does it print "ooh"

for letter in "You got this!":
    if letter in "oh":
        print(letter)

Can someone explain to me how I should be reading this code? Line by line please.

they could have picked letters that didn't form a word. I would even expect there to be a comma between o and h in the IF line, but that's probably not how it works

1 Answer

Steven Parker
Steven Parker
241,487 Points

The first and last statements are self-explanatory. Without the "if" in between, the program would just print out every letter in the string, one at a time.

But the "if" causes it to print only letters "h" and "o".

So what you see is the "o" from "You", followed by the "o" from "got", and finally the "h" from "this".

Thank you, Steven, That was what I thought, but I was not sure.

How is there two O's when there is only one in "oh"

The code says for each letter in "You got this!"

Only IF there's a letter in "oh"? (also doesn't make any sense to me)

Steven Parker
Steven Parker
241,487 Points

There's an "o" in "You", and another one in "got".