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

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

25. Работаем со списками в Python (удалять лучше с конца)

Продолжаем работать со списками. Разберем задания, которые (должны) были вызвать у вас трудности. Напомню, что в данный момент мы работаем с числовыми списками. Для создания списка, заполненного случайными значениями, удобно использовать такой прием: А теперь попробуем удалить все нули. Вариант с использованием count и remove мы рассматривать не будем, надеюсь с ним все понятно. Предположим, […]

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

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

23. Работа с списками в Python

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

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

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

Модификация игры «Пушка»: меньше глобальных переменных, больше объектов, чище код

Другой способ выстрела: удержание левой кнопки мыши увеличивает энергию выстрела. Чтобы выстрелить нужно отпустить левую кнопку.

21. Задания по программированию на Python для начинающих и начавших.

1. Создать форму (окно), на котором сверху будет 5 кнопок в ряд: «Окружность», «Прямоугольник», «Линия», Пятиугольник», «Очистить», а под ними — Canvas. Каждая кнопка должна рисовать на холсте указанную фигуру со случайными координатами, цветом и случайной 2. Сделать «мячик», равномерно перемещающийся вверх-вниз в бесконечном цикле 3. Сделать прыгающий мячик, перемещающийся вверх-вниз с замедлением в верхней […]

20. Заканчиваем игру Jumper (почти Doodle)

Продолжаем делать игру «Jumper». В прошлом уроке мы создали прыгающий мячик и платформы. Теперь пришло время организовать взаимодействие мячика и платформ. Для того, чтобы определить, касается ли мячик платформы, есть два способа. Можно определять по координатам (как мы и сделаем), а можно через методы Tkinter. Во всех библиотеках (движках) для создания игр есть способы для […]

19. Продолжаем делать игру «Jumper». Объекты — это экземпляры классов.

Пока у нас прыгает один джампер, платформ нет. Джампер так и останется один, а вот платформ будет много. Причем заранее неизвестно сколько. Это означает, что мы не можем просто создать список переменных x1,y1,x2,y2 и т.д., чтобы хранить в них параметры платформ. Нужно какое-то сильное решение, которое позволит создавать неограниченное количество одинаковых объектов и легко управлять […]

18. Начинаем создавать игру «Jumper» (почти как Doodle). Анимация.

Суть игры простая: прыгать с платформы на платформу и продержаться как можно дольше. Первое, с чего нужно начать — это анимация. Изображать джампера будем простым кругом. Перед тем, как мы заставим его прыгать, научим его двигаться. Попробуем заставить его двигаться: Мяч двигается, но мы этого не видим. Дело в том, что все происходит слишком быстро. […]

17. Делаем первую игру на Python: Поймай шарик

Для создания игр разумнее использовать специальные библиотеки (движки), хотя бы Pygame, которые уже содержат такие вещи, как двойная буферизация, работа с спрайтами и т.д. Но первые «игры» мы будем создать с помощью tkinter, потому что цель — научится программировать (в Python), а не создать готовый продукт (игру). Для этой цели простой и понятный tkinter подходит […]

16. Мышка оставляет след. Работаем с информацией о событии (event) в Tkinter

Мышь оставляет след

Рассмотрим такой пример: Что происходит? canv.bind(‘<Button-1>’,paint)связывает событие «Button-1», т.е. щелчок левой кнопкой мыши на Canvas и вызов функции paint, т.е. теперь paint будет вызываться когда мы будем щелкать мышкой в разных местах Canvas, а event.x, event.y поможет нам узнать координаты щелчка. Измените одну строку, но не запускайте сразу. Motion – это событие, которое возникает при […]

Учебник программирования: «Программирование — это интересно!»

Задания обновляются! Следите за новостями! (29-06-16) Долгое время я обучал на «обычных задачах»: найти сумму, найти сумму четных и т.д. Но понял, что это не очень интересно и решил сделать свой учебник — интересный учебник по программированию, с занимательными задачами, с играми и графикой. Сказано — сделано. Давая задачи на поиск максимального значения в массиве […]

15. Вопросы для самопроверки

Вот и подходит к концу первая часть. Я надеюсь, что вы добросовестно выполняли задания, задавали вопросы и искали ответы. Теперь вы кое-то умеете и впереди у нас небольшой проект: игра «Поймай шарик». Это не будет законченной игрой в полном понимании, но это будет довольно большая программа, которую вы напишите с моей помощью и полностью поймете, […]

14. Повторять, пока получается. Цикл while в Python

Попробуем выводить на экран случайные круги, пока не появится красный: Однако, вместо результата мы видим ошибку. Python сообщает нам, что прежде, чем мы будем использовать color, мы должны поместить туда какое-либо значение: Цикл while будет работать, пока истинно условие, записанное в его заголовке. В данном случае, пока цвет не окажется красным. Усложним задачу: выводить на […]

13. Цикл for – это не только повторение несколько раз

1. Нарисовать 10 окружностей с центром в точке 400, 300 с увеличивающимся радиусом (первая – 10, вторая – 20 и т.д.) 2. Нарисовать 10 окружностей в ряд горизонтально 3. Нарисовать 10 окружностей в ряд вертикально 4. Нарисовать 10 окружностей в ряд, с увеличивающимся радиусом Нарисуем 10 окружностей с увеличивающимся радиусом: А можно и по-другому: Первое […]

12. Принимаем решения. Оператор выбора в Python (ветвление, if)

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

11. Вспомним цикл for и rnd

В первой строке добавьте подключение функций randrange и choice из модуля random: 1. Нарисовать 10 окружностей в случайном месте и случайного размера 2. Нарисовать 12 окружностей в случайном месте, случайного размера и цвета Для задания случайного цвета будем использовать тот же список цветов, что и ранее (я добавил еще несколько штук): colors = [‘lightyellow’, ‘lightgray’, […]

10. Порисуем? Графические примитивы tkinter

Кнопки — это хорошо и удобно, но для выполнения одного-двух действий удобнее использовать события самого Canvas. Сделаем так, чтобы при щелчке левой кнопкой фигуры были нарисованы, а при щелчке правой — удалены. Задания выполнять в функции paint. 1. Нарисовать окружность с центром в точке 300,200, и радиусом 50 (см. справочник Tkinter Canvas) 2. Нарисовать закрашенную […]

9. Жмем на кнопки. Возникают события. Обрабатываем! События Tkinter и их обработка.

Можно рисовать сразу при создании окна, как мы это делали. Не самое лучшее решение. Усложним программу еще немного, чтобы потом было проще: создадим функцию, которую будем вызывать по нажатию кнопки «1»: (см. справочник использование bind) Запустите программу, нажмите на кнопку «1», чтобы нарисовать зеленый прямоугольник. Все работает, однако было сделано одно допущение, на которое следует […]

Tkinter вместо Черепашки

Пришла пора сменить графическую систему отображения. Tkinter – это один из способов создать «окошки и кнопки» на Python. Кроме Tkinter существуют и другие, самые известные: Qt, wxForms. Tkinter удобен тем, что он входит в стандартную поставку Python, а значит доступен всегда (почти всегда). Недостаток – маловато возможностей для построения сложных систем. Но нам это совсем […]

Проверьте себя

Мы разобрали: 1. Создание новых команд (функций) 2. Использование параметров в функциях 3. Получение случайных чисел 4. Повторение кода несколько раз (цикл for) 5. Создание списка возможных цветов и выбор случайного цвета из этого списка. 6. print() для вывода информации на экран (в консоль) Проверьте себя: вы должны понимать код, который написан ниже. a = […]

Задачи для Черепашки

1. Дано задание написать функцию рисования узора, с возможностью изменять размер. Программист ошибся и узор всегда одного размера, помогите ему исправить ошибки: 2. Программист написал программу для рисования квадрата. Помогите исправить ошибки 3. Программист хотел написать программу для рисования 10 окружностей в ряд, но у него получилась только одна. Помогите найти и исправить ошибку: 4. […]

Список как способ хранения данных

Сначала мы создадим список возможных цветов: Теперь, без всякой случайности, выберем оранжевый и синий цвет (нумерация идет с нуля): оранжевый — colors[1] синий – colors[5] Убедимся, что это работает: Остался один шаг – выбирать случайный номер. Для этого нужно знать длину списка. Можно написать так: rnd(10), но так делать не стоит. Ведь мы можем захотеть […]

Цикл for. Повторение участка кода

Для того, чтобы не писать одно и тоже по нескольку раз, придумали циклы. Что будет выполнено в результате работы такой программы? 1. Нарисовать 4 окружности подряд 2. Нарисовать 10 окружностей Кстати, на мой взгляд Черепашка двигается слишком медленно. Нельзя ли ее как-нибудь ускорить? 3. Найти команду, которая позволяет увеличить скорость движения Черепашки (если такая есть) […]

Генератор случайных чисел

В процессе обучения мы широко будем использовать генератор случайных чисел. Это будет полезно как в играх, например для случайной расстановки бомб, так и для обычных тренировочных задач. Чтобы получить случайное число, надо подключить модуль random и воспользоваться функцией randrange(), которая получает в качестве аргумента (см. справочник на то, что такое функция, что такое аргумент, результат) […]

Черепашка узнает новые команды

Команды Черепашки ограничены тем, что заложили в нее создатели. Но как быть, если нам требуется нарисовать много квадратов? Конечно, можно скопировать и вставить много раз команды для рисования квадрата, но это будет не слишком красиво и не очень понятно. А уж когда потребуется что-то изменить, то станет совсем грустно. Попробуйте разобраться в такой программе: Чтобы […]

Теперь у вас есть Черепашка!

Первые программы мы будем создавать с помощью специального графического модуля turtle (черепашка). Этот модуль создан для начинающих изучать программирование. С его помощью можно рисовать разные фигуры. А еще с помощью Черепашки удобно рисовать фракталы. Простая программа: подключить модуль Черепашка и показать окно: Чтобы запустить программу нажмите F5 (см. справочник: работа с редактором) Нарисуем линию:   […]

Учебник: «Программирование — это интересно!». Введение

От автора: Привет. Меня зовут Борис и я дистанционный репетитор по информатике. Помогаю школьникам готовится к экзаменам, обучаю программированию и созданию сайтов. Я просмотрел много книг для начинающих программистов, но ни одну не могу порекомендовать своим ученикам: в некоторых мало примеров, в других странная, на мой взгляд, очередность изложения материала или нет самого интересного и […]