обсуждали тут генераторы и итераторы в python. кажется я придумал неплохой пример для самопроверки понимания этих тем. попробуйте объяснить уточке почему это ведёт себя так :)
можете перейти, но сначала проверьте ссылку и будьте аккуратны: не вводите по ссылке пароли, номера телефонов и банковских карт, и другие личные данные
https://
уверены, что хотите выйти?
придется авторизоваться заново, а заполненные данные будут удалены
пост закреплён — пока закрепить можно только один пост
что-то пошло не так — попробуйте снова чуть попозже
· 13.11.2024
принт в итераторе печатает циферку, а функция next возвращает None, которую печатает принт, вызвавший next.
0
ответить
коммент скрыт — часть юзеров считает его токсичным или некорректным
коммент удалён
· 13.11.2024
да. если чуть подробнее: 1. range = генератор чисел для for. 2. такой синтаксис for = генератор вызовов print(i) (получается что-то вроде лямбды).
получается так: 1. next(gen) вызывает print(i) со значением из range и тем самым печатает его 2. сам print(i) возвращает None, который возвращается из next и таким образом тоже печатается.
ну а в конце мы ожидаемо получаем исключение что некуда больше итерироваться, поскольку не указан объект "по умолчанию"
0
ответить
коммент скрыт — часть юзеров считает его токсичным или некорректным
ответ удалён
· 13.11.2024
Вот это тоже забавно выглядит: a = (print(i) for i in range(3)) print(*a)
0
ответить
коммент скрыт — часть юзеров считает его токсичным или некорректным
ответ удалён