Есть некоторый поток элементов — например, на основе списка, множества или генератора значений.
Мы берем из потока по одному элементу за раз, пока этот поток не закончится.
Для каждого такого элемента мы выполняем тело цикла, в котором можем этот элемент использовать.
Чтобы обращаться к элементу, мы даем ему имя, как обычной переменной.
Например, i. for i in range(5):
print(i + 1)
print("вышел зайчик погулять") Здесь функция range порождает поток из пяти целых чисел: 0, 1, 2, 3, 4.
Для каждого числа последовательно выполняется оператор print(i + 1) из тела цикла.
По сути, происходит следующее: print(0 + 1)
print(1 + 1)
print(2 + 1)
print(3 + 1)
print(4 + 1)
В вашем случае: for i in "hello":
print(i) источником букв служит строка, воспринимаемая циклом как список символов.