Звоните: (067) 644-70-74
Напишите нам burtrest@gmail.com

Книга Программируем на Python. Доусон

270.40 грн.

Артикул: 4cf867f78364 Категория:

Описание

год- 2012

432 страницы

Эта книга Программируем на 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