Отдавать значения по одному
У вас есть три названия станций, и вы хотите получать их по одному. Первая строка на экране будет north. Следующая строка будет east. Последняя строка будет south.
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: на экране три строки. На следующей странице вокруг функции появится обёртка.
🧠 Проверьте Свои Знания
Проверьте Свои Знания
Бросьте себе вызов с помощью этой интерактивной викторины и узнайте, насколько хорошо вы понимаете тему
📝 Инструкции
- Внимательно прочитайте каждый вопрос
- Выберите лучший ответ на каждый вопрос
- Вы можете пересдавать тест столько раз, сколько захотите
- Ваш прогресс будет показан вверху