Никита, с вашей стороны было бы уместно уточнить вопрос:
- какого вида строку (по сути) вы имеете вначале (только числа '2 13 56 8' или с текстом 'abc 12 def 56', а может вообще 'abc23def45') ?
- что конкретно вы хотите получить на выходе: если числа есть, вывести принтом 'числа в строке есть' или список с числами или... ?
- если список с числами вывести, то они должны быть в строковом представлении или числовом? ''1', '23', '456'' или '1, 23, 456' ?
Вам привели два решения, но, в зависимости от этих условий, лишь одно из них вам подойдет.
AlexRAV: Для того, чтобы не возникло путаницы и распыления усилий, я бы взял информацию этой статьи за костяк/цель. На мой взгляд, все довольно разумно и систематизировано.
А в остальном - sim3x ответил. Пробуйте (параллельно работая над наработкой знаний/навыков, указанных в статье), как закончите текущий проект...
nevro: В первом случае причина исключения в том, что строковый объект (в данном случае 'abc') НЕ является Итератором. А функцию next() поддерживают Только Итераторы.
Метод iter нужен для того, чтобы из итерируемого объекта (читай "последовательности") создать Итератор, который и будет поддерживать функцию next().
Intelide: На мой взгляд, это очень здорово, что у вас есть свой взгляд на то, что, с вашей точки зрения, считать более удачным и приемлимым решением. Да, в Python это реализовано так, по причинам указанным непосредственным автором языка. Но кто знает, может вы свое будущее настолько тесно свяжете с программированием, что создадите свой язык, лишенный тех недостатков, которые вы видите в других.Не боги горшки обжигают...
В свое время Python-ист Крис МакДоноу вместе с коллегами из Zope остались неудовлетворены своими поисками "правильного" с их точки зрения фреймворка из существующих на рынке и занялись разработкой своего собственного, Repoze. Спустя какое-то время они объединились с ребятами из Pylons, так родился Pyramid...
- какого вида строку (по сути) вы имеете вначале (только числа '2 13 56 8' или с текстом 'abc 12 def 56', а может вообще 'abc23def45') ?
- что конкретно вы хотите получить на выходе: если числа есть, вывести принтом 'числа в строке есть' или список с числами или... ?
- если список с числами вывести, то они должны быть в строковом представлении или числовом? ''1', '23', '456'' или '1, 23, 456' ?
Вам привели два решения, но, в зависимости от этих условий, лишь одно из них вам подойдет.