Создание реактивных аналитических веб-приложений с использованием python и библиотеки dash
Содержание:
- Обучение Python с нуля
- Шаг 1 — Разбираем Flask
- Настройка Django через командную строку
- 6 преимуществ Python
- Easyocr
- Как используется Python
- Для веб-разработки
- Программирование на Python
- Обработка Cookies
- Но есть нюанс…
- Как начать создание сайта на Python Django?
- Python используют компании-гиганты
- Реальные примеры
- Программы обучения профессии «Python-разработчик»
- Преимущества использования Python для веб-разработки
- Получение данных из форм
- Что такое питон простыми словами
- Онлайн-курсы с наставником
- Работа с Git и GitHub
- Делать сайты на Python перспективнее?
- Установка и настройка среды разработки Python/Django
- SoloLearn
Обучение Python с нуля
Начать обучение питону с нуля можно при помощи книг таких как «Программируем на Python» Майкла Доусона, «Изучаем Python» Марка Лутца и других. Но обычно книги используются как справочная информация или руководство по питону.
Книга «Программируем на Python» Майкла Доусона
Кроме книг в интернете представлено большое количество сайтов с обучающими материалами. Их можно найти, сделав запрос в поисковике. Есть много бесплатных и платных обучающих видеокурсов, в которых бывают материалы различного качества.
Но более качественно изучать Python лучше в высшем учебном заведении с уже хорошо отработанной методикой преподавания программирования. Хорошему программисту можно быстро перейти с одного языка программирования на другой за короткое время.
Шаг 1 — Разбираем Flask
Flask — это микрофреймворк для веб-разработки. “Микро” означает, что он очень простой. С ним не идет никаких заранее устанавливаемых внешних библиотек и инструментов. Обычно Flask используют с MongoDB, что позволяет лучше управлять базами данных и историей. Думаю, для введения достаточно. Ведь на самом деле нам интересно то, как он работает, верно? Давайте перейдем к этому. Но перед этим нам нужно разобраться с одним фундаментальным понятием, касающимся фреймворка Flask, маршрутизацией.
Маршруты это всего лишь особые пути. Давайте представим, что вы зашли на сайт и хотите перейти в раздел Mac на . Почему серверы Apple показывают вам именно страницу с подробностями об устройствах Mac? Вероятнее всего, потому что у них на сервере работает веб-приложение, которое распознает, что кто-то, находясь на , перешел в раздел сайта , обрабатывает этот запрос и отправляет пользователю некоторые страницы, чаще всего индексный файл в этом разделе.
Настройка Django через командную строку
Командная строка является мощным инструментом, который позволяет выполнять все операции через текст. Разработчики используют ее повсеместно.
В дальнейшем будет показано как установить и настроить Django через командную строку.
На системах Mac командную строку можно открыть через Terminal, что находится в . Откройте новое окно Finder, затем директорию Applications, в нижней части будет папка Utilities, из которой двойным нажатием клавиши можно запустить приложение Terminal.
В Windows есть две встроенные командные оболочки: Command shell и PowerShell. Рекомендуем использовать PowerShell, которая несколько мощнее.
Если в примере требуется обратиться к «командной строке», значит вы должны открыть новую консоль, используя Terminal или PowerShell.
Существует множество команд и их вариаций, однако на практике при разработке в Django чаще всего используются следующие шесть:
- — перейти на директорию;
- — перейти на директорию выше;
- — вывести список файлов в текущей директории;
- — вывести название текущей директории;
- — создать директорию;
- — создать новый файл.
Запустите командную строку и посмотрите, как действует каждая команда. Знак доллара () является подсказкой, что перед вами командная строка. Все команды даны после знака . Предположим, вы работаете на Ubuntu Linux. Давайте поменяем директорию рабочего стола Desktop.
Shell
$ cd ~/Desktop
1 | $cd~Desktop |
Заметьте, что наше текущее местоположение, то есть , в командной строке было автоматически добавлено перед знаком . Для подтверждения верности отображаемой локации, можно использовать . Она выведет адрес текущей директории.
Shell
~/Desktop $ pwd
/home/wsv/Desktop
1 2 |
~Desktop$pwd homewsvDesktop |
На Ubuntu полученная строчка будет значить, что сейчас работает пользователь , который использует данный аккаунт на рабочем столе .
Теперь создадим новую директорию при помощи , задействуем , после чего создадим новый файл , используя команду . Стоит отметить, что, к сожалению, в Windows нельзя использовать команду . Если дается инструкция к созданию нового файла, делайте это в выбранном текстовом редакторе.
Shell
~/Desktop $ mkdir new_dir && cd new_dir
~/Desktop/new_dir $ touch index.html
1 2 |
~Desktop$mkdirnew_dir&&cdnew_dir ~Desktopnew_dir$touchindex.html |
Теперь используйте для отображения списка всех файлов текущей директории. Как видите, здесь только что созданный .
Shell
~/Desktop/new_dir $ ls
index.html
1 2 |
~Desktopnew_dir$ls index.html |
На финальном этапе вернемся в директорию Desktop, для чего используем команду и затем проверим верность локации с .
Shell
~/Desktop/new_dir $ cd ..
~/Desktop $ pwd
/home/wsv/Desktop
1 2 3 |
~Desktopnew_dir$cd.. ~Desktop$pwd homewsvDesktop |
Некоторые разработчики обходятся без мышки, используя только командную строку. С практикой такой подход значительно ускоряет скорость работы.
6 преимуществ Python
- Легко читаемый код — синтаксис языка построен таким образом, что он не позволяет писать «некрасивый» и неструктурированный код. Программа на Python выглядит как английский текст.
- Переносимость языка — Python является интерпретируемым языком и работает под виртуальной машиной, а это означает, что его можно запускать на разных платформах: MacOS, Linux, Windows, Android, iOS и прочих.
- Ускоренный цикл разработки — языку Python, в отличие от компилируемых языков программирования, таких как С, С++, С#, не нужно время на сборку и компиляцию программы, поэтому программа на Python быстро запускается и сразу показывает результат.
- Множество пакетов — язык имеет большое количество готовых решений и пакетов.
- Поддержка всех стилей программирования — императивный (приказной), объектный, функциональный.
- Низкий порог входа — за несколько дней можно начать писать свои первые программы.
Easyocr
Когда речь идет о распознавании текста в изображениях, первым делом разработчики вспоминают о pytesseract — питонячей обвязке OCR решения от Google. И Tesseract действительно неплохо справляется со своими обязанностями.
Если же у вас стоит задача распознавания отдельных надписей на фото, да еще и с небходимостью вычисления координат каждой надписи — стоит посмотреть в сторону easyocr.
Easyocr — решение на основе pytorch. Из коробки поддерживаются многие популярные языки и алфавиты. Ключевое отличие от tesseract — наличие метаданных о надписях на картинке: координаты и condifence rate на каждую надпись. Easyocr — хорошее решение для чтения номеров телефонов, названий компаний на вывесках, дорожных знаков и прочих коротких фрагментов текста.
Благодаря тому, что решение написано на pytorch, easyocr можно допиливать и модифицировать относительно малой кровью. Например, расширить поддержку некоторых языков, добавить распознавание хитрых кастомных шрифтов или улучшить поддержку чтения каких-то специфических фрагментов текста (например, номерных знаков).
В ответе видно координаты и confidence rate.
Как используется Python
Его можно встретить в вебе и на мобильных устройствах, в приложениях и решениях, связанных с машинным обучением (нейросети и искусственный интеллект), а также в качестве встроенной системы.
Веб-разработка
Чаще всего Python используется в веб-разработке. Для работы с ним подключают фреймворки: Pyramid, Pylons, TurboGears, Flask, CherryPy и — самый популярный — Django.
Существуют и движки для создания сайтов на Python:
- Abilian SBE;
- Ella;
- Saleor;
- Wagtail;
- Django-CMS.
Также на Python пишут парсеры для сбора информации в интернете.
Программы
Хоть язык не компилируется, с помощью него создают десктопные программы. Вот, к примеру, что было разработано на Python:
- GIMP — визуальный редактор на Linux;
- Ubuntu Software Center — центр приложений в ОС Ubuntu (один из дистрибутивов Linux);
- BitTorrent до 6 версии — менеджер торрент-закачек (позже программу переписали на C++, но сети peer-to-peer всё ещё работают на Python);
- Blender — программа для создания 3D-графики.
Мобильные приложения
Мобильная разработка на Python менее популярна. Для Android чаще пишут на Java, C#, C++ или Kotlin, а для iOS — на Swift или Objective-C. На Python обычно программируют серверную часть приложения. Например, клиент Instagram для iOS написан на Objective-C, а сервер — на Python.
Игры
Многие компьютерные игры были полностью или частично написаны на Python. Существует заблуждение, что этот язык не подходит для серьёзных проектов, но на самом деле он использовался в разработке таких хитов, как:
- Battlefield 2;
- World of Tanks;
- Civilization IV;
- EVE Online.
Несмотря на возможность реализации пользовательского интерфейса и работы с графикой, на Python в основном пишут скрипты — например, взаимодействия персонажей, запуска сцен, а также обработки событий.
Встроенные системы (embedded systems)
На Python разрабатывают встроенные системы для различных устройств. Например, язык прижился в Raspberry Pi (компьютер размером с карту памяти) и в «Сбербанке» для управления банкоматами.
Еще проекты со встроенной системой на Python:
- The Owl Embedded Python System;
- Python Embedded Tools;
- Embedded Python.
Язык применяется во встроенных системах станков с ЧПУ, средствах автоматического регулирования (температуры, расхода жидкостей, давления и так далее) и в телекоммуникационном оборудовании.
Для веб-разработки
Python имеет очень хорошую поддержку для веб-разработки с его фреймворками, такими как Django, Flask и другими. Он может использоваться для создания веб-приложений на стороне сервера и может быть интегрирован с любым внешним интерфейсом. Обычно разработчики используют JavaScript во внешнем интерфейсе и python для поддержки операций на стороне сервера. Python не используется напрямую в браузерах.
Django является одним из самых популярных веб-фреймворков на Python. Эти инфраструктуры предоставляют пакет, в котором у вас есть определенная структура, с легкостью поддерживает взаимодействие с базой данных; все это настраивается с помощью минимальной команды установки. Если вы хотите что-то минимальное для начала — я рекомендую Flask!
Помимо них, Python имеет большое количество библиотек для веб-разработки.
Пример — доступ к файловой системе компьютера со смартфона.
Вы можете получить доступ к вашей файловой системе, запустив файловый сервер на вашем компьютере. Перейдите в нужный каталог, к которому вы хотите получить доступ, и выполните следующую команду:
Данная команда запускает файловый сервер, к которому можно получить доступ в той же сети. Чтобы получить доступ к своим файлам на мобильном устройстве, просто подключитесь к той же сети (Wi-Fi или воспользуйтесь точкой доступа телефона на ноутбуке). Теперь откройте браузер в вашем телефоне.
Проверьте свой IP, запустив -. Проверьте ваш локальный IP (должен начинаться с 192.168….)
Пример:
И на мобильном телефоне вы увидите текущий каталог
Программирование на Python
Этот курс представлен на платформе stepik.org и является полностью бесплатным. Он поможет в доступной форме изучить азы языка программирования Python. Лектор энергично (другое слово было трудно подобрать) подает материал, а в конце каждого урока и раздела вас ждут тесты или задания. Они, кстати, проверяются автоматически. А значит, вы будете знать, правильно ли вы сделали. После того, как вы верно решили задание, можно будет посмотреть решения других участников и обсудить урок с ними же. А авторы постоянно находятся на связи и приходят на помощь. И да, напомним, это полностью бесплатно.
Найти курс можно по этой ссылке.
Обработка Cookies
Теперь научимся получать cookies. Они передаются на сервер и доступны в переменной os.environ (словарь, cookies хранятся по ключу HTTP_COOKIE). Они передаются в виде пар ключ=значение, что не очень удобно при обработке. Для упрощения работы можно использовать модуль http.cookies.
Напишем простой скрипт (/cgi-bin/cookie.py), проверяющий, установлена ли кука, и если нет, устанавливает:
#!/usr/bin/env python3 import os import http.cookies cookie = http.cookies.SimpleCookie(os.environ.get("HTTP_COOKIE")) name = cookie.get("name") if name is None print("Set-cookie: name=value") print("Content-type: text/html\n") print("Cookies!!!") else print("Content-type: text/html\n") print("Cookies:") print(name.value)
Так страница выглядит после первого запроса:
И после обновления страницы:
Не следует хранить в cookies важные данные, и не полагайтесь на выставленный вами срок хранения. Cookies можно удалить или изменить вручную в браузере.
Но есть нюанс…
А если попробовать так?
Это серьёзная уязвимость, поэтому от неё нужно избавляться. Для этого нужно (в самом простом случае) экранировать все опасные символы. Это можно сделать с помощью функции escape из модуля html.
Перепишем form.py:
#!/usr/bin/env python3 import cgi import html form = cgi.FieldStorage() text1 = form.getfirst("TEXT_1", "не задано") text2 = form.getfirst("TEXT_2", "не задано") text1 = html.escape(text1) text2 = html.escape(text2) print("Content-type: text/html\n") print("""<!DOCTYPE HTML> <html> <head> <meta charset="utf-8"> <title>Обработка данных форм</title> </head> <body>""") print("<h1>Обработка данных форм!</h1>") print("<p>TEXT_1: {}</p>".format(text1)) print("<p>TEXT_2: {}</p>".format(text2)) print("""</body> </html>""")
Результат можете проверить сами.
Как начать создание сайта на Python Django?
Всего несколько простых шагов и ваш компьютер будет готов к созданию сайтов с использованием Python и Django.
Шаг 1. Установка интерпретатора Python. Его можно скачать с сайта python.org. Если вы не знаете, какая версия Python вам нужна, то скачивайте последнюю для вашей версии операционной системы и следуйте инструкции по установке на указанном сайте.
Шаг 2. Установка редактора. В принципе, можно ограничиться и простым текстовым редактором, но для удобства лучше установить IDE (интегрированную среду разработки). Я рекомендую использовать PyCharm Community Edition. Это бесплатная версия PyCharm с широкими возможностями для программирования на языке Python. Есть версии для Windows, Linux и macOS.
Шаг 3. Начинаем создание сайта на Django. Для новичков на сайте djangoproject.com есть понятное руководство для знакомства и старта разработки с использованием данного фреймворка. Документация на английском, так что знание языка крайне желательно. Да и вовсе обязательно, если хотите добиться успехов в этой сфере.
Ну что же, старт разработки на Python Django не так уж и сложен, но и нет так уж и прост… Главное поставить цель и идти к ней. Для этого читайте следующий пост серии о разработке сайта на Django и Python – Установка Django и создание проекта.
Удачи в разработке сайтов!
Python используют компании-гиганты
Многие известные нам компании и организации используют Python:
- Spotify и Amazon используют Python для анализа данных и создания рекомендаций.
- Walt=»Что такое Python: чем он хорош, где пригодится и как его выучить» Disney использует Python как скриптовый язык для анимации.
- YouTube и Instagram целиком написаны на Python.
- Если этого недостаточно, есть ещё NASA: их система автоматизации процессов WAS тоже создавалась средствами Python.
Запускаете видео на YouTube — работает Python
Netflix советует сериал — это всё Python
Ищете что-то в Google — Python подбирает самые подходящие ссылки
Python надолго останется популярным
Скорее всего, вы слышали о машинном обучении и больших данных. Хорошая новость — Python считается лучшим языком программирования для работы в этих областях. Вот что делают с его помощью:
- Собирают данные покупательской активности, строят гипотезы и находят новые точки роста компании.
- Разрабатывают алгоритмы машинного обучения. Например, Netflix написали свой рекомендательный сервис на Python.
- Автоматизируют рутинные задачи. Например, простой скрипт на Python может собрать все ссылки или картинки с указанного сайта и сохранить их в папку.
Реальные примеры
Существует различные причины и варианты необходимости использования сбора (скрэпинга) данных в Интернете. Позвольте мне перечислить некоторые из них:
- сбор данных со страницы электронного магазина, чтобы определить имеется ли в наличии одежда, которую вы хотите купить, со скидкой
- сравнить цены нескольких брендов одежды, собирая данные о них с вэб-страниц
- стоимость авиабилетов может меняться несколько раз в течение дня. Можно сканировать веб-сайт и дождаться момента, когда цена будет снижена
- проанализировать веб-сайты, чтобы определить, должна ли быть стартовая стоимость продажи низкой или высокой, чтобы привлечь больше участников на аукцион или коррелирует ли длительность проведения аукциона с более высокой ценой конечной ценой продажи
Программы обучения профессии «Python-разработчик»
Полноценное обучение с нуля до уровня junior-программиста. На многих программах обучения имеется вступительное тестирование на умение пользоваться ПК.
Программа Разработчик Python от otus:
- Если вы писали личные проекты на Python, но нет опыта промышленной разработки
- Дадутся объяснения следующих вопросов:
- Как писать простой и идиоматичный код, за который не будет мучительно стыдно?
- Как тестировать и поддерживать код на Python?
- Как написать приложение, которое не умрёт под нагрузкой?
После прохождения курса у вас останется:
- 1 мини веб-проект
- богатый список литературы для ознакомления и углубления знаний программистов
- код и материалы занятий, соединенные вместе в виде jupyter-ноутбуков
- видеозаписи всех вебинаров занятий
- проектная работа на интересную вам тему
Цена 56000₽ для новых клиентов otus (скидка 4000₽ в течение 7 дней после регистрации).
Программа Профессия Python-разработчик от skillbox:
- Научитесь с нуля программировать на Python
- Изучите основы вёрстки сайтов и web-приложений
- Освойте популярный фреймворк Django
- Изучите асинхронное программирование для написания высокопроизводительных приложений
- Реальный опыт разработки — Реализация искусственного интеллекта роботов для оптимального сбора ресурсов — Вёрстка landing page
Цена 93600₽
Программа Факультет Python-разработки от GeekUniversity:
- Проектно-ориентированное обучение
- Совместная разработка
- Год опыта Python-разработки
- Множество необходимых для работы навыков
- Умение создавать клиент-серверные приложения для Desktop
- Навыки прототипирования мобильных приложений
- Навыки верстки сайтов на HTML, CSS, Bootstrap
- Навыки frontend-разработки на Javascript и JQuery
- Умение создавать сайты на Django Framework
- Знание алгоритмов и структур данных
- Умение работать в команде, знание методологий разработки: Agile, Scrum
- Умение работать с GIT
- Навыки успешного прохождения собеседований и общения с заказчиками
- Навыки проектирования архитектуры, использования шаблонов проектирования
- Умение писать «чистый» код
- Имеются бесплатные подготовительные курсы для тех, кто не сможет пройти тестирование на знания базовых понятий программирования
Преимущества использования Python для веб-разработки
Давайте начнем с основных преимуществ,
которые предлагает Python веб-разработчикам.
Простота использования
Одна из самых привлекательных черт
языка Python — невероятная простота
использования в веб-проектах. Дальше
мы расскажем, с чем это связано.
Легкость изучения
Этот язык программирования изучить не сложнее, чем самый обиходный английский. Простой синтаксис языка обеспечивает очень пологую кривую обучаемости.
Отлично подходит для
визуализации данных
Когда речь заходит о представлении
данных на сайте или в приложении, Python
просто потрясающе эффективен, и
разработчики не могли этого не оценить.
С его помощью можно легко создавать
простые и понятные отчеты и визуальные
представления данных.
Легкость чтения
Простой синтаксис Python обеспечивает
разработчикам отличную читаемость
кода. Благодаря этому разработчикам,
занятым в проекте, проще коммуницировать
и обмениваться знаниями.
Несравненная гибкость
Python это очень гибкий язык программирования. Он не замыкается в собственном мире и в процессе программирования способен смешиваться с разными языками, образуя новые реализации. Например, CPython — версия Python с C, IronPython создан для совместимости с .NET и C#, а проект PyObjc позволяет совместно использовать инструменты как Python, так и ObjectiveC. И это лишь несколько примеров.
Асинхронное программирование
Все мы знаем, что шаблоны асинхронного программирования помогают решать многие проблемы, с которыми время от времени сталкиваются разработчики. Python поддерживает асинхронный код. А когда разные части программы могут работать отдельно друг от друга, это помогает выявлять и решать возникающие проблемы гораздо быстрее.
Получение данных из форм
Итак, во-первых разберёмся с формами. В модуле CGI есть полезный класс: FieldStorage, который содержит в себе переданную в форме информацию. По сути дела этот класс представляет из себя словарь, обладающий теми же свойствами, что и обычный словарь в python.
У класса FieldStorage есть 2 метода получения значений данных формы:
FieldStorage.getfirst(name, default=None) — всегда возвращает только одно значение, связанное с именем поля формы. Метод возвращает только первое значение в том случае, если нехороший пользователь послал более одного значения
Обратите внимание, что порядок, в котором будут получены значения, могут отличаться от браузера к браузеру. Если нет такого поля формы или значение не существует, то метод возвращает default
FieldStorage.getlist(name) — возвращает список значений, связанных с именем поля формы.
Разберём на примере: создадим в нашей папке файл index.html со следующим содержимым (это будет наша форма, данные из которой мы будем обрабатывать):
<!DOCTYPE HTML> <html> <head> <meta charset="utf-8"> <title>Обработка данных форм</title> </head> <body> <form action="/cgi-bin/form.py"> <input type="text" name="TEXT_1"> <input type="text" name="TEXT_2"> <input type="submit"> </form> </body> </html>
А в папке cgi-bin/ — файл form.py (обработчик формы)
#!/usr/bin/env python3 import cgi form = cgi.FieldStorage() text1 = form.getfirst("TEXT_1", "не задано") text2 = form.getfirst("TEXT_2", "не задано") print("Content-type: text/html\n") print("""<!DOCTYPE HTML> <html> <head> <meta charset="utf-8"> <title>Обработка данных форм</title> </head> <body>""") print("<h1>Обработка данных форм!</h1>") print("<p>TEXT_1: {}</p>".format(text1)) print("<p>TEXT_2: {}</p>".format(text2)) print("""</body> </html>""")
Попробуем это в действии (кто сидит на linux, не забудьте поставить права на выполнение).
Запускаем локальный сервер, и переходим на localhost:8000:
Что такое питон простыми словами
Для того чтобы понять, что такое Python нужно разобраться зачем вообще нужны языки программирования. Они нужны для взаимодействия человека и компьютера. Между собой люди общаются на естественном языке.
Язык программирования Python
Питон является относительно простым высокоуровневым скриптовым языком, который служит для создания различных сценариев. Это означает, что для программирования на Python, не требуется знания машинных кодов — команд для компьютера.
Программирование при помощи машинных кодов ускоряет программу, но очень трудоемко и требует хорошего знания архитектуры компьютера. Одним из таких низкоуровневых языков является ассемблер. Чаще всего низкоуровневое программирование используется в промышленности для специализированных контроллеров, где нет большого объема памяти.
Python может использоваться для программирования контроллеров в станках ЧПУ и в робототехнике. Популярный во всем мире одноплатный микрокомпьютер Raspberry Pi также программируется на питоне. С помощью «малинки» можно программировать роботов, умные дома, квадрокоптеры и множество других вещей. Pi в названии миникомпьютера обозначает, что программирование происходит на Python.
одноплатный микрокомпьютер Raspberry Pi
На языке высокого уровня нужно уметь программировать при помощи понятий, обозначаемых словами. Чаще всего это английский язык, но есть и примеры кодирования на других языках. Например, программу «Бухгалтерия 1С» можно редактировать и изменять на русском.
Питон поддерживает объектно-ориентированное программирование и является интерпретируемым языком. Это означает, что программа выполняется построчно и для ее выполнения на компьютере должен быть установлен интерпретатор. Самым распространенным и популярным интерпретатором является CPython.
Онлайн-курсы с наставником
Менее продолжительные (от месяца до полугода) курсы, используются либо как база, либо для совершенствования навыков в конкретной области. Каждый курс из этого списка предоставляет Вам наставника, которому в любой момент можно задать любой интересующий вопрос или обратиться за разъяснениями непонятного материала.
Прикладной онлайн-курс Аналитик данных на Python от skillbox:
- 16 недель обучения на основе реальных кейсов
- Освоение популярных инструментов анализа данных: numpy, pandas, matplotlib, seaborn
- Возможность стажировки в топовых компаниях
Цена 40000₽
Образовательный онлайн-курс Python-разработчик от skillbox:
- Практический 4-х месячный курс
- Быстрый старт и практика кодинга под присмотром опытного наставника
- Пожизненный доступ к обучающим модулям
- Создание своего первого проекта: «Реализация искусственного интеллекта для оптимального сбора ресурсов»
Цена 48000₽
Алгоритмы и структуры данных на Python. Базовый курс от geekbrains. Во время занятий (продолжительностью 1 месяц) вы сможете:
- Излагать идеи в виде блок-схем, читать готовые схемы и реализовывать программы на их основе
- Закрепить навыки реализации простейших алгоритмов с ветвлениями, циклами, а также рекурсивных алгоритмов
- Познакомиться с классическими структурами данных
- Освоить классические алгоритмы, которые лежат в основе современных проектов
- Узнать об алгоритмической сложности и научиться её оценивать
- Познакомиться с внутренним устройством интерпретатора Python
Цена 16500₽
Для школьников данные программы обучения будут слишком сложными, поэтому здесь обзор лучших курсов Python, созданных специально для детей.
А для тех же, кто не может позволить себе обучение на платных курсах с наставником, я ранее выкладывал список бесплатных курсов Python.
Работа с Git и GitHub
Пришло время зафиксировать изменения с git и загрузить данные на GitHub. Начнем с инициализации нашей директории.
Shell
(pages) $ git init
1 | (pages)$git init |
Используйте для просмотра изменений в коде, а затем для их добавления. Теперь мы можем добавить первый коммит.
Shell
(pages) $ git status
(pages) $ git add -A
(pages) $ git commit -m ‘initial commit’
1 2 3 |
(pages)$git status (pages)$git add-A (pages)$git commit-m’initial commit’ |
На GitHub создаем новое хранилище. Назовем его . Не забудьте отметить тип «Private», а затем нажмите кнопку «Create repository».
На следующей страницы пролистайте вниз до фразы «…or push an existing repository from the command line». Скопируйте текст и вставьте две команды в терминале.
Все должно выглядеть, так как указано ниже, только вместо в качестве имени пользователя будет указано ваше никнейм на GitHub.
Shell
(pages) $ git remote add origin https://github.com/wsvincent/pages-app.git
(pages) $ git push -u origin master
1 2 |
(pages)$git remote add origin httpsgithub.comwsvincentpages-app.git (pages)$git push-uorigin master |
Делать сайты на Python перспективнее?
Да. PHP ограничен одними сайтами и развивается в сторону веб (для чего он и был создан). Python в свою очередь, развивается в разные стороны, это даст вам шанс в будущем сменить свою работу и начать делать, например, программы вместо сайтов не меняя язык программирования. Вам не придется изучать опять новый язык программирования чтобы сменить род деятельности т.е. перескочить с сайтостроения на написание приложении для android, apple, symbian и т.д.
Еще один плюс в сторону Python в том, что он строго типизирован как и Java. Этот язык обучит вас хорошим манерам программиста и не даст волю творить хаос в коде. Но, не будем все обобщать, творить бессмыслицу можно и на Python и делать шедевры на том же PHP. Python научит разделать код на логические блоки чтобы понимать где зона выполнения цикла, где заканчивается один IF и начинается другой и т.д. На PHP тоже можно структурировать код на логические блоки, но там это не обязательно, следовательно новичок может написать код в одну строку и ему ничего не будет, в момент когда Python новичок получит ошибку и начнет править код.
Установка и настройка среды разработки Python/Django
На этом этапе мы видим перед собой приветственное окно приложения с предложением создать новый проект, открыть существующий или же импортировать из системы контроля версий. Нас же пока интересует первый пункт – Create New Project. Нажимаем его и переходим в созданию нового проекта.
Теперь нам необходимо задать имя нового проекта и выбрать местоположение. Название всегда лучше выбирать такое, чтобы в будущем, когда вы будете работать с несколькими проектами и периодически возвращаться к доработке предыдущих вам было легче ориентироваться и понимать где какой проект хранится.
Вторая строчка Interpreter отвечает за выбор установленного в системе интерпретатора языка Python. Их может быть несколько, но пока мы не будем вдаваться в нюансы. Сразу отмечу, что для каждого проекта лучше создавать отдельную виртуальную среду (VirtualEnv), которая будет содержать установленные модули, необходимые для конкретного проекта и их настройки и версии не будут влиять на другие проекты. Давайте создадим новую VirtualEnv нажав на шестеренке справа и выбрав пункт Create VirtualEnv.
Для VirtualEnv так же необходимо задать имя, выбрать расположение в файловой системе и версию интерпретатора Python, которая будет использоваться. Я предпочитаю виртуальной среде давать имена аналогичные проекту, чтобы так же легко можно было разобраться для какого проекта она была создана.
Нажимаем ОК и ждем пока закончится процесс создания виртуальной среды. После нажимаем на кнопку Create внизу справа и запускаем процесс создания проекта.
Далее откроется окошко среды разработки, которое сигнализирует о том, что проект создан и теперь мы может переходить к разработке сайта на Django.
Для дальнейших манипуляций открываем Терминал, нажав на кнопку внизу слева.
SoloLearn
Еще один веб-сервис для изучения языка Python, с одной очень интересной особенностью, о которой расскажем в конце. Здесь все материалы структурированы а задания делятся на несколько типов, таких как: «Переставь строчки так, чтобы код заработал», «Вставь пропущенные куски кода», обычное тестирование. Стоит предупредить, что материал изложен очень кратко и надеяться на глубокие знания не стоит. Однако, этот сервис попал сюда не совсем за свой курс по Python.
Дело в том, что на этой площадке есть так называемые «баттлы». Они проходят между реальными пользователями и выглядят примерно так:
Каждому пользователю поочередно дается пять заданий, таких как в процессе курса. Задания у каждого одинаковые. Побеждает тот, кто выполнит больше заданий правильно.
Учтите, что баттлы доступны только в мобильном приложении. Курс на русском языке, кстати, тоже доступен только там. В десктопной версии сайта отображается его англоязычная версия.