Инструменты важны для каждого разработчика. Если ты тратишь время на то, чтобы разобраться с правильными инструментами, на самом деле ты экономишь время, которое будешь тратить на написание и отладку кода.
1. Терминал
Терминал — это программа, позволяющая взаимодействовать с компьютером через непосредственный ввод команд. В этом курсе, вне зависимости от операционной системы твоего компьютера (Windows, MacOS, Linux), терминал будет необходимым инструментом.
Если у тебя MacOS или любой Linux (типа Ubuntu), то программа Terminal
или что-то похожее уже установлена. Пользователям Windows мы рекомендуем использовать терминал Git Bash
, который можно будет поставить на следующем шаге.
Счастливые обладатели Windows последних версий могут использовать человеческий встроенный терминал, но его требуется «включить». Для этого переходи в «Параметры» Windows → «Обновление и безопасность» → «Для разработчиков» и выбери «Режим разработчика». Далее, перейди в «Панель управления» → «Программы и компоненты» → «Включение или отключение компонентов», установи флажок напротив компонента «Подсистема Windows для Linux», после чего в меню «Пуск» появится приложение Bash — это и есть терминал. Хотя можно не заморачиваться и действовать как написано ниже. |
2. Git
Git — распределенная система контроля версий и система управления исходным кодом (SCM), нацеленная на скорость работы, целостность данных и поддержке распределенных, нелинейных вариантов взаимодействия разработчиков. GitHub — это сервис хостинга git-репозиториев, которая помимо собственно поддержки git
предоставляет множество дополнительных возможностей для взаимодействия пользователей (по факту GitHub — социальная сеть для разработчиков).
Результаты всех заданий этого курса нужно будет отправлять на GitHub
используя git
. Если у тебя ещё нет там учётки, пора её завести. Помни, что свои решения надо хранить строго в приватных репозиториях.
Важно изучить git не теоретически, а практически, то есть руками. При возникновении трудностей в дальнейшем всегда можно попрактиковаться в онлайн-визуализаторе: http://git-school.github.io/visualizing-git/. |
Git — свободное программное обеспечение, его можно спокойно использовать бесплатно. Однако сперва его надо установить. Даже если он уже присутствует в системе, наверное, это хороший повод, чтобы обновиться до последней версии.
2.1. Установка в Linux
Установить Git
под Linux
как бинарный пакет можно используя встроенный менеджер пакетов дистрибутива. Если твой линукс — Fedora
, тогда вызывай в терминале yum
:
$ yum install git
Если же это линукс, основанный на Debian
(например, Ubuntu
), тогда вводи вот что:
$ apt-get install git
Если это всё не подходит, то посмотри инструкцию по установке на сайте Git http://git-scm.com/download/linux.
2.2. Установка на Mac
Существует несколько способов установки Git
на Mac
. Самый простой — установить Xcode Command Line Tools
. В версии Mavericks (10.9)
и выше достаточно в терминале выполнить команду git
. Если git
ещё не установлен, операционная система предложит это сделать.
Если нужна более свежая версия — установщик git
для OS X
доступен для скачивания с сайта http://git-scm.com/download/mac.
2.3. Установка в Windows
Для установки Git в Windows также имеется несколько способов. Официальная сборка доступна для скачивания на сайте http://git-scm.com/download/win. Обратите внимание, что это проект, называемый Git для Windows
(или же msysGit
). Он включает не только собственно git
, но и массу вспомогательных возможностей для работы в Windows
. В частности, такой возможностью является Git Bash
, о котором было сказано ранее.
2.4. Основные команды git
git init
-
Создание репозитория в текущей директории.
git clone <url>
-
Склонировать репозиторий в новую директорию.
git status
-
Показывает текущее состояние рабочего дерева.
git pull <репозиторий> <ветвь>
-
Скачать изменения из одного репозитория в другой или в локальную ветку.
git push <репозиторий> <ветвь>
-
Отправить локальные изменения в удаленный репозиторий.
git add <файл(ы)>
-
Добавить содержимое файлов в индекс.
git commit -m <Сообщение об изменениях>
-
Запись изменений в репозиторий с соответствующми сообщением.
git branch
-
Получение списка или удаление веток.
git checkout
-
Переключение на ветку или пути в рабочем дереве.
git merge
-
Соединение двух или более веток.
git rebase
-
Перемещение изменений к другой точке в дереве.
git diff [--staged]
-
Построчное сравнение между текущей директорией и индексом (или между индексом и
HEAD
, при наличии--staged
). git show [--format=raw] <коммит, ветвь, тэг>
-
Вывод подробной информации о чём угодно.
git reset [--hard] <коммит, ветвь, тэг>
-
Сброс текущего состояния репозитория.
git log
-
Список коммитов в текущей ветви.
git reflog
-
Изменения в локальном репозитории.
Для тех, кто хочет получше разобраться с git , мы рекомендуем почитать книгу на русском языке Pro Git. Тем же, кто хочет быстрых результатов, подойдет Шпаргалка по git .
|
2.5. Имя пользователя и емейл
Перед началом работы надо объяснить git
кто ты, то есть прописать имя пользователя и e-mail. Для этого открой терминал и выполни следующие команды (не забудь заменить ТВОЁ_ИМЯ
и ТВОЯ_ПОЧТА_КОМ
на нормальное имя (лучше латиницей) и на нормальную почту):
$ git config --global user.name "ТВОЁ_ИМЯ"
$ git config --global user.email "ТВОЯ_ПОЧТА_КОМ"
В дальнейшем git
будет сопровождать все взаимодействия с удалённым сервером этими данными.
3. Установка Python
Python
— язык программирования, который ты активно будешь использовать при выполнении заданий этого курса. В настоящее время существует две различные версии языка — Python 2
и Python 3
— они не совместимы между собой. Тебе понадобится Python 3
.
3.1. Установка под Linux
Команда не многим отличается от такой же команды для установки git
:
$ apt-get install python3
3.2. Установка под macOS
Скачай и установи Python. После того, как инсталляция завершится, тебе потребуется закрыть терминал и запустить его снова.
3.3. Установка под Windows
Скачай Python. Во время инсталляции удостоверься, что стоит галочка «Add Python 3.x to PATH». Без этой галочки Python
не будет запускаться из терминала.
4. Установка Sublime Text 4
Установленый ранее интерпретатор Python позволяет выполнять код. Но тебе также потребуется тектовый редактор, который существенно облегчит написание программ.
Текcтовый редактор — это как Microsoft Word для написания программ — он позволяет создавать, изменять и сохранять файлы с исходным кодом.
Вместе с Python , кстати, устанавливается редактор IDLE . Его использование не рекомендуется, поскольку в этом случае ты не научишься работать с командной строкой и не будешь контролировать то, что происходит. Очень важно запускать свои файлы из терминала.
|
Существует множество текстовых редакторов, каждый со своим набором особенностей. Для работы над заданиями курса ты можешь выбрать любой, но помни, что он должен:
-
открывать и редактировать новые файлы простым способом;
-
хорошо работать как с файлами Python’а, так и с неформатированным текстом;
-
отображать номера строк.
Все удобные редакторы в дополнение к этому умеют:
-
осуществлять подсветку синтаксических конструкций;
-
выполнять команды с помощью комбинаций клавиш.
Пожалуйста, пожалуйста, пожалуйста не используй Microsoft Word (или что-то вроде него) для редактирования программ. Word предназначен для редактирования текстов на естественных языках (типа русского или английского). Если будешь использовать Word для написания программ — проблемы не заставят себя ждать! |
В этом курсе рекомендуется использовать редактор Sublime Text 4.
4.1. Некоторые горячие клавиши Sublime Text 4
-
Ctrl+s — сохранить текущий файл;
-
Ctrl+x — забрать текущий абзац в буфер обмена;
-
Ctrl+v — вставить текст из буфера обмена;
-
Ctrl+d — выбрать текущее слово. При повторном нажатии в область выбора попадет следующее место в тексте с таким словом (очень удобно для переименований);
-
Ctrl+z — откатить одно действие;
-
Ctrl+y — вернуть откаченное действие;
-
Ctrl+Tab — выбрать следующую вкладку;
-
Ctrl+Shift+Tab — выбрать предыдущую вкладку;
-
Ctrl+f — поиск слова;
-
Ctrl+Shift+f — поиск слова во всех вкладках;
-
Ctrl+Shift+p — открывает небольшую панель, в которую можно вводить команды. Например,
ss python
активирует подсветку Python-кода,reindent
перерасставит отступы в файле и т.д.
Если есть что-то, что ты можешь захотеть от текстового редактора — Sublime, вероятно, в это умеет. Просто погугли! |
5. Работа с файловой системой
Первым делом запусти терминал, если ты этого еще не сделал. Здесь и далее предполагается, что пользователи Windows пользуются установленным GitBash (или Bash в Windows 10), а пользователи Linux и Mac пользуются стандартными терминалами.
С самого начала ты находишься в домашней папке. Об этом факте как бы сообщает нам символ ~
(тильда). Также можно заметить, что в терминале отображается имя пользователя и название компьютера.
Поскольку терминал Git Bash эмулирует работу терминала Unix/Linux, то отображаемая в GitBash домашняя папка не совпадает с домашней папкой пользователя Windows, а является также эмулируемой.
|
Теперь настало время изучить и уяснить, как работает файловая система. Перемещать, копировать, открывать и удалять файлы с помощью мышки в системах с графическим интерфейсом (то есть с «окошечками») умеют все. Операции с файлами и папками в терминале происходят другим образом. Тебе даже не встретится горячо любимая обычными пользователями иконка «Мой компьютер».
Ничего страшного, сейчас мы узнаем, как работать с файловой системой при помощи командной строки (то есть терминала). Всё, что можно сделать визуальным образом (мышкой в красивых «окошечках»), можно сделать и текстовыми командами.
5.1. Директории
Прежде всего познакомимся с нашим другом, ls
(сокращение от list
, то есть список).
Команда ls
выводит список всех файлов в текущем директории. Кстати, "директорий" — более правильное название для папки, такой, например, как «Мои документы». В терминале существует понятие текущего директория, то есть того директория, в котором ты находишься в текущий момент. При запуске терминала текущим директорием становится домашний (home
) директорий пользователя, от имени которого запущен терминал. То есть если прямо сейчас выполнить команду ls
, то она выведет содержимое твоего домашнего директория.
Набери команду ls
:
student@PC MINGW64 ~
$ ls
student@PC MINGW64 ~
$
Странно. Ничего вроде бы не произошло. Но это и правильно — сейчас в домашнем директории ничего нет. Значит, нужно туда что-нибудь добавить!
5.1.1. Создание директориев
Вот еще одна полезная команда: mkdir
(сокращение от make directory
— сделать директорий). Она нужна для создания новых директориев. В отличии от ls
, ввести название и нажать Enter в этом случае недостаточно. Нужно также указать название нового создаваемого директория. Безграничная степень внутренней дисциплины и самоорганизации заставляет нас создать директорий для этого курса с названием u1337
:
student@PC MINGW64 ~
$ mkdir u1337
student@PC MINGW64 ~
$
В случае, когда после названия команды следуют какие-либо уточнения (как, например, название директория), говорят, что команда вызвана с одним или несколькими параметрами. Не все команды требуют ввода дополнительного параметра/параметров. Некоторые команды (например |
Итак, директорий создан. Нужно проверить, что новый директорий действительно существует:
student@PC MINGW64 ~
$ ls
u1337/
student@PC MINGW64 ~
$
Вот он — новый директорий. Крутотень!
5.1.2. Изменение текущего директория
Для изменения текущего директория используется команда cd
(сокращение от change directory
).
Эта команда ожидает параметр в виде названия целевого директория для перехода. Зайди в директорию hw_00
с помощью команды:
student@PC MINGW64 ~
$ cd u1337
student@PC MINGW64 ~/u1337
$
Знак ~
(тильда) превратился в u1337
. Это означает, что текущий директорий изменился на u1337
.
Внутри директория u1337
ещё ничего нет, ни файлов, ни вложеных директориев. Удостовериться в этом можно с помощью уже известной команды ls
. Результат её выполнения как бы скажет нам: «Директорий пуст».
Теперь предположим, что нужно вернуться в домашний директорий ~
. Это можно сделать несколькими способами.
Первый способ:
student@PC MINGW64 ~/u1337
$ cd ..
student@PC MINGW64 ~
$
Две точки в Unix/Linux означают внешний по отношению к текущему директорий. То есть команда |
Второй способ:
student@PC MINGW64 ~
$ cd
student@PC MINGW64 ~
$
Ввод команды cd
без параметров эквивалентен переходу в домашний директорий. Бывает удобно использовать эту команду для быстрого перехода в домашний директорий из длинной последовательности вложеных директориев (ну вот, например, отсюда /home/student/somewhere/deep/inside/the/hell
).
5.1.3. Удаление директориев
Раз директории можно создавать, то можно их и удалять. И это достаточно частая ситуация, не правда ли? Для удаления директория используй команду rm -r
. Параметр -r
в данном случае означает, что удаление должно произойти рекурсивно, то есть со всем содержимым.
Подобно команде mkdir
, команда rm -r
требует указания параметра с именем удаляемого директория.
Сделай вот что:
-
Создай директорий с названием
my_folder
. -
С помощью команды
ls
удостоверься, что директорий создался. -
Удали директорий командой
rm -r my_folder
. -
Еще раз запусти
ls
, чтобы проверить, что на этот раз директорийmy_folder
отсутствует.
5.2. Файлы
Было проделано уже достаточно много, однако все действия касались директориев. Сами по себе директории прекрасны, но кроме имени не несут в себе информации. Настало время наполнить их чем-то более содержательным. Файлами.
Прежде всего научимся создавать файлы. Разница между файлами и директориями в принципе очевидна. Более чем полностью сомнения могут быть развеяны попыткой «войти» в, например, текстовый файл командой cd
.
Попробуй создать текстовый файл, содержащий предложение: «Я сдам сессию на отлично!» Это можно сделать множеством способов. Для начала попробуй воспользоваться командой echo
(эхо).
Команда echo
выводит в терминал то, что передается ей в качестве параметров.
student@PC MINGW64 ~
$ echo Привет
Привет
student@PC MINGW64 ~
$ echo Хватит повторять
Хватит повторять
student@PC MINGW64 ~
$ echo Перестань!
Перестань!
То, что выводит компьютер после ввода команды и нажатия Enter называют выводом (output
) этой команды, а то, что передавалось в качестве параметров, называют вводом (input
).
5.2.1. Создание файлов
В Unix/Linux для создания файла используют команду touch
. Например, для создания файла my_file
нужно сделать следующее:
student@PC MINGW64 ~
$ touch my_file
student@PC MINGW64 ~
$ ls
u1337/ my_file
Это было не сложно! Для того, чтобы заглянуть внутрь файла, понадобится другая команда — cat
.
student@PC MINGW64 ~
$ cat my_file
student@PC MINGW64 ~
$
Нетрудно сообразить, что пустой вывод команды cat
как бы говорит нам, что файл, созданный командой touch
, ничего не содержит.
Для удаления файла можно воспользоваться уже знакомой командой rm
. На этот раз без параметра -r
.
student@PC MINGW64 ~
$ ls
u1337/ my_file
student@PC MINGW64 ~
$ rm my_file
student@PC MINGW64 ~
$ ls
u1337/
Используй команду |
Директории ты создавал и удалял. С файлами можно делать гораздо больше.
Создай новый файл (ты ведь только что удалил то, что было создано).
student@PC MINGW64 ~
$ touch my_file
student@PC MINGW64 ~
$ ls
u1337/ my_file
Добавь текст внутрь файла. Для этого можно использовать команду echo
:
student@PC MINGW64 ~
$ echo "Я не буду лениться и успешно выполню все задания курса!" > my_file
Для тех, кому интересно, символ >
означает перенаправление с экрана терминала в файл, указанный после этого знака. В приведенном примере текст «Я не буду лениться и успешно выполню все задания курса!» попадёт в файл my_file
.
Использовать перенаправление нужно с аккуратностью — всё, что находится в файле, будет заменено на новый текст. Для того чтобы добавлять текст к концу существующего файла, применяй |
5.2.2. Копирование файлов
Теперь представим, что тебе надо скопировать файл. Для этого предназначена команда cp
(copy
— копия). Она ожидает передачи ей двух аргументов: первый — название файла, который необходимо скопировать, второй — имя нового файла, в который необходимо скопировать исходный файл.
Например, для копирования my_file
в new_file
нужно сделать так:
student@PC MINGW64 ~
$ cp my_file new_file
student@PC MINGW64 ~
$ ls
u1337/ my_file new_file
Если заглянуть в каждый из этих файлов с помощью cat
, можно обнаружить, что new_file
является копией исходного файла my_file
. Как раз то, что было нужно:
student@PC MINGW64 ~
$ cat new_file
Я не буду лениться и успешно выполню все задания курса!
Зачастую нужно скопировать файл из одного директория в другой. Команда cp
может принимать параметры, содержащие также и пути к файлам. Например, aaa/bbb/ccc.txt
это путь к файлу, содержащему некоторый текст.
Можно сделать что-то вроде этого:
student@PC MINGW64 ~
$ cp aaa/bbb/ccc.txt ccc.txt
student@PC MINGW64 ~
$ ls
u1337/ my_file new_file ccc.txt
Если при копировании нет потребности изменять имя файла, то можно использовать точку (
В Unix/Linux точка |
Похожим образом можно скопировать ccc.txt
в директорий u1337
.
student@PC MINGW64 ~
$ cp aaa/bbb/ccc.txt u1337
student@PC MINGW64 ~
$ ls u1337
ccc.txt
5.2.3. Перемещение файлов
При копировании файла создается новый файл, полностью соответствующий исходному, который не претерпевает никаких изменений. Зачастую бывает необходимо, чтобы файл переместился, то есть чтобы его копия возникла в новом месте, а в старом файл был бы удален.
Конечно, можно было бы воспользоваться связкой команд cp
и rm
, но есть более удобный способ — команда mv
(move
— переместить), принимающая два аргумента:
student@PC MINGW64 ~
$ mv new_file u1337
student@PC MINGW64 ~
$ ls
u1337/ my_file
student@PC MINGW64 ~
$ cd u1337
student@PC MINGW64 ~/u1337
$ ls
new_file
Файл new_file
был перемещен в директорий u1337
. Видно, что директорий u1337
находится в домашнем директории, там, где располагался до выполнения команды файл new_file
. Для успешного выполнения команды необходимо, чтобы директорий u1337
существовал в текущем директории, иначе это могло привести бы к переименованию файла (об этом ниже).
Теперь представим, что нужно перемесить файл обратно в домашний директорий. Для этого можно указать команде mv
, что переместить файл нужно в родительский директорий ..
:
student@PC MINGW64 ~/u1337
$ ls
new_file
student@PC MINGW64 ~/u1337
$ mv new_file ..
student@PC MINGW64 ~/u1337
$ ls
student@PC MINGW64 ~/u1337
$ cd
student@PC MINGW64 ~
$ ls
new_file
Только что файл new_file
был перемещен обратно в домашний директорий.
5.2.4. Переименовывание файлов
И последнее, можно переименовать файл. Для переименований используется уже рассмотренная команда mv
. В этом случае команде нужно также передать два аргумента: во-первых, имя файла для переименования, во-вторых, новое название файла:
student@PC MINGW64 ~/u1337
$ mv new_file best_name_ever
student@PC MINGW64 ~/u1337
$ ls
best_name_ever
6. Выполнение заданий
6.1. Подключение к GitHub
по SSH
Перед началом работы с GitHub
и получением заданий, собранных в удаленных репозиториях, необходимо наладить подключение к GitHub
при помощи SSH. Для этого необходимо создать соответствующий твоему аккаунту GitHub
SSH-ключ и установить данный ключ в на сайте в твоём аккаунте.
Что для этого необходимо сделать:
-
Сгенерировать SSH-ключ. Папку для открытия
GitBash
можно выбрать любую, но мы работаем вu1337
, потому в ней и продолжим.student@PC MINGW64 ~/u1337 $ ssh-keygen -t ed25519 -C "{email_от_твоего_github_аккаунта}"
Фигурные скобки {} копировать не нужно. Они лишь показывают, что в какое-то место команды нужно всавить данные, указанные в фигурных скобках.
В ходе генерирования SSH-ключа
GitHub
запросит ввести название ключа. Данный пункт можно пропустить, нажавENTER
, или же выполнить, не забыв при этом прописать как название файла, так и полный путь к нему. Помимо прочегоGitHub
потребует придуматьpassphrase
(пароль) для конкретно данного создаваемого SSH-ключа. Пароли создавать обязательно, иначе клонирование репозиториев сGitHub
будет не доступно. -
Включить SSH-агент.
student@PC MINGW64 ~/u1337 $ eval "$(ssh-agent -s)"
-
Добавить в SSH-агент приватный SSH-ключ (без раcширения
.pub
).student@PC MINGW64 ~/u1337 $ ssh-add ~/.ssh/{имя_созданного_ssh_ключа}
-
Открыть публичный SSH-ключ (c раcширением
.pub
) и скопировать его содержимое.student@PC MINGW64 ~/u1337 $ cat ~/.ssh/{имя_созданного_ssh_ключа}.pub
-
Зайти на сайт
GitHub
, войти в свой аккаунт, найти пункт менюSettings
(настройки) и в нёмSSH and GPG keys
(SSH и GPG ключи). -
Добавить новый SSH-ключ, нажав на клавишу
New SSH key
. В полеTitle
внести название нового ключа. В полеKey
внести скопированный публичный ключ.
6.2. Клонирование репозитория с заданием на свой ПК
При выдаче любого задания, включая это, тебе будет предоставлена ссылка, ведущая на GitHub Classroom
(надстройка над GitHub
для ведения занятий). После перехода по этой ссылке тебе будет предложено принять задание, нажав кнопку «Accept this assignment
». При этом на GitHub
будет создан индивидуальный репозиторий с начальными файлами задания, которые надо будет дополнить. Например, для этого задания будет создан индивидуальный репозиторий с адресом:
https://github.com/{код_курса}/hw_00-{твой_github_юзернейм}
Этот репозиторий будет приватным — данные, находящиеся в нём, будут доступны только студенту и преподавателю.
Теперь следует:
-
Сделать копию репозитория (клон) в папке
u1337
.student@PC MINGW64 ~/u1337 $ git clone git@github.com:{код_курса}/hw_00-{твой_github_юзернейм}.git
-
Ввести пароль, созданный в ходе генерирования SSH-ключа.
-
Удостовериться, что в текущем директории появилась папка
hw_00-{твой_github_юзернейм}
.student@PC MINGW64 ~/u1337 $ ls hw_00-{твой_github_юзернейм}
Именно в в папку
hw_00-{твой_github_юзернейм}
«склонирован» удаленный репозиторий, и именно в ней следует работать с файлами, регулярно фиксируя изменения в файлах (git commit
) и отправляя (git push
) эти изменения в удаленный репозиторий. -
Перейди в папку
hw_00-{твой_github_юзернейм}
командой:student@PC MINGW64 ~/u1337 $ cd hw_00-{твой_github_юзернейм}
Проверь, что в папке есть файлы с помощью команды ls
.
Пользователям Windows рекомендуется работать далее не в домашней папке, которая, как было сказано ранее, является эмулированной и находится в глубоких недрах файловой системы Windows, а создать отдельную папку (например на диске student@PC MINGW64 ~/u1337 $ cd student@PC MINGW64 ~ $ mkdir /C/u1337 student@PC MINGW64 ~ $ cp -r 'u1337' /C/ student@PC MINGW64 ~ $ cd /C/u1337/hw_00 Не лишним также будет проверить, что клон репозитория тоже скопировался: student@PC MINGW64 /C/u1337/hw_00 $ ls hw_00.py README.adoc |
6.3. Первый взгляд на файл-заготовку
Открой файл hw_00.py
в редакторе.
Обрати внимание на фиолетовые строки, заключенные в тройные двойные кавычки """
. Такой текст называют докстринг (docstring). В этом тексте описывается, что должна делать рассматриваемая функция.
Встречающиеся в докстрингах строки, начинающиеся с >>>
— это доктесты. С помощью доктестов можно показать на конкретных примерах, как работает функция: «Если в интерпретатор ввести этот код (говорит нам строка с >>>
), то следует ожидать такого результата (говорит нам строка, следующая за >>>
)».
В частности, рассмотри функцию my_email()
— доктест проверяет, что выражение возврата не совпадает с someone@example.com
. Короче, тебе туда надо будет вписать что-то своё.
Никогда не меняй доктесты в заданиях! Единственная часть, которую можно редактировать — это код. Нарушение приведёт к тому, что количество баллов за задание будет равно нулю. |
Давай-ка их запустим.
6.4. Первое задание и запуск доктестов
Для запуска тестов нужно в терминале в папке с проверяемым файлом набрать:
student@PC MINGW64 /C/u1337/hw_00
$ python3 -m doctest hw_00.py
Если вдруг твой компьютер работает под операционной системой Windows и команда python3 не работает, попробуй набирать python или py . Если и это не помогает, то скорее всего ошибка в установке переменной среды PATH . Если не выходит, обратись в онлайн чат за помощью не мешкая!
|
Результат последней команды будет выглядеть как-то так.
Упс… Две ошибки. :( Перед их устранением посмотри более внимательно, что написано на экране, например, про my_email
.
Конечно информация о провале будет на английском языке, который тебе, может быть, не очень хорошо знаком. С этим надо что-то делать. Английский язык в ИТ — как латынь у медиков. Без знания языка очень тяжело стать настоящим профессионалом. Если есть трудности — немедленно запишись на дополнительные курсы. И это не шутка. |
Видно, что ошибка находится в файле hw_00.py
в строке 4
, в функции my_email
. Теперь ты точно знаешь, где искать баг! (Именно поэтому важно, чтобы текстовый редактор отображал номера строк).
Посмотри немного на строку 4
. А теперь давай разберемся, о чём говорит тест: при вызове функции my_email
без аргументов она должна возвращать строку, не равную someone@example.com
. Но она-то как раз и возвращается! Измени возвращаемое выражение на свой e-mail.
def my_email():
"""Возвращает строку с твоим e-mail адресом.
>>> my_email() != 'someone@example.com'
True
"""
return 'dunya_fortochkina@mail.ru'
После сохранения изменений в файле попробуй ещё разок запустить доктесты:
student@PC MINGW64 /C/u1337/hw_00
$ python3 -m doctest hw_00.py
Тест для my_email
теперь должен проходить. Один готов!
6.5. Фиксация изменений в git
Можно считать, что первое задание этой работы выполнено. Изменения кода, хоть и не очень обширные, следует зафиксировать в системе контроля версий. Для этого набери в терминале:
student@PC MINGW64 /C/u1337/hw_00
$ git add .
Эта команда сообщает git
, что ты хочешь запомнить все изменения, произошедшие в текущем директории. Теперь нужно сделать фиксацию — коммит:
student@PC MINGW64 /C/u1337/hw_00
$ git commit -m "Решение первого задания"
Флаг -m
означает message
— сообщение, которое войдёт в историю изменений файлов. Это обязательное сообщение. Если не указать флаг -m
, то git
откроет текстовый редактор и предложит написать комментарий к изменениям в нём. Всегда старайся писать нормальные описания, а не отписки. Это хороший тон. Ты же хочешь стать профессионалом ))
6.6. Второе задание и отправка на проверку
Во второй функции thirteen_thirty_seven
нужно заполнить пустоту после return
выражением, значение которого будет равно 1337
, используя только целые числа, функции add
и mul
. Это можно сделать множеством простых способов — попробуй изобрести что-нибудь оригинальное. Когда закончишь проверь, что тесты проходят.
Если все тесты проходят, Python не выведет сообщение об успехе. По-умолчанию доктесты сообщают только о провале. Однако, если очень хочется удостовериться, что все доктесты проходят, можно воспользоваться дополнительным параметром '-v', который приведет к полному выводу информации, например, об успешном прохождении доктестов.
|
Когда в файле-заготовке всё готово и проходят все тесты (проверяй это всегда-всегда), можно фиксировать изменения:
student@PC MINGW64 /C/u1337/hw_00
$ git add .
student@PC MINGW64 /C/u1337/hw_00
$ git commit -m "Решение второго задания"
У тебя получилось два набора изменений. Можешь в этом удостовериться:
student@PC MINGW64 /C/u1337/hw_00
$ git log
Тепреь всё готово к отправке твоего решения на GitHub
. Для этого напиши в терминале вот что:
student@PC MINGW64 /C/u1337/hw_00
$ git push
Проверь, что в твоём репозитории на GitHub
(вот такого вида https://github.com/{код_курса}/hw_00-{твой_github_юзернейм}
) появились сделанные на локальном компьютере изменения.