Загрузка...

Отдавать значения по одному

У вас есть три названия станций, и вы хотите получать их по одному. Первая строка на экране будет north. Следующая строка будет east. Последняя строка будет south.

три имени, запрошенные по одному

python
def stations():
    yield "north"
    yield "east"
    yield "south"

route = stations()
print(next(route))
print(next(route))
print(next(route))

На экране три строки. Первый print пишет north и больше ничего. Строка yield "north" передаёт это имя именно этому print. east пишется только тогда, когда его просит второй print. Второй print пишет east. Третий print пишет south. Один print не ставит все три имени на одну строку. Программа завершается. Четвёртой строки нет. None на этом экране не пишется.

📊 что каждый print пишет на экран

Какой print строка на экране
первый print(next(route)) north
второй print(next(route)) east
третий print(next(route)) south

После south в stations не осталось ни одного yield. Четвёртого print(next(route)) в этой программе нет. Добавьте такую строку, и она остановится с StopIteration, потому что следующего имени нет. None не пишется. Ваш экран остаётся таким: north, потом east, потом south.

Теперь вы можете попросить одно имя станции, потом следующее, потом последнее. На экране north, потом east, потом south. На следующей странице вокруг функции появится обёртка.

Одно имя, потом следующее

Первый print пишет north, второй east, третий south: на экране три строки. На следующей странице вокруг функции появится обёртка.

🧠 Проверьте Свои Знания

Готов к Началу

Проверьте Свои Знания

Бросьте себе вызов с помощью этой интерактивной викторины и узнайте, насколько хорошо вы понимаете тему

❓
4
Вопросы
🎯
70%
Для Прохождения
♾️
∞
Время
🔄
∞
Попытки

📝 Инструкции

  • Внимательно прочитайте каждый вопрос
  • Выберите лучший ответ на каждый вопрос
  • Вы можете пересдавать тест столько раз, сколько захотите
  • Ваш прогресс будет показан вверху