Форум программистов, компьютерный форум, киберфорум
Python
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.50/6: Рейтинг темы: голосов - 6, средняя оценка - 4.50
 Аватар для Mike_Kharkov
7 / 0 / 1
Регистрация: 16.10.2015
Сообщений: 64

Лутц : "Итераторы и генераторы" - не работает пример

25.03.2016, 22:08. Показов 1399. Ответов 8
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Всем привет.
В программировании можно сказать я ноль - читаю Лутца последнее время
и столкнулся со следующим примером:
(скрин во вложении)

Вопрос:
Почему не работает приведенный в книге Лутца пример на моем редакторе?
(версия питона у меня 3.5)

Если причина в версии языка то как обычно решать подобные проблемы?
(просто что бы я на будущее ориентировался.)
Обязательно ли ставить версию 3.0 в данном случае?
(для проверки примера из книги)
Миниатюры
Лутц : "Итераторы и генераторы" - не работает пример  
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
25.03.2016, 22:08
Ответы с готовыми решениями:

Лутц (__class__ и __bases__) не удаеться понять пример
Всем привет. Столкнулся с таким примером в книге Лутца(Изучаем Питон) # -*- coding: utf-8 -*- def classtree(cls, indent): ...

Итераторы (пример использования итератора для шаблона, к примеру списка)
Доброго времени суток. Форумчани, приведите пожалуйста пример использования итератора для шаблона, к примеру списка. Зараннее благодарен. И...

Функции генераторы и выражения генераторы
Всем доброго времени суток, изучаю такую тему как Функции-генераторы и появился вопрос, для чего они могут пригодиться, к примеру есть...

8
2742 / 2341 / 620
Регистрация: 19.03.2012
Сообщений: 8,830
25.03.2016, 22:14
Ну просто ты запускает код как скрипт, а примере запуск производится в итерактивном режиме. Если хочешь увидеть выхлоп, то исправь последнюю строку на
Python
1
print(list(myzip('abc', 'efe3')))
1
 Аватар для Mike_Kharkov
7 / 0 / 1
Регистрация: 16.10.2015
Сообщений: 64
26.03.2016, 18:21  [ТС]
Такой вопрос еще по этому скрину:
Если вместо инструкции Yield прописать Return - то почему первая пара символов(тут вроде все понятно мне, т.к. это первая итерация в генераторе списков (res)) возвращается не в кортеже?
(а только в списке..)
Инструкция Return не позволяет возвращать встроеные ф-ции tuple(), list() и т.п.?
0
2742 / 2341 / 620
Регистрация: 19.03.2012
Сообщений: 8,830
26.03.2016, 18:55
Во 1 ты знаешь в чем разница return и yield? Во 2 в этом коде не возвращается функций, возвращается результат вызовы функции.
0
 Аватар для Mike_Kharkov
7 / 0 / 1
Регистрация: 16.10.2015
Сообщений: 64
26.03.2016, 19:02  [ТС]
Цитата Сообщение от alex925 Посмотреть сообщение
Во 2 в этом коде не возвращается функций, возвращается результат вызовы функции.
Хорошо - но почему тогда результат вызова ф-ции tuple() не находится в кортеже в конечном итоге, если использовать именно return?
(на сколько я пока понимаю return просто возвращает значения и останавливает ф-цию, а yield возвращает значение с возможностью вернутся в момент прерывания ф-ции + ее продолжить..)
0
2742 / 2341 / 620
Регистрация: 19.03.2012
Сообщений: 8,830
26.03.2016, 19:07
Цитата Сообщение от Mike_Kharkov Посмотреть сообщение
но почему тогда результат вызова ф-ции tuple() не находится в кортеже в конечном итоге
А ничего, что ты сам вообще-то результат конвертируешь в список? На вызов функции посмтри.
0
 Аватар для Mike_Kharkov
7 / 0 / 1
Регистрация: 16.10.2015
Сообщений: 64
26.03.2016, 19:17  [ТС]
Цитата Сообщение от alex925 Посмотреть сообщение
А ничего, что ты сам вообще-то результат конвертируешь в список? На вызов функции посмтри.
Та это все понятно.
Вопрос в чем мой - в случае с yield у меня же вызов тоже конвертируется в список в вызове!?
Но в результате то в кортеже получается каждая пара, а не в списке.
Вот я и хочу понять в чем разница и почему так происходит..
Миниатюры
Лутц : "Итераторы и генераторы" - не работает пример  
0
 Аватар для Mike_Kharkov
7 / 0 / 1
Регистрация: 16.10.2015
Сообщений: 64
26.03.2016, 19:23  [ТС]
0
2742 / 2341 / 620
Регистрация: 19.03.2012
Сообщений: 8,830
26.03.2016, 19:46
Я у тебя не просто так спросил понимаешь ли ты разницу между return и yield. В случае c yield у тебя функция превращается в генератор и отдает данные кусками, по 1 за 1 итерацию, а list в вызове служит, чтобы получить не итератор, а весь его результат. В случае, когда ты используешь return то функция это просто функция и она возвращает результат, который конвертируется в список. Вот и всей науки.
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
26.03.2016, 19:46
Помогаю со студенческими работами здесь

Потоковые итераторы - не работает код
Выношу на ваш суд следующий код, взятый мной из учебника Лафоре int main() { setlocale( LC_ALL, "rus" ); ...

C++: итераторы по умолчанию, пустые итераторы, end()
Всем добра! Вопрос на тему итераторов в плюсах: 1. какие значения имеют итераторы без инициализации например,...

STL. Не работает вывод через << в поток когда использую итераторы :(
Вроде бы ничего сложного, но почему-то работать не хочет. Никак не могу понять почему ( Ругается, когда пишу void main() { ...

Итераторы и обратные итераторы
У вектора есть два типа итераторов, обычные и обратные итераторы произвольного доступа... Обычные реализовал, осталось обратные. Решил...

По книге Марк Лутц
Пытаюсь изучить основы. Не получается. имеется файл script1.py находящийся по адресу: c:\python имеется python 3.4 находящийся по...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Новые блоги и статьи
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Access
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут. В век Веб все очень привыкли к дизайну Single-Page-Application . Быстренько разберем подход "на фреймах". Мы делаем одну. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru