Мужские правила. Отношения, секс, психология Non-Bullshit Innovation Этой кнопке нужен текст
 
Наши проекты:
Вход для зарегистрированных пользователей
Регистрация нового пользователя
Каталог книг Новинки Анонсы Заказы / Корзина Рассылка Оплата и Доставка Контакты
Вы находитесь в разделе каталога:
• Программируем на Python, Доусон М.


Программируем на Python
Программируем на Python
Доусон М.
Год выпуска: 2016
Изд-во: Питер
ISBN: 978-5-459-00314-7
Переплёт: мягкий
432 страниц
Цена: 606.00 грн.
Временно отсутствует     Оставить заявку
Книга "Программируем на Python" - идеальное пособие для начинающих изучать Python. Руководство, написанное опытным разработчиком и преподавателем, научит фундаментальным принципам программирования на примере создания простых игр. Вы приобретете необходимые навыки для разработки приложений на Python и узнаете, как их применять в реальной практике. Для лучшего усвоения материала в книге приведено множество примеров программного кода. В конце каждой главы вы найдете проект полноценной игры, иллюстрирующий ключевые идеи изложенной темы, а также краткое резюме пройденного материала и задачи для самопроверки. Прочитав эту книгу, вы всесторонне ознакомитесь с языком Python, усвоите базовые принципы программирования и будете готовы перенести их на почву других языков, за изучение которых возьметесь. Научитесь программировать на Python играючи!




Оглавление книги Доусон М. "Программируем на Python"





Благодарности . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
Об авторе . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
Введение . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
От издательства . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
Глава 1. Начало работы. Программа Game Over . . . . . . . . . . . . . . . 30
Изучаем программу Game Over . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30
Знакомство с Python . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
Python прост в использовании . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
Python - мощный язык . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
Python - объектно-ориентированный язык . . . . . . . . . . . . . . . . . . 32
Python - "склеивающий" язык . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
Python работает на всех платформах . . . . . . . . . . . . . . . . . . . . . . 33
Сообщество программистов на Python . . . . . . . . . . . . . . . . . . . . . . 33
Python - бесплатная система с открытым исходным кодом . . . . . . 33
Установка Python в Windows . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33
Установка Python в других операционных системах . . . . . . . . . . . . . . . . . 34
Знакомство с IDLE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35
Программирование в интерактивном режиме . . . . . . . . . . . . . . . . 35
Программирование в сценарном режиме . . . . . . . . . . . . . . . . . . . . 38
Вернемся к программе Game Over . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40
Использование комментариев . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41
Пустые строки . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41
Печать строки . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42
Ожидаем пользователя . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42
Резюме . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42
Глава 2. Типы, переменные и основы ввода-вывода.
Программа "Бесполезные факты" . . . . . . . . . . . . . . . . . . . . 43
Знакомство с программой "Бесполезные факты" . . . . . . . . . . . . . . . . . . . 43
Строки и кавычки . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44
Знакомство с программой Game Over 2.0 . . . . . . . . . . . . . . . . . . . . 44
Кавычки внутри строк . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45
Вывод на экран нескольких значений . . . . . . . . . . . . . . . . . . . . . . 46
Вывод заключительных символов строки . . . . . . . . . . . . . . . . . . . 47
Создание строк в тройных кавычках . . . . . . . . . . . . . . . . . . . . . . . 47
Escape-последовательности в строках . . . . . . . . . . . . . . . . . . . . . . . . . . . 48
Знакомство с программой "Воображаемые благодарности" . . . . . . 48
Вставка табуляционного отступа . . . . . . . . . . . . . . . . . . . . . . . . . . 49
Вывод обратного слеша . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49
Вставка пустой строки . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49
Вставка кавычек . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50
Звук системного динамика . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50
Сцепление и повторение строк . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51
Знакомство с программой "Забавные строки" . . . . . . . . . . . . . . . . 51
Сцепление строк . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52
Символ продолжения строки . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52
Повторение строк . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53
Работа с числами . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53
Знакомство с программой "Текстовые задачи" . . . . . . . . . . . . . . . 53
Числовые типы данных . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55
Применение математических операторов . . . . . . . . . . . . . . . . . . . 55
Переменные . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56
Знакомство с программой "Привет" . . . . . . . . . . . . . . . . . . . . . . . 56
Создание переменных . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57
Использование переменных . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57
Имена переменных . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58
Получение пользовательского ввода . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59
Знакомство с программой "Персональный привет" . . . . . . . . . . . . 59
Применение функции input() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60
Применение строковых методов . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61
Знакомство с программой "Манипуляции с цитатой" . . . . . . . . . . . 61
Создание новых строк с помощью строковых методов . . . . . . . . . . 62
Правильно выбранный тип . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64
Знакомство с программой "Рантье" (версия с ошибкой) . . . . . . . . 64
Обнаружение и устранение логических ошибок . . . . . . . . . . . . . . . 65
Конвертация значений . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66
Знакомство с программой "Рантье" (версия без ошибки) . . . . . . . 66
Преобразование строк в целые числа . . . . . . . . . . . . . . . . . . . . . . 67
Составные операторы присвоения . . . . . . . . . . . . . . . . . . . . . . . . 68
Вернемся к программе "Бесполезные факты" . . . . . . . . . . . . . . . . . . . . . 69
Начальные комментарии . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69
Получение пользовательского ввода . . . . . . . . . . . . . . . . . . . . . . . 69
Вывод name на экран в нижнем и верхнем регистре . . . . . . . . . . . 70
Пятикратный вывод имени . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70
Подсчет количества секунд . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70
Вычисление значений moon_weight и sun_weight . . . . . . . . . . . . . 71
Ожидание выхода . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71
Резюме . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71
Глава 3. Ветвление, циклы с оператором while и псевдокод.
Игра "Отгадай число" . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73
Генерирование случайных чисел . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73
Знакомство с программой "Кости" . . . . . . . . . . . . . . . . . . . . . . . . 74
Импорт модуля random . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75
Применение функции randint() . . . . . . . . . . . . . . . . . . . . . . . . . . . 75
Применение функции randrange() . . . . . . . . . . . . . . . . . . . . . . . . . 76
Условные конструкции с if . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76
Знакомство с программой "Пароль" . . . . . . . . . . . . . . . . . . . . . . . 76
Разбираемся в if-конструкции . . . . . . . . . . . . . . . . . . . . . . . . . . . . 78
Создание условий . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 78
Операторы сравнения . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 78
Создание блоков кода с помощью отступов . . . . . . . . . . . . . . . . . . 79
Создание собственных if-конструкций . . . . . . . . . . . . . . . . . . . . . . 80
Конструкции if с условием else . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80
Знакомство с программой "Открыто/Закрыто" . . . . . . . . . . . . . . . 80
Разбираемся в условиях else . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81
Конструкции if с условием elif . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81
Знакомство с программой "Компьютерный датчик настроения" . . 81
Разбираемся в условиях elif . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83
Создание циклов с while . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85
Знакомство с программой "Симулятор трехлетнего ребенка" . . . . 85
Разбираемся в работе цикла while . . . . . . . . . . . . . . . . . . . . . . . . . 86
Инициализация управляющей переменной . . . . . . . . . . . . . . . . . . 86
Проверка значения управляющей переменной . . . . . . . . . . . . . . . 87
Изменение значения управляющей переменной . . . . . . . . . . . . . . 87
Борьба с бесконечными циклами . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 87
Знакомство с программой "Проигранное сражение" . . . . . . . . . . . 88
Трассировка программы . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 89
Условия, которые могут становиться ложными . . . . . . . . . . . . . . . 89
Значения как условия . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 90
Знакомство с программой "Метрдотель" . . . . . . . . . . . . . . . . . . . . 90
Истинные и ложные значения . . . . . . . . . . . . . . . . . . . . . . . . . . . . 92
Намеренное создание бесконечных циклов . . . . . . . . . . . . . . . . . . . . . . . 92
Знакомство с программой "Привередливая считалка" . . . . . . . . . . 93
Выход из цикла с помощью команды break . . . . . . . . . . . . . . . . . . 93
Команда continue и возврат к началу цикла . . . . . . . . . . . . . . . . . . 94
Как пользоваться командами break и continue . . . . . . . . . . . . . . . . 94
Составные условия . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 94
Знакомство с программой "Эксклюзивная сеть" . . . . . . . . . . . . . . 95
Логический оператор not . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 97
Логический оператор and . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 97
Логический оператор or . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 98
Планирование программ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 99
Алгоритмы на псевдокоде . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 99
Пошаговая доработка алгоритма . . . . . . . . . . . . . . . . . . . . . . . . . 100
Вернемся к игре "Отгадай число" . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 101
План программы . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 101
Начальный блок комментариев . . . . . . . . . . . . . . . . . . . . . . . . . . 102
Импорт модуля random . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 102
Объяснение правил . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 102
Установка начальных значений . . . . . . . . . . . . . . . . . . . . . . . . . . 102
Цикл отгадывания . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 102
Поздравления победителю . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 103
Ожидание выхода . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 103
Резюме . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 103
Глава 4. Циклы с оператором for, строки и кортежи.
Игра "Анаграммы" . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 105
Знакомство с игрой "Анаграммы" . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 105
Применение циклов for . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 106
Знакомство с программой "Слово по буквам" . . . . . . . . . . . . . . . 106
Разбираемся в работе for-цикла . . . . . . . . . . . . . . . . . . . . . . . . . 107
Создание for-цикла . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 108
Счет с помощью for-цикла . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 108
Знакомство с программой "Считалка" . . . . . . . . . . . . . . . . . . . . . 108
Счет по возрастанию . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 109
Счет по числам, кратным пяти . . . . . . . . . . . . . . . . . . . . . . . . . . 110
Счет по убыванию . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 110
Операторы и функции для работы с последовательностями:
применение к строкам . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 110
Знакомство с программой "Анализатор текста" . . . . . . . . . . . . . . 111
Применение функции len() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 111
Применение оператора in . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 112
Индексация строк . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 112
Знакомство с программой "Случайные буквы" . . . . . . . . . . . . . . 113
Позиции с положительными номерами . . . . . . . . . . . . . . . . . . . . 113
Позиции с отрицательными номерами . . . . . . . . . . . . . . . . . . . . . 114
Случайный элемент строки . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 115
Что такое неизменяемость строк . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 116
Конструируем новую строку . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 117
Знакомство с программой "Только согласные" . . . . . . . . . . . . . . 117
Создание констант . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 118
Создание новых строк из существующих . . . . . . . . . . . . . . . . . . . 119
Срезы строк . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 120
Знакомство с программой "Резчик пиццы" . . . . . . . . . . . . . . . . . 120
Значение None . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 121
Разбираемся в срезах . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 122
Создание срезов . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 123
Сокращения в записи срезов . . . . . . . . . . . . . . . . . . . . . . . . . . . . 123
Создание кортежей . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 124
Знакомство с программой "Арсенал героя" . . . . . . . . . . . . . . . . . 124
Создание пустого кортежа . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 125
Кортеж как условие . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 125
Создание непустого кортежа . . . . . . . . . . . . . . . . . . . . . . . . . . . . 125
Вывод элементов кортежа на экран . . . . . . . . . . . . . . . . . . . . . . 126
Перебор элементов кортежа . . . . . . . . . . . . . . . . . . . . . . . . . . . . 126
Использование кортежей . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 127
Знакомство с программой "Арсенал героя 2.0" . . . . . . . . . . . . . . 127
Настройка программы . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 128
Применение функции len() к кортежам . . . . . . . . . . . . . . . . . . . . 128
Применение оператора in к кортежам . . . . . . . . . . . . . . . . . . . . . 128
Индексация кортежей . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 129
Срезы кортежей . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 129
Неизменяемость кортежей . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 130
Сцепление кортежей . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 130
Вернемся к игре "Анаграммы" . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 131
Настройка программы . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 131
Как сформировать анаграмму . . . . . . . . . . . . . . . . . . . . . . . . . . . 131
Создание пустой строки для анаграммы . . . . . . . . . . . . . . . . . . . 132
Настройка цикла . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 132
Выбор случайной позиции в слове . . . . . . . . . . . . . . . . . . . . . . . 132
Новая версия jumble . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 132
Новая версия word . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 133
Программа приветствует игрока . . . . . . . . . . . . . . . . . . . . . . . . . 133
Получение пользовательского ввода . . . . . . . . . . . . . . . . . . . . . . 133
Поздравление за правильно отгаданное слово . . . . . . . . . . . . . . 133
Конец игры . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 134
Резюме . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 134
Глава 5. Списки и словари. Игра "Виселица" . . . . . . . . . . . . . . . . . 135
Знакомство с игрой "Виселица" . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 135
Использование списков . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 137
Знакомство с программой "Арсенал героя 3.0" . . . . . . . . . . . . . . 137
Создание списка . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 137
Применение функции len() к спискам . . . . . . . . . . . . . . . . . . . . . 138
Применение оператора in к спискам . . . . . . . . . . . . . . . . . . . . . . 138
Индексация списков . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 139
Срезы списков . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 139
Сцепление списков . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 139
Изменяемость списков . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 139
Присвоение нового значения элементу, выбранному по индексу . . . .140
Присвоение новых значений срезу списка . . . . . . . . . . . . . . . . . . 140
Удаление элемента списка . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 140
Удаление среза списка . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 141
Применение списковых методов . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 141
Знакомство с программой "Рекорды" . . . . . . . . . . . . . . . . . . . . . 141
Настройка программы . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 142
Отображение меню . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 142
Выход из программы . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 143
Отображение списка рекордов . . . . . . . . . . . . . . . . . . . . . . . . . . 143
Добавление рекорда . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 143
Удаление рекорда . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 143
Сортировка списка рекордов . . . . . . . . . . . . . . . . . . . . . . . . . . . . 144
Обработка ошибочного выбора . . . . . . . . . . . . . . . . . . . . . . . . . . 145
Ожидаем пользователя . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 145
Когда использовать кортежи, а когда - списки . . . . . . . . . . . . . . . . . . . 145
Последовательности с вложением . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 146
Знакомство с программой "Рекорды 2.0" . . . . . . . . . . . . . . . . . . 146
Создаем последовательность с вложением . . . . . . . . . . . . . . . . . 147
Доступ к вложенным элементам . . . . . . . . . . . . . . . . . . . . . . . . . 148
Распаковка последовательности . . . . . . . . . . . . . . . . . . . . . . . . . 148
Настройка программы . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 149
Вывод результатов, содержащихся во вложенных кортежах . . . . 149
Добавление результата как вложенного кортежа . . . . . . . . . . . . 150
Обработка ошибочного выбора . . . . . . . . . . . . . . . . . . . . . . . . . . 150
Ожидаем пользователя . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 150
Распределенные ссылки . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 150
Использование словарей . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 153
Знакомство с программой "Переводчик с гикского на русский" . . . 153
Создание словарей . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 153
Доступ к значениям в словаре . . . . . . . . . . . . . . . . . . . . . . . . . . 154
Настройка программы . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 156
Поиск значения . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 156
Добавление пары "ключ - значение" . . . . . . . . . . . . . . . . . . . . 157
Замена пары "ключ - значение" . . . . . . . . . . . . . . . . . . . . . . . . 157
Удаление пары "ключ - значение" . . . . . . . . . . . . . . . . . . . . . . 158
Обработка ошибочного выбора . . . . . . . . . . . . . . . . . . . . . . . . . . 158
Особенности словарей . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 159
Вернемся к игре "Виселица" . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 160
Настройка программы . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 160
Создание констант . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 160
Инициализация переменных . . . . . . . . . . . . . . . . . . . . . . . . . . . . 162
Создание основного цикла . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 163
Получение ответа игрока . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 163
Проверка наличия буквы в слове . . . . . . . . . . . . . . . . . . . . . . . . 164
Завершение игры . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 164
Резюме . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 164
Глава 6. Функции. Игра "Крестики-нолики" . . . . . . . . . . . . . . . . . . 166
Знакомство с игрой "Крестики-нолики" . . . . . . . . . . . . . . . . . . . . . . . . . 166
Создание функций . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 166
Знакомство с программой "Инструкция" . . . . . . . . . . . . . . . . . . . 168
Объявление функции . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 169
Документирование функции . . . . . . . . . . . . . . . . . . . . . . . . . . . . 169
Вызов нестандартной функции . . . . . . . . . . . . . . . . . . . . . . . . . . 170
Что такое абстракция . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 170
Параметры и возвращаемые значения . . . . . . . . . . . . . . . . . . . . . . . . . . 170
Знакомство с программой "Принимай - возвращай" . . . . . . . . . 171
Передача данных с помощью параметров . . . . . . . . . . . . . . . . . . 171
Возврат значений функциями . . . . . . . . . . . . . . . . . . . . . . . . . . . 172
Что такое инкапсуляция . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 173
Функции, которые и принимают, и возвращают значения . . . . . . 173
Что такое повторное использование кода . . . . . . . . . . . . . . . . . . 174
Именованные аргументы и значения параметров по умолчанию . . . . . . . 175
Знакомство с программой "День рождения" . . . . . . . . . . . . . . . . 175
Позиционные параметры и позиционные аргументы . . . . . . . . . . 176
Позиционные параметры и именованные аргументы . . . . . . . . . . 176
Значения параметров по умолчанию . . . . . . . . . . . . . . . . . . . . . . 177
Использование глобальных переменных и констант . . . . . . . . . . . . . . . . 178
Что такое области видимости . . . . . . . . . . . . . . . . . . . . . . . . . . . 179
Знакомство с программой "Доступ отовсюду" . . . . . . . . . . . . . . . 180
Чтение глобальной переменной внутри функции . . . . . . . . . . . . . 181
Затенение глобальной переменной внутри функции . . . . . . . . . . 181
Изменение глобальной переменной внутри функции . . . . . . . . . . 182
Когда использовать глобальные переменные и константы . . . . . . 182
Вернемся к игре "Крестики-нолики" . . . . . . . . . . . . . . . . . . . . . . . . . . . 183
План программы "Крестики-нолики" . . . . . . . . . . . . . . . . . . . . . 183
Настройка программы . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 185
Функция display_instruct() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 186
Функция ask_yes_no() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 186
Функция ask_number() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 186
Функция pieces() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 187
Функция new_board() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 187
Функция display_board() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 187
Функция legal_moves() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 188
Функция winner() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 188
Функция human_move() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 189
Функция computer_move() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 189
Функция next_turn() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 192
Функция congrat_winner() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 192
Функция main() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 193
Запуск программы . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 193
Резюме . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 193
Глава 7. Файлы и исключения. Игра "Викторина" . . . . . . . . . . . . 195
Знакомство с игрой "Викторина" . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 195
Чтение из текстового файла . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 195
Знакомство с программой "Прочитаем" . . . . . . . . . . . . . . . . . . . 196
Открытие и закрытие файла . . . . . . . . . . . . . . . . . . . . . . . . . . . . 198
Посимвольное чтение файла . . . . . . . . . . . . . . . . . . . . . . . . . . . . 199
Посимвольное чтение строки . . . . . . . . . . . . . . . . . . . . . . . . . . . 200
Чтение всех строк файла в список . . . . . . . . . . . . . . . . . . . . . . . 201
Перебор строк файла . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 201
Запись в текстовый файл . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 202
Знакомство с программой "Запишем" . . . . . . . . . . . . . . . . . . . . . 202
Запись строк в файл . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 202
Запись списка строк в файл . . . . . . . . . . . . . . . . . . . . . . . . . . . . 203
Хранение структурированных данных в файлах . . . . . . . . . . . . . . . . . . . 204
Знакомство с программой "Законсервируем" . . . . . . . . . . . . . . . 204
Консервация данных и запись в файл . . . . . . . . . . . . . . . . . . . . . 205
Чтение и деконсервация данных из файла . . . . . . . . . . . . . . . . . 207
Полка для хранения консервированных данных . . . . . . . . . . . . . 207
Извлечение консервированных данных через интерфейс полки . 208
Обработка исключений . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 209
Знакомство с программой "Обработаем" . . . . . . . . . . . . . . . . . . 210
Применение конструкций try/except . . . . . . . . . . . . . . . . . . . . . . 210
Типы исключений . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 211
Обработка нескольких типов исключений . . . . . . . . . . . . . . . . . . 212
Аргумент исключения . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 213
Добавление блока else . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 214
Вернемся к игре "Викторина" . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 214
Как организованы данные в текстовом файле . . . . . . . . . . . . . . . 214
Функция open_file() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 216
Функция next_line() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 216
Функция next_block() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 217
Функция welcome() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 217
Настройка игры . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 217
Задание вопроса . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 218
Получение ответа . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 218
Проверка ответа . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 218
Переход к следующему вопросу . . . . . . . . . . . . . . . . . . . . . . . . . 218
Завершение игры . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 219
Запуск функции main() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 219
Резюме . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 219
Глава 8. Программные объекты. Программа "Моя зверюшка" . . 220
Знакомство с программой "Моя зверюшка" . . . . . . . . . . . . . . . . . . . . . . 220
Основы объектно-ориентированного подхода . . . . . . . . . . . . . . . . . . . . . 222
Создание классов, методов и объектов . . . . . . . . . . . . . . . . . . . . . . . . . . 222
Знакомство с программой "Просто зверюшка" . . . . . . . . . . . . . . 222
Объявление класса . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 223
Объявление метода . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 224
Создание объекта . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 224
Вызов метода . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 224
Применение конструкторов . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 225
Знакомство с программой "Зверюшка с конструктором" . . . . . . . 225
Создание конструктора . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 226
Создание нескольких объектов . . . . . . . . . . . . . . . . . . . . . . . . . . 226
Применение атрибутов . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 227
Знакомство с программой "Зверюшка с атрибутом" . . . . . . . . . . 227
Инициализация атрибутов . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 228
Доступ к атрибутам . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 229
Вывод объекта на экран . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 229
Применение атрибутов класса и статических методов . . . . . . . . . . . . . . 230
Знакомство с программой "Классово верная зверюшка" . . . . . . . 230
Создание атрибута класса . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 231
Доступ к атрибуту класса . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 232
Создание статического метода . . . . . . . . . . . . . . . . . . . . . . . . . . 232
Вызов статического метода . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 233
Что такое инкапсуляция объектов . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 233
Применение закрытых атрибутов и методов . . . . . . . . . . . . . . . . . . . . . . 234
Знакомство с программой "Закрытая зверюшка" . . . . . . . . . . . . . 234
Создание закрытых атрибутов . . . . . . . . . . . . . . . . . . . . . . . . . . 235
Доступ к закрытым атрибутам . . . . . . . . . . . . . . . . . . . . . . . . . . . 235
Создание закрытых методов . . . . . . . . . . . . . . . . . . . . . . . . . . . . 236
Доступ к закрытым методам . . . . . . . . . . . . . . . . . . . . . . . . . . . . 236
Соблюдаем приватность . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 237
В каких случаях нужны закрытые атрибуты и методы . . . . . . . . . 238
Управление доступом к атрибутам . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 238
Знакомство с программой "Зверюшка со свойствами" . . . . . . . . . 238
Создание свойств . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 239
Доступ к свойствам . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 240
Вернемся к программе "Моя зверюшка" . . . . . . . . . . . . . . . . . . . . . . . . 241
Класс Critter . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 241
Создание зверюшки . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 243
Создание меню . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 244
Запуск программы . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 244
Резюме . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 244
Глава 9. Объектно-ориентированное программирование.
Игра "Блек-джек" . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 246
Знакомство с игрой "Блек-джек" . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 246
Отправка и прием сообщений . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 247
Знакомство с программой "Гибель пришельца" . . . . . . . . . . . . . 248
Отправка сообщения . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 249
Прием сообщения . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 250
Сочетание объектов . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 250
Знакомство с программой "Карты" . . . . . . . . . . . . . . . . . . . . . . . 250
Создание класса Card . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 251
Создание класса Hand . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 251
Применение объектов-карт . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 252
Сочетание объектов-карт в объекте Hand . . . . . . . . . . . . . . . . . . 252
Создание новых классов с помощью наследования . . . . . . . . . . . . . . . . . 253
Расширение класса через наследование . . . . . . . . . . . . . . . . . . . . . . . . . 254
Знакомство с программой "Карты 2.0" . . . . . . . . . . . . . . . . . . . . 254
Создание базового класса . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 254
Наследование от базового класса . . . . . . . . . . . . . . . . . . . . . . . . 256
Расширение производного класса . . . . . . . . . . . . . . . . . . . . . . . . 256
Применение производного класса . . . . . . . . . . . . . . . . . . . . . . . . 257
Переопределение унаследованных методов . . . . . . . . . . . . . . . . . . . . . . 259
Знакомство с программой "Карты 3.0" . . . . . . . . . . . . . . . . . . . . 259
Создание базового класса . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 259
Переопределение методов базового класса . . . . . . . . . . . . . . . . . 260
Вызов методов базового класса . . . . . . . . . . . . . . . . . . . . . . . . . 261
Применение производного класса . . . . . . . . . . . . . . . . . . . . . . . . 262
Что такое полиморфизм . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 263
Создание модулей . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 263
Знакомство с программой "Простая игра" . . . . . . . . . . . . . . . . . . 264
Пишем модуль . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 264
Импорт модулей . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 265
Применение импортированных функций и классов . . . . . . . . . . . 266
Вернемся к игре "Блек-джек" . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 267
Модуль cards . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 267
Продумаем систему классов . . . . . . . . . . . . . . . . . . . . . . . . . . . . 268
Напишем псевдокод для основного цикла игры . . . . . . . . . . . . . . 269
Импорт модулей cards и games . . . . . . . . . . . . . . . . . . . . . . . . . . 270
Класс BJ_Card . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 270
Класс BJ_Deck . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 271
Класс BJ_Hand . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 271
Класс BJ_Player . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 273
Класс BJ_Dealer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 273
Класс BJ_Game . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 274
Функция main() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 276
Резюме . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 276
Глава 10. Разработка графических интерфейсов.
Программа "Сумасшедший сказочник" . . . . . . . . . . . . . . 278
Знакомство с программой "Сумасшедший сказочник" . . . . . . . . . . . . . . 278
GUI в подробностях . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 280
Что такое событийно-ориентированное программирование . . . . . . . . . . 281
Базовое окно . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 282
Знакомство с программой "Простейший GUI" . . . . . . . . . . . . . . . . . . . . . 282
Импорт модуля tkinter . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 283
Создание базового окна . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 284
Изменение вида базового окна . . . . . . . . . . . . . . . . . . . . . . . . . . 284
Запуск событийного цикла базового окна . . . . . . . . . . . . . . . . . . 284
Применение меток . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 285
Знакомство с программой "Это я, метка" . . . . . . . . . . . . . . . . . . 285
Настройка программы . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 285
Создание рамки . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 286
Создание метки . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 286
Запуск событийного цикла базового окна . . . . . . . . . . . . . . . . . . 286
Применение кнопок . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 287
Знакомство с программой "Бесполезные кнопки" . . . . . . . . . . . . 287
Настройка программы . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 287
Создание кнопок . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 287
Запуск событийного цикла базового окна . . . . . . . . . . . . . . . . . . 288
Создание GUI с помощью класса . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 288
Знакомство с программой "Бесполезные кнопки - 2" . . . . . . . . . 289
Импорт модуля tkinter . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 289
Объявление класса Application . . . . . . . . . . . . . . . . . . . . . . . . . . 289
Объявление метода-конструктора . . . . . . . . . . . . . . . . . . . . . . . . 289
Объявление метода, создающего элементы управления . . . . . . . 290
Создание объекта класса Application . . . . . . . . . . . . . . . . . . . . . . 290
Связывание элементов управления с обработчиками событий . . . . . . . . 291
Знакомство с программой "Счетчик щелчков" . . . . . . . . . . . . . . . 291
Настройка программы . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 291
Связывание обработчика с событием . . . . . . . . . . . . . . . . . . . . . 292
Создание обработчика события . . . . . . . . . . . . . . . . . . . . . . . . . . 292
Обертка программы . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 292
Текстовые поля и области. Менеджер размещения Grid . . . . . . . . . . . . . 292
Знакомство с программой "Долгожитель" . . . . . . . . . . . . . . . . . . 293
Настройка программы . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 294
Размещение элементов управления с помощью менеджера Grid . . . 294
Создание текстового поля . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 295
Создание текстовой области . . . . . . . . . . . . . . . . . . . . . . . . . . . . 296
Текстовые элементы: извлечение и вставка данных . . . . . . . . . . 296
Обертка программы . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 297
Применение флажков . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 297
Знакомство с программой "Киноман" . . . . . . . . . . . . . . . . . . . . . 298
Настройка программы . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 298
Ссылка только на родительский объект элемента управления . . . 298
Создание флажков . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 299
Получение статуса флажка . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 300
Обертка программы . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 301
Применение переключателей . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 301
Знакомство с программой "Киноман-2" . . . . . . . . . . . . . . . . . . . . 301
Настройка программы . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 302
Создание переключателя . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 302
Доступ к значениям в переключателе . . . . . . . . . . . . . . . . . . . . . 304
Обертка программы . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 304
Вернемся к программе "Сумасшедший сказочник" . . . . . . . . . . . . . . . . . 304
Импорт модуля tkinter . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 304
Метод-конструктор класса Application . . . . . . . . . . . . . . . . . . . . . 305
Метод create_widgets() класса Application . . . . . . . . . . . . . . . . . . 305
Метод tell_story() класса Application . . . . . . . . . . . . . . . . . . . . . . . 306
Основная часть программы . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 307
Резюме . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 308
Глава 11. Графика. Игра "Паника в пиццерии" . . . . . . . . . . . . . . . . 309
Знакомство с игрой "Паника в пиццерии" . . . . . . . . . . . . . . . . . . . . . . . 309
Знакомство с пакетами pygame и livewires . . . . . . . . . . . . . . . . . . . . . . . 309
Создание графического окна . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 311
Знакомство с программой "Новое графическое окно" . . . . . . . . . 311
Импорт модуля games . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 312
Инициализация графического экрана . . . . . . . . . . . . . . . . . . . . . 313
Запуск основного цикла . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 313
Назначение фоновой картинки . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 314
Знакомство с программой "Фоновая картинка" . . . . . . . . . . . . . . 314
Загрузка изображения . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 315
Установка фона . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 316
Что такое система координат графики . . . . . . . . . . . . . . . . . . . . . . . . . . 316
Отображение спрайта . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 317
Знакомство с программой "Спрайт-пицца" . . . . . . . . . . . . . . . . . 318
Загрузка изображения для спрайта . . . . . . . . . . . . . . . . . . . . . . . 319
Создание спрайта . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 320
Добавление спрайта на экран . . . . . . . . . . . . . . . . . . . . . . . . . . . 320
Отображение текста . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 322
Знакомство с программой "Ничего себе результат!" . . . . . . . . . . 322
Импорт модуля color . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 323
Создание объекта Text . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 323
Добавление объекта Text на экран . . . . . . . . . . . . . . . . . . . . . . . 324
Вывод сообщения . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 324
Знакомство с программой "Победа" . . . . . . . . . . . . . . . . . . . . . . 324
Импорт модуля color . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 325
Создание объекта Message . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 325
Ширина и высота графического экрана . . . . . . . . . . . . . . . . . . . . 326
Добавление объекта Message на экран . . . . . . . . . . . . . . . . . . . . 326
Подвижные спрайты . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 327
Знакомство с программой "Летающая пицца" . . . . . . . . . . . . . . . 327
Настройка скорости движения спрайта . . . . . . . . . . . . . . . . . . . . 327
Учет границ экрана . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 328
Программа "Скачущая пицца" . . . . . . . . . . . . . . . . . . . . . . . . . . 329
Настройка программы . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 330
Создание подкласса Sprite . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 330
Переопределение метода update() . . . . . . . . . . . . . . . . . . . . . . . 330
Обертка программы . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 331
Обработка ввода с помощью мыши . . . . . . . . . . . . . . . . . . . . . . . . . . . . 331
Знакомство с программой "Подвижная сковорода" . . . . . . . . . . . 331
Настройка программы . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 332
Чтение координат указателя . . . . . . . . . . . . . . . . . . . . . . . . . . . . 332
Настройка видимости указателя . . . . . . . . . . . . . . . . . . . . . . . . . 333
Перенаправление ввода в графическое окно . . . . . . . . . . . . . . . . 333
Обертка программы . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 334
Регистрация столкновений . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 334
Знакомство с программой "Ускользающая пицца" . . . . . . . . . . . . 334
Настройка программы . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 336
Регистрация столкновений . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 336
Обработка столкновений . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 336
Обертка программы . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 337
Вернемся к игре "Паника в пиццерии" . . . . . . . . . . . . . . . . . . . . . . . . . . 337
Настройка программы . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 337
Класс Pan . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 338
Класс Pizza . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 339
Класс Chef . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 341
Функция main() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 343
Резюме . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 343
Глава 12. Звук, анимация, разработка больших программ.
Игра "Прерванный полет" . . . . . . . . . . . . . . . . . . . . . . . . . 345
Знакомство с игрой "Прерванный полет" . . . . . . . . . . . . . . . . . . . . . . . . 345
Чтение с клавиатуры . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 347
Знакомство с программой "Читаю с клавиатуры" . . . . . . . . . . . . 347
Настройка программы . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 348
Регистрация нажатий . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 348
Обертка программы . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 349
Вращение спрайта . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 349
Знакомство с программой "Крутящийся спрайт" . . . . . . . . . . . . . 349
Применение свойства angle у спрайтов . . . . . . . . . . . . . . . . . . . . 351
Создание анимации . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 351
Знакомство с программой "Взрыв" . . . . . . . . . . . . . . . . . . . . . . . 352
Посмотрим на картинки . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 352
Настройка программы . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 352
Создание списка изображений . . . . . . . . . . . . . . . . . . . . . . . . . . 353
Создание анимированного объекта . . . . . . . . . . . . . . . . . . . . . . . 354
Работа со звуком и музыкой . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 354
Знакомство с программой "Звук и музыка" . . . . . . . . . . . . . . . . . 354
Работа со звуком . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 355
Работа с музыкой . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 357
Обертка программы . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 359
Разработка игры "Прерванный полет" . . . . . . . . . . . . . . . . . . . . . . . . . . 359
Функциональность игры . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 359
Классы игры . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 360
Медиаресурсы . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 360
Создание астероидов . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 360
Программа "Прерванный полет - 1" . . . . . . . . . . . . . . . . . . . . . 361
Настройка программы . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 361
Класс Asteroid . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 362
Функция main() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 363
Вращение корабля . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 363
Программа "Прерванный полет - 2" . . . . . . . . . . . . . . . . . . . . . 364
Класс Ship . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 364
Инстанцирование класса Ship . . . . . . . . . . . . . . . . . . . . . . . . . . . 365
Движение корабля . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

С этой книгой чаще всего покупают:
Python. Карманный справочник

Python. Карманный справочник

рекомендуем
Марк Лутц
Год выпуска: 2020
Изд-во: Диалектика-Вильямс
в корзину
На 1 книгу
 
Скрапинг веб-сайтов с помощью Python

Скрапинг веб-сайтов с помощью Python

Митчелл Р.
Год выпуска: 2016
Изд-во: ДМК
в корзину
На 1 книгу
Цена: 310.00 грн. 
 
Цена: 841.00 грн. 

Хотите оставить отзыв? У Вас возникли вопросы о книге "Программируем на Python, Доусон М." ? Пишите:

* Текст сообщения:
 
  Отправить
Поиск по каталогу
 поиск в аннотациях
Искать

Наші партнери:

Купить лодку РИБ  |  купить мотор Тохатсу  |  купить снаряжение JOBE Джоби  |  купить гидрокостюм  |  стеклопластик B2B  |  купить гребную лодку  |  ремонт катера  |  купить катер РИБ  |  купить лодку из стеклопластика  |  купить спасательный жилет  |  купить мотор Tohatsu  |  купить JOBE Джоби  |  купить лодочный мотор  | 

 * Подробнее об условиях доставки смотрите в разделе "Оплата и Доставка" нашего магазина.
Если у Вас возникли вопросы как подобрать и купить книги в нашем интернет-магазине звоните с 10 до 18 по будним дням: Водафон (050) 809-56-66, Киевстар (067) 408-26-36 или пишите нам

 
   
  Programming - Dmitriy Kotov & Andrey Kotov