Большая книга проектов Python
Автор Эл Свейгарт
()
Об этой электронной книге
В 256 строк кода поместится все — «винтажная» экранная заставка, забег улиток на скорость, рекламный заголовок-приманка, вращающаяся спираль ДНК и так далее. Добавьте к этому пару строк своего кода, и вы сможете делиться собственными уникальными проектами в интернете.
Читать больше произведений Эл Свейгарт
Python. Чистый код для продолжающих Рейтинг: 0 из 5 звезд0 оценокРекурсивная книга о рекурсии Рейтинг: 0 из 5 звезд0 оценок
Связано с Большая книга проектов Python
Похожие электронные книги
Математические алгоритмы для программистов. 3D-графика, машинное обучение и моделирование на Python Рейтинг: 0 из 5 звезд0 оценокKotlin. Программирование для профессионалов Рейтинг: 0 из 5 звезд0 оценокТайная жизнь программ. Как создать код, который понравится вашему компьютеру Рейтинг: 0 из 5 звезд0 оценокАлгоритмы. С примерами на Python Рейтинг: 0 из 5 звезд0 оценокПрограммирование на Python с помощью GitHub Copilot и ChatGPT. Рейтинг: 0 из 5 звезд0 оценокАлгоритмы и структуры данных на Python Рейтинг: 0 из 5 звезд0 оценокPython без проблем: решаем реальные задачи и пишем полезный код Рейтинг: 0 из 5 звезд0 оценокСтильный Java. Код, который работает всегда и везде Рейтинг: 0 из 5 звезд0 оценокПрограммируй & типизируй Рейтинг: 0 из 5 звезд0 оценокPython для хакеров. Нетривиальные задачи и проекты Рейтинг: 0 из 5 звезд0 оценокКнига юных программистов на Scratch. Рейтинг: 0 из 5 звезд0 оценокИзучаем Python: программирование игр, визуализация данных, веб-приложения: 3-е издание дополненное и переработанное Рейтинг: 0 из 5 звезд0 оценокПоговорим на Python. Разработка ПО для начинающих Рейтинг: 0 из 5 звезд0 оценокРецепты Python. Коллекция лучших техник программирования Рейтинг: 0 из 5 звезд0 оценокC++20 для программистов Рейтинг: 0 из 5 звезд0 оценокКлассические задачи Computer Science на языке Python Рейтинг: 0 из 5 звезд0 оценокПрикладные структуры данных и алгоритмы. Прокачиваем навыки Рейтинг: 0 из 5 звезд0 оценокPython. Исчерпывающее руководство Рейтинг: 0 из 5 звезд0 оценокАлгоритмы с нуля Рейтинг: 0 из 5 звезд0 оценокПять строк кода. Роберт Мартин рекомендует: Рефакторинг с нуля Рейтинг: 0 из 5 звезд0 оценокСекреты Python Pro Рейтинг: 0 из 5 звезд0 оценокКлассические задачи Computer Science на языке Java Рейтинг: 0 из 5 звезд0 оценокPython за 7 дней. Краткий курс для начинающих Рейтинг: 0 из 5 звезд0 оценокPython: быстрый старт Рейтинг: 0 из 5 звезд0 оценокОсновы компиляции: инкрементный подход Рейтинг: 0 из 5 звезд0 оценокPython с нуля Рейтинг: 0 из 5 звезд0 оценокАлгоритмы неформально. Инструкция для начинающих питонистов Рейтинг: 0 из 5 звезд0 оценокАлгоритмы? Аха! Рейтинг: 0 из 5 звезд0 оценокМивар: Линейный логический вывод Рейтинг: 0 из 5 звезд0 оценокПуть Python. Черный пояс по разработке, масштабированию, тестированию и развертыванию Рейтинг: 0 из 5 звезд0 оценок
«Программирование» для вас
От джуна до сеньора: Как стать востребованным разработчиком Рейтинг: 0 из 5 звезд0 оценокPython без проблем: решаем реальные задачи и пишем полезный код Рейтинг: 0 из 5 звезд0 оценокPython. Экспресс-курс. 3-е изд. Рейтинг: 0 из 5 звезд0 оценокКод, который умещается в голове: эвристики для разработчиков Рейтинг: 0 из 5 звезд0 оценокКреативный программист Рейтинг: 0 из 5 звезд0 оценокЧистый Python. Тонкости программирования для профи Рейтинг: 0 из 5 звезд0 оценокГрокаем алгоритмы: 2-е издание Рейтинг: 0 из 5 звезд0 оценокСовременный подход к программной архитектуре: сложные компромиссы Рейтинг: 0 из 5 звезд0 оценокАлгоритмы? Аха! Рейтинг: 0 из 5 звезд0 оценокТеоретический минимум по Computer Science: Все, что нужно программисту и разработчику Рейтинг: 0 из 5 звезд0 оценокGo: идиомы и паттерны проектирования Рейтинг: 0 из 5 звезд0 оценокОсновы Dart Рейтинг: 0 из 5 звезд0 оценокАлгоритмы неформально. Инструкция для начинающих питонистов Рейтинг: 0 из 5 звезд0 оценокЗнакомство с Python Рейтинг: 0 из 5 звезд0 оценок
Отзывы о Большая книга проектов Python
0 оценок0 отзывов
Предварительный просмотр книги
Большая книга проектов Python - Эл Свейгарт
О научном редакторе
Сара Кучински (Sarah Kuchinsky) — магистр естественных наук, корпоративный инструктор и консультант. Она использует Python для множества целей, включая моделирование систем здравоохранения, разработку игр и автоматизацию задач. Сара — один из основателей конференции North Bay Python, председатель комиссии по обучающим пособиям конференции PyCon US и ведущий организатор группы PyLadies Silicon Valley. Защитила дипломы по теории управления, инженерии и математике.
Введение
Программировать легко, когда можно просто скопировать print('Hello,world!'). Вероятно, вам случалось читать хорошо структурированную книгу или проходить онлайн-курс для начинающих, прорабатывая упражнения и поддакивая жаргонным словечкам, которые вы (более или менее) понимали. Однако когда пришло время покидать гнездо и писать собственные программы, возможно, летать самостоятельно оказалось не так просто. Вы обнаружили, что пялитесь в пустое окно редактора и не знаете, как начать писать свои программы на Python.
Проблема в том, что следовать учебнику очень полезно для усвоения теории, но это далеко не всегда то же самое, что учиться писать новые программы с нуля. На данном этапе часто рекомендуют изучать программное обеспечение с открытым исходным кодом или работать над собственными проектами, но проекты с открытым исходным кодом далеко не всегда хорошо документированы или доступны для начинающих. И хотя работа над собственными проектами очень стимулирует, вы остаетесь совершенно без руководства.
В книге вы найдете практические примеры применения различных идей программирования в виде коллекции более чем 80 игр, имитационных моделей и объектов цифрового искусства. Они представляют собой не просто фрагменты кода, а полноценные работающие программы на Python. Вы можете скопировать их код, чтобы лучше познакомиться с тем, как они работают, поэкспериментировать, а затем попытаться воссоздать их самостоятельно в качестве практики. Вскоре вы найдете идеи для собственных программ и, главное, будете знать, как приступить к их реализации.
Проектирование маленьких программ
Программирование зарекомендовало себя как навык, открывающий большие возможности, в том числе по созданию технологических компаний стоимостью миллиарды долларов и потрясающих технических достижений. Стремиться к большему при создании своего ПО легко, но когда переоцениваешь свои силы — в конце концов получаешь только незаконченные программы и разочарование. Однако вовсе не нужно быть компьютерным гением, чтобы создавать интересные и креативные программы.
Проекты на Python в этой книге отвечают нескольким основным принципам проектирования, чтобы упростить для начинающих понимание исходного кода.
• Они маленькие — большинство приведенных в книге программ не превышает 256 строк кода, а часто они намного короче. Благодаря таким ограничениям размера читателю проще понять эти программы. Число 256 выбрано случайно, но 256 = 2⁸, а степени двойки — счастливые для программистов числа.
• Приводятся в виде текста — текст проще, чем графика. Когда и исходный код, и выводимые программой результаты представляют собой текст, можно легко отследить, скажем, причинно-следственную связь между оператором print('Thanksforplaying!') в коде и выводимой на экран надписью Thanksforplaying!.
• Не требуют установки — все программы заключены в отдельные, самодостаточные файлы исходного кода Python с расширением .py, например tictactoe.py. Не нужно запускать программу установки и можно легко разместить такую программу в интернете, чтобы поделиться ею с другими.
• Их много — в книге приведена 81 программа. Вы обязательно найдете программы себе по вкусу среди настольных игр, карточных игр, художественных цифровых изображений, имитационных моделей, математических загадок, лабиринтов и развлекательных программ.
• Они простые — эти программы были написаны так, чтобы быть понятными даже для начинающих. Выбирая между кодом на основе сложных, высокопроизводительных алгоритмов и простым и ясным кодом, я всегда в этой книге склонялся к последнему.
Программы в текстовом формате могут показаться несколько старомодными, но подобный стиль программирования позволяет не отвлекаться на нюансы, связанные со скачиванием графических данных, установкой дополнительных библиотек и организацией каталогов проекта. Вместо этого можно сосредоточиться на самом коде.
Для кого эта книга
Книга написана для двух групп людей. В первую входят те, кто уже освоил основы Python и программирования вообще, но все еще не вполне представляет, как писать собственные программы. Этим людям может казаться, что программирование для них «не сложилось». Можно успешно решать практические упражнения из учебников, но с трудом представлять себе, как выглядит полная программа. Благодаря сначала копированию, а затем и воссозданию игр из данной книги эти люди постепенно поймут, как изучаемые здесь понятия программирования компоновать во множество настоящих программ.
Во вторую группу входят новички в сфере программирования, достаточно азартные и настроенные на приключения, желающие погрузиться в работу с головой и сразу же начать создавать игры, имитационные модели и программы, обрабатывающие большие массивы числовых данных. Таких людей устраивает копирование кода и изучение его по ходу дела. Или, возможно, они уже умеют программировать на другом языке, но Python им внове. Эта книга, хотя и не заменяет полноценный вводный курс Python, кратко знакомит читателя с его основами и учит использовать отладчик для исследования внутренних механизмов работы программы во время выполнения.
Опытные программисты тоже могут развлечься с программами из этой книги, но учтите, что она написана все-таки для новичков.
Что можно найти в издании
Хотя основная часть книги посвящена конкретным программам, в ней вы найдете также дополнительные источники информации по общим вопросам программирования и Python.
• Проекты — перечислять здесь 81 проект будет слишком долго, но каждому из них посвящена отдельная глава, включающая название проекта, описание, пример результатов работы программы и ее исходный код. Вдобавок приводятся рекомендации относительно изменений, которые вы можете внести в код, чтобы адаптировать эти программы к своим требованиям.
• Приложение A «Указатель тегов» — перечислены все проекты, разбитые на категории по тегам проектов.
• Приложение Б «Таблица кодов символов» — список кодов символов для сердечек, линий, стрелок и блоков, которые могут выводить ваши программы.
Как научиться чему-то на программах из этой книги
Эта книга не учит языку Python или каким-либо понятиям программирования, подобно обычному учебнику. В ней применяется подход «учеба на практике», при котором читателя призывают вручную копировать программы, экспериментировать с ними и исследовать внутренние механизмы их работы путем запуска их под отладчиком.
Основная идея книги состоит не в подробном пояснении синтаксиса языка программирования, а в демонстрации полноценных примеров программ, реализующих нечто реальное: карточные ли игры, воспроизведение ли анимации, исследование ли математической загадки. Поэтому я рекомендую придерживаться следующих этапов.
1. Скачайте программу и запустите ее, чтобы посмотреть, что она делает.
2. Начав с пустого файла, скопируйте код игры из книги, вручную набрав его (не используйте команды копирования/вставки!).
3. Запустите программу снова, вернитесь и исправьте все опечатки и ошибки, которые вы могли случайно внести в код.
4. Запустите программу из-под отладчика, чтобы последовательно выполнить код построчно и разобраться, что делает каждая строка.
5. Найдите комментарии, отмеченные (!), чтобы найти код, который можно изменить и посмотреть, как это повлияет на программу при следующем запуске.
6. Наконец, попробуйте воссоздать программу самостоятельно с нуля. Не обязательно точную ее копию; можете привнести в нее что-то свое.
При копировании кода из книги можете не набирать комментарии (текст в конце строк, следующий за символом #) — это примечания для программистов, игнорируемые Python. Однако старайтесь писать свой код на Python на строках с теми же номерами, что и программы в данном издании, чтобы упростить их сравнение. Если у вас не получается найти опечатки в своих программах, то можете сравнить свой код с кодом из книги с помощью онлайн-утилиты diff по адресу https://inventwithpython.com/bigbookpython/diff/.
Каждую программу описывает набор тегов, например настольнаяигра, имитационная модель, художественная и длядвухигроков. Пояснения ко всем этим тегам и перекрестный указатель тегов и проектов приведены в приложении A.
Скачивание и установка Python
Python — название как языка программирования, так и интерпретатора, выполняющего код на языке Python. Утилита-интерпретатор совершенно бесплатна и свободно доступна для скачивания и использования. Можете проверить, не установлен ли уже в вашей системе Python, с помощью командной строки. В Windows откройте командную строку и введите py--version. Если выведено примерно следующее, значит, Python установлен:
C:\Users\Al>py --version
Python 3.9.1
В macOS и Linux откройте терминал и введите python3--version. Если будет выведено примерно следующее, значит, Python установлен:
$ python3 --version
Python 3.9.1
В этой книге используется Python версии 3. При переходе от Python 2 к Python 3 было внесено несколько обратно несовместимых изменений, и для работы описанных здесь программ требуется как минимум Python версии 3.1.1 (выпущена в 2009 году). Если вы увидите сообщение об ошибке, гласящее, что Python не найден или версия Python — 2, можете скачать свежий установочный пакет Python для вашей операционной системы с сайта https://python.org/. В случае проблем с установкой Python дополнительные инструкции можно найти здесь: https://installpython3.com/.
Скачивание и установка редактора Mu
Код Python вы будете вводить в текстовом редакторе или интегрированной среде разработки (IDE) приложений. Я рекомендую использовать в качестве IDE редактор Mu, если вы новичок; он прост и не отвлекает ваше внимание множеством расширенных опций.
Откройте сайт https://codewith.mu/ в браузере. В Windows и macOS скачайте установочный пакет для соответствующей операционной системы и запустите его, дважды щелкнув на файле. В macOS запуск установочного пакета приведет к открытию окна, в котором необходимо перетащить пиктограмму Mu в каталог Applications для продолжения установки. В Ubuntu придется установить Mu в качестве пакета Python. В этом случае откройте новое окно терминала и выполните команду pip3installmu-editor для установки и mu-editor — для запуска. Нажмите кнопку Instructions в разделе Python Package страницы загрузки для подробных инструкций.
Запуск редактора Mu
После установки запустите Mu:
• в Windows 7 или более поздней версии щелкните на пиктограмме Start в нижнем левом углу экрана, введите mu в поле поиска и выберите Mu, когда он появится;
• в macOS откройте окно Finder, щелкните на Applications, а затем на mu-editor;
• в Ubuntu нажмите Ctrl+Alt+T, чтобы открыть окно терминала, и введите команду python3-mmu.
При первом запуске Mu появится окно Select Mode (Выберите режим) со следующими вариантами: Adafruit CircuitPython, BBC micro:bit, Pygame Zero и Python 3. Выберите Python3. При желании позднее всегда можно изменить режим, нажав кнопку Mode вверху окна редактора.
Вы сможете вводить код в главном окне Mu, а затем сохранять его, открывать и запускать файлы с помощью кнопок вверху.
Запуск IDLE и других редакторов
Можете использовать какие угодно редакторы для написания кода на Python. Вместе с Python устанавливается ПО IDLE (Integrated Development and Learning Environment, интегрированная среда разработки и изучения), которое может служить альтернативным редактором, если по какой-либо причине вам не удалось установить Mu или заставить его работать. Запустим IDLE.
• В Windows 7 или более поздней версии щелкните на пиктограмме Start в нижнем левом углу экрана, введите idle в поле поиска и выберите IDLE (Python GUI).
• В macOS откройте окно Finder, нажмите Applications 553844.png Python 3.9 553847.png IDLE.
• В Ubuntu выберите Applications 553852.png Accessories 553858.png Terminal и введите idle3 (можете также щелкнуть на Applications вверху экрана, выбрать Programming, а затем щелкнуть на IDLE 3).
• На Raspberry Pi нажмите кнопку меню Raspberry Pi в левом верхнем углу; щелкните на Programming, а затем встав на Python 3 (IDLE). Можете также выбрать Thonny Python IDE из меню Programming.
Существует еще несколько бесплатных редакторов, с помощью которых можно вводить и выполнять код Python, например:
• Thonny, IDE Python для начинающих по адресу https://thonny.org/;
• PyCharm Community Edition — IDE Python, которую используют разработчики-профессионалы, по адресу https://www.jetbrains.com/pycharm/.
Установка модулей Python
Для большинства программ из этой книги требуется только стандартная библиотека Python, устанавливаемая автоматически вместе с Python. Однако для некоторых программ требуются сторонние модули, например pyperclip, bext, playsound и pyttsx3. Их все можно установить сразу, загрузив модуль bigbookpython.
Что касается редактора Mu, то необходимо установить версию 1.1.0-alpha (или более позднюю). По состоянию на 2020 год эту версию можно найти вверху страницы скачивания по адресу https://codewith.mu/en/download в разделе Try the Alpha of the Next Version of Mu (Попробуйте альфа-версию обновленного Mu). После установки нажмите значок с шестеренкой в левом нижнем углу окна, чтобы вызвать окно Mu Administration (Администрирование Mu). Выберите вкладку Third Party Packages (Сторонние пакеты), введите bigbookpython в текстовое поле и нажмите Ok. В результате этого будут установлены все сторонние модули, используемые программами из книги.
При использовании Visual Studio Code или редактора IDLE откройте редактор и выполните следующий код Python в интерактивной командной оболочке:
>>> import os, sys
>>> os.system(sys.executable + ' -m pip install --user bigbookpython')
0
Число 0, выводимое после второй инструкции, означает, что все работает должным образом. В противном случае, если вы увидите сообщение об ошибке или другое число, попробуйте выполнить следующие команды без опции --user:
>>> import os, sys
>>> os.system(sys.executable + ' -m pip install bigbookpython')
0
При использовании любого редактора можете попробовать выполнить команду importpyperclip или importbext, чтобы убедиться, что установка прошла успешно. Если эти команды импорта не возвращают сообщения об ошибке, значит, соответствующие модули установлены правильно и вы сможете запускать использующие их проекты из книги.
Копирование кода из книги
Программирование — навык, совершенствуемый прежде всего практикой. Не стоит просто читать код в этой книге и копировать/вставлять его в свой компьютер. Потратьте немного времени, но наберите код в редакторе вручную. Обращайте внимание на номера строк, чтобы случайно не пропустить ничего. Если вы столкнетесь с ошибками, то воспользуйтесь онлайн-утилитой diff по адресу https://inventwithpython.com/bigbookpython/diff/, чтобы сравнить свой код с кодом из книги. Чтобы лучше разобраться в работе программ, попробуйте запустить их под отладчиком.
После того как исходный код будет введен и запущен несколько раз, попробуйте поэкспериментировать с внесением в него изменений. Идеи относительно возможных небольших изменений вы можете найти в комментариях, помеченных (!), вдобавок в каждом проекте есть список идей более крупных изменений.
Далее попробуйте воссоздать программу с самого начала, не глядя на исходный код в книге. Ваша программа не должна в точности воспроизводить программу из книги, вы можете придумать собственную версию.
Проработав все программы из книги, вероятно, вы захотите начать создавать собственные. Большинство современных компьютерных игр и прикладных программ достаточно сложны, их создание требует команды, состоящей из программистов, архитекторов и графических дизайнеров. Однако многие настольные, карточные игры и игры на бумаге достаточно просты, чтобы для них можно было разработать соответствующую программу. Многие из них относятся к категории абстрактных стратегических игр. Их список можно найти по адресу https://en.wikipedia.org/wiki/List_of_abstract_strategy_games.
Запуск программ из терминала
Использующие модуль bext программные проекты из книги выводят разноцветный текст. Однако эти цвета не отображаются, если запускать программы из Mu, IDLE или других редакторов, так что их необходимо запускать из окна терминала (командной строки). В Windows для этого запустите программу CommandPrompt (Командная строка) из меню Пуск. В macOS запустите Terminal (Терминал) из Spotlight. В Ubuntu Linux запустите Terminal (Терминал) из Ubuntu Dash или нажмите Ctrl+Alt+T.
Когда откроется окно терминала, перейдите в каталог с вашими файлами .py с помощью команды cd (change directory — «сменить каталог»). Например, если я работаю под Windows и сохранил программы Python в каталог C:\Users\Al, то должен ввести следующую команду:
C:\>cd C:\Users\Al
C:\Users\Al>
Далее, чтобы запустить программы Python, введите команду pythonвашаПрограмма.py в Windows или python3вашаПрограмма.py в macOS или Linux, заменив вашаПрограмма.py на название соответствующей программы на Python:
C:\Users\Al>python guess.py
Угадайте число, (c) Эл Свейгарт [email protected]
Я загадал число от 1 до 100.
У вас осталось 10 попыток. Угадывайте.
--сокращено--
Прервать выполнение программы можно из терминала нажатием Ctrl+C, вместо того чтобы закрывать само окно терминала.
Запуск программ со смартфона или планшета
Работать с ноутбука или стационарного компьютера с полноценной клавиатурой будет удобнее, поскольку набирать код на клавиатуре телефона или даже планшета очень утомительно. И хотя не существует официальных интерпретаторов Python для Android или iOS, есть сайты с интерактивными онлайн-оболочками, которые можно использовать из браузера. Они подходят и для ноутбуков/стационарных компьютеров на случай, если вы преподаватель, у которого нет прав на установку нового программного обеспечения на компьютерах в учебном классе.
Интерпретаторы Python на сайтах https://repl.it/languages/Python3/ и https://www.pythonanywhere.com/ можно свободно использовать в браузере. Эти сайты подходят для большинства проектов из данной книги, но не для программ, использующих сторонние модули, например bext, pyperclip, pyttsx3 и playsound, и не для программ, читающих или записывающих файлы с помощью функции open(). Если вы увидите эти элементы в коде программы, значит, она не будет работать в указанных онлайн-интерпретаторах Python. Однако большинство программ из книги будет в них прекрасно работать.
Где получить помощь
Если вы не можете нанять частного преподавателя и у вас нет друга-программиста, который мог бы ответить на вопросы по программированию, то вам придется самостоятельно искать ответы на них. К счастью, эти вопросы практически наверняка кто-то уже задавал. Умение найти ответы самостоятельно — важный навык для любого программиста.
Не расстраивайтесь, если поймете, что постоянно ищете в интернете ответы на вопросы по программированию. Пока вы учитесь, нет ничего постыдного в том, чтобы искать что-то в интернете, вместо того чтобы запоминать все нюансы программирования с самого начала. Даже профессиональные разработчики ПО каждый день ищут что-то в Сети. В этом разделе вы узнаете, как задавать «умные» вопросы и искать ответы на них в интернете.
Когда программа пытается выполнить недопустимую инструкцию, отображается сообщение об ошибке: трассировка, описывающая тип произошедшей ошибки и то, на какой строке кода она произошла. Вот пример программы, в которой произошла ошибка во время вычисления того, сколько кусков пиццы должен получить каждый:
Traceback (most recent call last):
File pizza.py
, line 5, in
print('Each person gets', (slices / people), ' slices of pizza.')
ZeroDivisionError: division by zero
Из этой трассировки не сразу ясно, что проблема вызвана переменной people, значение которой равно 0, вследствие чего выражение slices/people приводит к ошибке деления на ноль. Сообщения об ошибках зачастую настолько коротки, что даже не являются предложениями. Поскольку программисты сталкиваются с этими сообщениями постоянно, они играют роль скорее оповещений, а не полноценных пояснений. Если вы встретили какое-то сообщение об ошибке впервые, то скопируйте его и поищите в интернете, почти наверняка вы найдете подробное пояснение, что означает эта ошибка и чем она могла быть вызвана.
Если в интернете найти решение проблемы не удалось, то можете выставить свой вопрос на онлайн-форуме или задать кому-либо по электронной почте. Для большей эффективности процесса задавайте конкретные, четко сформулированные вопросы. То есть приведите полный исходный код и полное сообщение об ошибке со всеми подробностями, расскажите, какие решения проблемы уже пробовали, а также какую операционную систему и версию Python используете. Изложенные на форуме ответы не только позволят решить вашу проблему, но и помогут в будущем другим программистам с тем же вопросом, которые найдут ваше сообщение.
Набор кода
Программисту не обязательно уметь быстро печатать на клавиатуре, но лишним это умение не будет. Многие люди печатают двумя пальцами, в то время как более быстрый набор может значительно облегчить написание программ. По мере работы над программами из книги вам будет удобнее смотреть на код, а не на клавиатуру. Существуют бесплатные сайты для обучения быстрому набору текста, например https://typingclub.com/ и https://www.typing.com/. Хорошая программа для обучения набору текста отображает клавиатуру и прозрачные руки на экране, чтобы вы могли практиковаться, избавляясь от вредной привычки смотреть на клавиатуру в поисках клавиш. Как и любой другой навык, набор — дело привычки, а написание кода даст вам множество возможностей привыкнуть к набору.
Выполнять различные действия намного быстрее, не перемещая указатель мыши к пункту меню, позволяют также сочетания горячих клавиш. Они часто записаны в виде наподобие Ctrl+C, означающем, что нужно нажать одну из двух клавиш Ctrl и затем, не отпуская ее, нажать клавишу C. Но не нажать клавишу Ctrl, отпустить ее, а затем нажать клавишу C.
Выучить распространенные сочетания горячих клавиш, например Ctrl+C для копирования или Ctrl+S для сохранения, можно, открыв мышью меню вверху приложения (в Windows и Linux) или вверху экрана (в macOS). Время, потраченное на изучение этих сочетаний клавиш, окупится с лихвой.
Другие сочетания горячих клавиш не так очевидны. Например, Alt+Tab в Windows и Linux и Command+Tab в macOS позволяет переключиться на окно другого приложения. Чтобы выбрать конкретное окно, можно зажать Alt или Command и последовательно нажимать Tab.
Копирование и вставка
Буфер обмена (clipboard) — элемент операционной системы, предназначенный для временного хранения данных для вставки, которые могут представлять собой текст, изображения, файлы и другие типы информации, хотя в этом разделе мы будем говорить только о текстовых данных. При копировании (copying) текста копия выбранного в текущий момент времени текста попадает в буфер обмена. При вставке (pasting) текст из буфера вставляется в то место, где сейчас находится курсор, как если бы вы мгновенно набрали его сами. Копирование и вставка текста освобождают вас от необходимости заново набирать уже имеющийся на вашем компьютере текст, неважно, одну строку или сотни страниц.
Чтобы копировать и вставить текст, сначала выберите (выделите, highlight) текст, который будете копировать. Для этого можно нажать основную кнопку мыши (левую, если мышь предназначена для правшей) и перетащить указатель мыши по всему выбираемому тексту. Однако зачастую быстрее и точнее будет нажать кнопку Shift и переместить курсор с помощью сочетания горячих клавиш. Многие приложения позволяют мгновенно выделить целое слово путем двойного щелчка на нем. Можно также выделить целую строку или абзац тройным щелчком.
Следующий шаг: нажать Ctrl+C в Windows или Command+C в macOS, чтобы копировать выделенный текст в буфер обмена. В нем может содержаться только один элемент, так что копируемый текст замещает находившееся в буфере до этого.
Наконец, передвиньте курсор туда, куда нужно вставить текст, и нажмите Ctrl+V в Windows или Command+V в macOS. Вставлять текст можно столько раз, сколько нужно; он остается в буфере обмена до тех пор, пока вы не скопируете новый текст.
Поиск и замена текста
Дэн Рассел (Dan Russell), поисковый антрополог в Google, в статье 2011 года в Atlantic пояснил: при изучении привычек использования компьютеров людьми оказалось, что 90 % из них не знали, что можно нажать Ctrl+F (в Windows и Linux) или Command+F (в macOS) для поиска слов в приложениях. Это исключительно удобная возможность не только в редакторах кода, но и в текстовых редакторах, браузерах, приложениях электронных таблиц и практически во всех прочих программах, отображающих текст. Вы можете нажать Ctrl+F — и появится окно Find (Найти), куда можно ввести слово для поиска в программе. Нажатие клавиши F3 обычно позволяет повторить поиск и найти следующее вхождение слова. Эта возможность экономит колоссальное количество времени по сравнению с поиском слова с помощью просмотра документа вручную.
В редакторах также есть возможность поиска и замены текста, с которой обычно связано сочетание клавиш Ctrl+H (Command+H). Она позволяет находить вхождения какого-либо фрагмента текста и заменять его другим. Это очень удобно, например, для переименования переменной или функции. Однако возможность поиска и замены текста следует использовать с осторожностью, чтобы не заменить текст, случайно совпавший с критерием поиска.
Отладчик
Отладчик — утилита, выполняющая программы построчно, с возможностью просмотра текущего состояния переменных программы. Это ценный инструмент для поиска программных ошибок. В данном разделе я расскажу о возможностях отладчика редактора Mu. Не волнуйтесь: возможности всех отладчиков одинаковы, даже если интерфейсы пользователя различаются.
Чтобы запустить программу в отладчике, воспользуйтесь пунктом меню Debug (Отладка) в своей IDE вместо пункта меню Run (Запуск). Отладчик запустится в приостановленном состоянии на первой строке программы. У всех отладчиков есть кнопки Continue (Продолжить), Step In (Шаг с заходом), Step Over (Шаг с обходом), Step Out (Шаг с выходом) и Stop (Останов).
При нажатии кнопки Continue (Продолжить) программа выполняется как обычно, до тех пор пока не завершится или не достигнет точки останова (о них я расскажу позже в этом разделе). Если вы закончили отладку и хотите, чтобы программа далее выполнялась обычным образом, то нажмите Continue (Продолжить).
При нажатии кнопки Step In (Шаг с заходом) отладчик выполняет следующую строку кода, после чего останавливается. Если следующая строка кода представляет собой вызов функции, то отладчик «заходит» в эту функцию и переходит к первой строке ее кода.
При нажатии кнопки Step Over (Шаг с обходом) отладчик выполняет следующую строку кода аналогично кнопке Step In (Шаг с заходом). Но если следующая строка кода представляет собой вызов функции, то отладчик «обходит» код этой функции. Функция выполняется с обычной скоростью, и отладчик приостанавливается после возврата из ее вызова. Кнопку Step Over (Шаг с обходом) используют чаще, чем кнопку Step In (Шаг с заходом).
При нажатии кнопки Step Out (Шаг с выходом) отладчик выполняет строки кода с обычной скоростью, пока не происходит возврат из текущей функции. Если вы «зашли» в вызов функции с помощью кнопки Step In (Шаг с заходом) и просто хотите выполнить оставшиеся инструкции, пока не выйдете обратно, то нажмите кнопку Step Out (Шаг с выходом), чтобы отладчик «вышел» из текущего вызова функции.
Если вы хотите полностью завершить сеанс отладки и не продолжать выполнение остатка программы, то нажмите кнопку Stop (Останов). Она немедленно завершает выполнение программы.
Можно установить точку останова (breakpoint) на конкретной строке, при этом программа будет выполняться с обычной скоростью, до тех пор пока не достигнет данной строки. Затем отладчик остановит выполнение программы, чтобы вы могли изучить значения переменных и продолжить пошаговое выполнение отдельных строк кода. В большинстве IDE установить точку останова можно с помощью двойного щелчка на номере строки в левой части окна.
В любом отладчике где-нибудь в окне отладки отображаются значения, хранящиеся в текущий момент в переменных программы. Впрочем, один из распространенных методов отладки программ — отладка с выводом значений (print debugging). Метод заключается в добавлении вызовов print() для отображения значений переменных и в повторном запуске программы. Этот подход к отладке прост и удобен, однако часто требует больше времени, чем использование отладчика. При отладке с выводом значений необходимо добавлять вызовы print(), перезапускать программу, а затем удалять эти вызовы. Однако после перезапуска программы часто оказывается, что нужно добавить дополнительные вызовы print(), чтобы узнать значения других переменных. А значит, приходится перезапускать программу еще раз, что может означать еще один цикл добавления вызовов print() и т.д. Кроме того, легко можно упустить какие-либо из этих вызовов, что потребует дополнительного цикла их удаления. Отладка с выводом значений удобна для простых ошибок, но в конечном счете использование настоящего отладчика экономит время.
Резюме
Программирование — интересный и творческий навык. Хотите ли вы овладеть основами синтаксиса Python или просто посмотреть на настоящие программы на Python — проекты в этой книге породят новые идеи о том, чего можно добиться с помощью всего нескольких страниц кода.
Лучший способ работы с этими программами — не просто читать их код и копировать