33. Решаем проблемы с двумерным списком

На прошлом уроке мы успешно погрузились в трудности, связанные с отображением ячеек двумерного списка. Надеюсь, вы дали себе достаточно времени подумать о проблеме. На самом деле, для ее решения нужно не так уж и много: убрать информацию о позиции ячейки из самой ячейки и передавать ее (r,c) в метод paint при каждой перерисовке. Я настоятельно […]

32. Неразрешимые трудности, дублирование информации, проблема

Продолжаем работать с двумерными списками (таблицами). В прошлом уроке была создана программа для удобной работы с таблицей ячеек: Рассмотрим некоторые задачи предыдущего урока. Отметить всех соседей можно по-разному, например так: Если выделять соседей не только по сторонам, но и по дагоналям, то лучше использовать два цикла: Обратите внимание, чтобы в обоих случаях мы берем и […]

31. Двумерные списки (массивы, матрицы) в Python

Прежде, чем мы сделаем игру «Сапер» и «Блоки» нужно научится работать с двумерными списками. Если просто, то двумерный список — это таблица. У каждой ячейки таблицы есть номер строки и номер столбца. Т.е. каждая ячейка имеет не один номер, как в обычном списке, а два: номер строки и номер столбца. Поэтому такие списки и называют […]

30. Разбор задач предыдущего урока (без новых заданий)

Рассмотрим некоторые задачи предыдушего урока. Не то, чтобы они были сильно важны для работы со списками, но не вижу причины, почему бы не сделать эти задачи сейчас. Перетаскивание шарика. Перетаскивать шарики можно разными способами. Например так: У этого способа есть один недостаток — шарики могут «теряться» при резком движении мыши. Что ж, зайдем с другой […]

29. Списки и геометрия, забавные задачи

Продолжим работать со списками. Теперь шарики не выстроены в ряд, а раскиданы по экрану. Добавим немного геометрии в наши задания. Некоторые задания просто забавны, другие же являются частью будущих игр. Задания выполнять в функции task, вызывать ее нажатием правой кнопки мыши на экране. Левая — очищает и создает новый список. Рассмотрим некоторые приемы, которые понадобятся […]

27. Списки и еще раз списки в Python: отличия числового списка от списка объектов и приемы работы

Сегодня еще один урок, в котором будем работать со списками. Подготовим два списка, один из которых будет заполнен числами, а другой — объектами. Найдем самое большое значение. Начинающие всегда пытаются сравнивать соседние значения, чтобы найти самое большое. Но это тупиковый путь. Представьте что вы находитесь возле 1000 людей, которые стоят в ряд и на вид […]

26. Списки в Python. Несколько вопросов

Продолжаем работать со списками в Python. Прежде, чем двигаться дальше, подведем промежуточные итоги. Напомню, что числовые списки и списки, содержащие объекты различаются по своему «поведению». Когда вы используете перебор по значению, то не можете изменить элемент списка: В первом и втором случае мы видим одни и те же значения, потому что x += 1 повлияет […]

24. Работа со списками в Python, часть вторая

В прошлом уроке мы создали список, содержащий объекты ball для отработки приемов работы со списками. В конце урока я дал задания по удалению элементов из списка. Эти задания должны были вызвать проблемы. Прежде, чем мы вернемся к шариками, нужно рассмотреть вариант попроще: список, состоящий из чисел. Этот урок будет полностью посвящен работе с числовым списком. […]

22. Создаем список «шариков» для последующих заданий

Мы разобрали уже несколько заданий, в которых фигурировали списки, настал черед поработать с ними посерьезнее. Python дает большие возможности для работы со списками, многие идеи для которых были взяты из языка LISP, название которого прямо указывает, что язык создан для работы со списками. Когда изучают Паскаль или Си, то работают с массивами. Массивы в Python […]

Как получать элементы из списка, как-будто он бесконечный? Но без зацикливания?

В одном из прошлых вопросов мы рассмотрели, как в Python сделать список «бесконечным». Но прошлый пример был бесполезный, потому что давал зацикливание. Поэтому новый вопрос — продолжение: как сделать, чтобы можно было брать элементы из списка столько, сколько нужно, но без зацикливания? Дает зацикливание: Нужен правильный ответ.