Предисловие ....16
Новое в этом издании....16
Трудный путь на самом деле прост....17
Чтение и ввод....18
Внимание к деталям....18
Обнаружение различий....18
Хватит смотреть, спрашивайте....19
Никакого копирования/вставки....19
Дополнительные видеоролики....19
О практике и настойчивости....20
Благодарности....21
Упражнение 0. Настройка....22
macOS....22
macOS: результат....23
Windows....24
Windows: результат....25
Linux....26
Linux: результат....27
Поиск в Интернете....28
Начинающим....28
Альтернативные текстовые редакторы....29
Упражнение 1. Первая программа....31
Результат выполнения....33
Практические задания....34
Распространенные вопросы....35
Упражнение 2. Комментарии и символы #....37
Результат выполнения....37
Практические задания....38
Распространенные вопросы....38
Упражнение 3. Числа и математика....40
Результат выполнения....41
Практические задания....42
Распространенные вопросы....42
Упражнение 4. Переменные и имена....43
Результат выполнения....44
Практические задания....44
Дополнительные рактические задания....45
Распространенные вопросы....45
Упражнение 5. Дополнительно о переменных и выводе....47
Результат выполнения....48
Практические задания....48
Распространенные вопросы....48
Упражнение 6. Строки и текст....50
Результат выполнения....51
Практические задания....51
Распространенные вопросы....52
Упражнение 7. Еще о выводе....53
Результат выполнения....54
Практические задания....54
Работа с ошибками....54
Распространенные вопросы....54
Упражнение 8. Вывод, вывод....56
Результат выполнения....56
Практические задания....57
Распространенные вопросы....57
Упражнение 9. Вывод, вывод, вывод....58
Результат выполнения....58
Практические задания....59
Распространенные вопросы....59
Упражнение 10. Управляющие последовательности....60
Результат выполнения....61
Управляющие последовательности....62
Практические задания....62
Распространенные вопросы....63
Упражнение 11. Получение ответов на вопросы....64
Результат выполнения....65
Практические задания....65
Распространенные вопросы....65
Упражнение 12. Запрос ввода....66
Результат выполнения....66
Практические задания....66
Распространенные вопросы....67
Упражнение 13. Параметры, распаковка, переменные....68
Внимание! У возможностей другое название....69
Результат выполнения....69
Практические задания....71
Распространенные вопросы....71
Упражнение 14. Запросы и подтверждения....73
Результат выполнения....74
Практические задания....74
Распространенные вопросы....75
Упражнение 15. Чтение файлов....77
Результат выполнения....78
Практические задания....79
Распространенные вопросы....80
Упражнение 16. Чтение и запись файлов....82
Результат выполнения....84
Практические задания....84
Распространенные вопросы....85
Упражнение 17. Еще о файлах....86
Результат выполнения....87
Практические задания....88
Распространенные вопросы....88
Упражнение 18. Имена, переменные, код, функции....90
Результат выполнения....92
Практические задания....92
Распространенные вопросы....94
Упражнение 19. Функции и переменные....95
Результат выполнения....96
Практические задания....97
Распространенные вопросы....97
Упражнение 20. Функции и файлы....99
Результат выполнения....100
Практические задания....100
Распространенные вопросы....101
Упражнение 21. Что возвращают функции....103
Результат выполнения....104
Практические задания....105
Распространенные вопросы....105
Упражнение 22. Что вы теперь знаете?....107
Что вы изучили....108
Упражнение 23. Строки, байты и кодировки символов....109
Предварительное исследование....110
Переключатели, общепринятые обозначения и кодировки.....112
Анализ резукльтата выполнения кода....114
Анализ кода....115
Углубляемся в кодирование....118
Ломаем код....119
Упражнение 24. Дополнительная практика....120
Результат выполнения....121
Практические задания....122
Распространенные вопросы....122
Упражнение 25. И еще практика....123
Результат выполнения....124
Практические задания....126
Распространенные вопросы....126
Упражнение 26. Внимание, тест!....128
Распространенные вопросы....129
Упражнение 27. Обучение логике....130
Терминология....131
Таблицы истинности....131
Распространенные вопросы....133
Упражнение 28. Логические выражения....134
Результат выполнения....136
Практические задания....137
Распространенные вопросы....137
Упражнение 29. Что если....138
Результат выполнения....139
Практические задания....139
Распространенные вопросы....139
Упражнение 30. А если иначе....140
Результат выполнения....139
Практические задания....139
Распространенные вопросы....139
Упражнение 31. Принятие решений....143
Результат выполнения....144
Практические задания....145
Распространенные вопросы....145
Упражнение 32. Циклы и списки....146
Результат выполнения....147
Практические задания....148
Распространенные вопросы....149
Упражнение 33. Циклы while....150
Результат выполнения....151
Практические задания....152
Распространенные вопросы....153
Упражнение 34. Доступ к элементам списка....154
Практические задания....156
Упражнение 35. Ветви и функции....157
Результат выполнения....159
Практические задания....159
Распространенные вопросы....160
Упражнение 36. Разработка и отладка....161
Правила конструкций if....161
Правила циклов....162
Советы по отладке....162
Домашнее задание....162
Упражнение 37. Знакомство с символами....164
Ключевые слова....164
Типы данных....166
Управляющие последовательности....166
Форматирование строк в старом стиле....167
Операторы....168
Чтение кода....170
Практические задания....171
Распространенные вопросы....171
Упражнение 38. Работа со списками....172
Результат выполнения....174
Для чего нужны списки....175
В каких случаях используются списки....176
Практические задания....176
Распространенные вопросы....177
Упражнение 39. Словари....179
Пример словаря....180
Результат выполнения....182
Для чего нужны словари?....183
Практические задания....184
Распространенные вопросы....184
Упражнение 40. Модули, классы и объекты....186
Модули в сравнении со словарями....186
Классы как мини-модули....188
Объекты как мини-импорты....189
Три способа....191
Первоклассный пример....191
Результат выполнения....192
Практические задания....192
Распространенные вопросы....193
Упражнение 41. Поговорим об ООП....194
Терминология....194
Чтение кода....195
Смешанное упражнение....196
Перевод с кода на русский язык....196
Перевод с русского языка в код....198
Дополнительное упражнение по чтению кода....199
Распространенные вопросы....199
Упражнение 42. Композиция, наследование, объекты и классы....201
Пример кода....202
О синтаксисе class имя (объект)....205
Практические задания....205
Распространенные вопросы....206
Упражнение 43. Основы объектно-ориентированного анализа и дизайна....207
Анализ простого игрового движка....208
Запись или зарисовка задачи....209
Извлечение ключевых концепций и их анализ....209
Формирование иерархии классов и схемы объектов на основе концепций....211
Кодинг классов и тестовый запуск....212
Исправление ошибок и доработка кода....214
Нисходящий подход против восходящего....215
Код игры «Готоны с планеты Перкаль 25»....215
Результат выполнения....223
Практические задания....225
Распространенные вопросы....226
Упражнение 44. Наследование и композиция....227
Что такое «наследование»?....228
Неявное наследование....228
Явное переопределение....229
Видоизменение до или после....230
Комбинация взаимодействий....232
Причины использования функции super ()....233
Использование функции super () с методом __init__....234
Композиция....235
Наследование или композиция: что выбрать?....236
Практические задания....237
Распространенные вопросы....237
Упражнение 45. Разработка игры....239
Проверка созданной игры....240
Оформление функций....240
Оформление классов....241
Оформление кода....242
Оформление комментариев....242
Выставление оценки....243
Упражнение 46. Каркас проекта....244
Установка в среде macOS/Linux....244
Установка в среде Windows 10....246
Подготовка каркаса каталогов проекта....248
Окончательная структура каталогов....250
Проверка проекта....252
Использование каркаса....252
Обязательный опросник....253
Распространенные вопросы....253
Упражнение 47. Автоматизированное тестирование....255
Создание примера для тестирования....255
Руководство по тестированию....258
Результат выполнения....258
Практические задания....259
Распространенные вопросы....259
Упражнение 48. Расширенный пользовательский ввод....261
Игровой словарь....262
Разделение предложений....262
Лексические кортежи....262
Анализ ввода....263
Исключения и числа....263
Тактика «сначала тест»....264
Что нужно тестировать?....266
Практические задания....268
Распространенные вопросы....268
Упражнение 49. Формирование предложений....270
Соответствия и считывание....270
Строение предложений....271
Пара слов об исключениях....272
Код синтаксического анализатора....272
Эксперименты с синтаксическом анализатором....275
Что нужно тестировать?....276
Практические задания....277
Распространенные вопросы....277
Упражнение 50. Ваш первый веб-сайт....278
Установка фреймворка Flask....278
Создание простого проекта....279
Что происходит?....280
Создание базовых шаблонов....281
Работа над ошибками....284
Практические задания....285
Распространенные вопросы....286
Упражнение 51. Получение ввода из браузера....288
Как устроена Всемирная паутина....288
Принцип работы веб-формы....291
Создание HTML-форм....293
Подготовка макета шаблона....295
Разработка автоматических тестов для веб-форм....297
Практические задания....299
Ломаем код....299
Упражнение 52. Игра для Всемирной паутины....301
Доработка игры из упражнения 43....301
Разработка движка....307
Ваш выпускной экзамен....311
Распространенные вопросы....312
Дальнейшее обучение....313
Как изучить любой язык программирования....314
Совет бывалого программиста....316
Приложение. Экспресс-курс по оболочке командной строки. ....318
Введение в оболочку командной строки....318
Как использовать данное приложение....319
Способы запомнить информацию....319
Подготовка....320
Практикум....321
macOS....321
Linux....321
Windows....322
Что вы изучили,....322
Дополнительно....323
Linux/macOS....323
Windows....324
Пути, папки и каталоги (pwd)....325
Практикум....325
Linux/macOS....325
Windows....326
Что вы изучили....326
Дополнительно....327
Если вы заблудились....327
Практикум....328
Что вы изучили....328
Создание каталога (mkdir)....328
Практикум....328
Linux/macOS....328
Windows....329
Что вы изучили....330
Дополнительно....330
Смена каталога (cd)....331
Практикум....331
Linux/macOS....331
Windows....332
Что вы изучили....334
Дополнительно....335
Вывод содержимого каталога (Is)....336
Практикум....336
Linux/macOS....336
Windows....337
Что вы изучили....340
Дополнительно....340
Удаление каталога (rmdir)....341
Практикум....341
Linux/macOS....341
Windows....342
Что вы изучили....343
Дополнительно....343
Работа со стеком (pushd, popd)....344
Практикум....344
Linux/macOS....344
Windows....345
Что вы изучили....346
Дополнительно....347
Создание пустых файлов (touch, New-Item)....347
Практикум....347
Linux/macOS....347
Windows....348
Что вы изучили....348
Дополнительно....348
Копирование файла (ср)....349
Практикум....349
Linux/macOS....349
Windows....349
Что вы изучили....352
Дополнительно....352
Перемещение файла (mv)....353
Практикум....353
Linux/macOS....353
Windows....353
Что вы изучили....355
Дополнительно....355
Просмотр файла (less, more)....355
Практикум....356
Linux/macOS....356
Windows....356
Что вы изучили....356
Дополнительно....357
Вывод содержимого файла (cat)....357
Практикум....357
Linux/macOS....357
Windows....358
Что вы изучили....358
Дополнительно....358
Удаление файла (rm)....359
Практикум....359
Linux/macOS....359
Windows....359
Что вы изучили....361
Дополнительно....361
Выход из оболочки (exit)....361
Практикум....361
Linux/macOS....361
Windows....362
Что вы изучили....362
Дополнительно....362
Дальнейшее обучение....363
Руководства по Unix Bash....363
Руководства по PowerShell....363
Предметный указатель....364
Хотите получить «черный пояс» по программированию? Зед Шоу гарантирует его вам!
52 идеально продуманных упражнения, а также теорию и ответы на часто задаваемые вопросы. Выполняйте задания, исправляйте ошибки, запускайте программы и наслаждайтесь результатом!
Зед Шоу — программист, писатель, а еще он заядлый гитарист. Его книги прочли миллионы людей по всему миру. Написанные им программы используются в крупнейших международных компаниях. Его публикации все время цитируются многочисленными сообществами гиков в социальных сетях. Откройте для себя и вы этого интересного автора, чьи книги помогают людям исполнять свои мечты и обучаться программированию с нуля.