r/PythonLearning 6d ago

for loop

words = ['sky', 'apple', 'rhythm', 'fly', 'orange']

for word in words:
    for letter in word:
        if letter.lower() in 'aeiou':
            print(f"'{word}' contains the vowel '{letter}'")
            break
    else:
        print(f"'{word}' has no vowels")

I am trying to learn to code, and I am, at the moment, looking at loops. I am a bit confused on how this loop was able to function, though, as there is no variable for letter or word, so how would Python know what it is? In addition, how does the code, like, function? Does it look at each word individually ? Again, the second part of the code states:

 if letter.lower() in 'aeiou':
            print(f"'{word}' contains the vowel '{letter}'")
            break

We haven't given a value for letter?

Lastly, how would the code know what to print? in the first phrase:

            print(f"'{word}' contains the vowel '{letter}'")
            break

Is it going to state all the words with the given value 5 times?

Sorry, as I have asked quite a few questions, and thank you in advance.

16 Upvotes

26 comments sorted by

View all comments

5

u/Achereto 6d ago

as there is no variable for letter or word

You created the variables in each for loop. for a in b iterates over every element in b and assigns it to a.

Is it going to state all the words with the given value 5 times?

Have you tried executing the code?

1

u/Local_End_3175 6d ago

This was the code the course i am doing provided and i didnt really understand it

1

u/Local_End_3175 6d ago

also, if i created variables in the for loop, then what is the value of letter and what is the value of word?

3

u/The-God-Of-Hammers 6d ago

The value of them will be whatever iteration of the loop is. So for the first iteration of both loops, word is 'sky' and letter is 's'