Как проходит собеседование python-разработчика: вопросы для джуниоров и мидлов

Содержание:

Где используется Python и почему

В последние 5 лет Питон непрерывно находится в тройке самых популярных языков программирования. У него есть ряд сильных сторон, которые привлекают разработчиков со всего мира.

К типичным областям использования Python относят:

  • Веб-разработка (сайты любой сложности и функциональности без проблем создаются при помощи данного языка);
  • Работа с базами данных (можно работать как с «встроенной» sqlite3, так и любыми другими – реляционными и нереляционными);
  • Графические приложения (реально не просто писать исполняемые скрипты, но и разрабатывать полноценные графические интерфейсы под свои нужды);
  • Научные задачи (сложные вычисления, машинное обучение, нейронные сети);
  • Сетевое программирование (включает не только взаимодействие с сайтами, но и почтовыми сервисами, JSON-объектами, Интернет-протоколами);
  • Бизнес-приложения и игровая индустрия (ERP-системы, непрерывная разработка и тестирование, простые игры).

Озвученный спектр направлений показывает, что Питон имеет определенные преимущества по сравнению с другими языками, раз он пригоден для такого широкого класса задач.

Основные показаны ниже (рис. 1).

Сильные стороны языка Python

Простота подразумевает легкость освоения и высокий уровень абстракции (минимум кода при максимальном эффекте).

Выразительность связана с минимальным количеством кода для достижения результата (некоторые особенности Питона сокращают объем кода чуть ли не до одной строки, если сравнивать с другими языками).

Скрипты на Python’e легко читать: нет лишних символов, нагромождения скобок, дополнительных уточнений.

Полнота демонстрирует масштаб встроенных и сторонних библиотек под специфичные нужды (не нужно с нуля создавать функционал, ведь его уже кто-то реализовал).

Немаловажно и то, что исходный код Python свободно распространяется. Любая редакция языка доступна каждому как для личных, так и коммерческих нужд

Кроссплатформенность в дополнение ко всему гарантирует достижение идентичных результатов что на Windows, Linux, MacOS, так и на мобильных системах.

Отметим, также, ключевые плюсы и минуса Питона (таблица 1).

Плюсы Минусы
Легко изучать, писать и читать код Относительно медленный
Интерпретируемый (исполняет код на лету) Не всегда эффективно расходует память
Динамически типизированный Ограничен в мобильной разработке
С открытым исходным кодом При исполнении могут возникать ошибки, что требует тщательного тестирования
Имеет широкую поддержку  

Таблица 1 – Сильные и слабые стороны Python’a

Миф 6. Python — исключительно язык скриптов

Да сколько ж можно! Python давно уже не просто язык сценариев, как эти ваши Perl или Bash. На нём пишут веб-приложения, мобильные приложения, программы для настольных компьютеров. На нём написаны многие части YouTube, Dropbox или Facebook. Но как скриптовый язык он тоже широко используется — например, в Power BI, Blender, Maya.

Отдельная область применения Python — научные вычисления, маркетинг и машинное обучение. Здесь он используется очень активно. Достаточно зайти на Ozon и посмотреть, о чём пишут в книгах про Python или какие языки программирования предлагают использовать в курсах по AI или маркетингу — Python здесь практически нет равных.

Какие soft skills пригодятся в первую очередь?

Помните сериал «Кремниевая долина» и его главного героя Ричарда Хендрикса, CEO «Пегого Дудочника»? Он был отличным программистом, но ему явно не хватало умения общаться с людьми, работать в команде и руководить сотрудниками. На практике одного умения решать поставленные задачи с помощью технических навыков бывает недостаточно, успешность кандидата зависит также от его социальных качеств.

Конференция Open Day

25 мая в 18:00, Онлайн, Беcплатно

tproger.ru

События и курсы на tproger.ru

Ответственность, стремление к профессиональному росту, умение управлять рабочим временем и работать в команде — это базовые soft skills, которые нужны практически на любой должности в ИТ-сфере.

От junior разработчика дополнительно ждут умение быстро осваивать новый материал, вникать в суть задач, понимать требования и быть готовым к рутинным задачам. На собеседованиях junior-специалистов могут спросить: «Как вы относитесь к рутинным задачам?» — потому что их работа часто включает монотонные процессы, не всегда творческая. Работодатель не хочет вас напугать — скорее хочет убедиться в том, что вам не станет скучно на этой позиции через несколько месяцев и вы не захотите уйти. Ответ на такой вопрос можно сформулировать так: «Сейчас подобные задачи для меня — возможность получить опыт, на них я смогу отработать свои навыки, чтобы в будущем браться за более сложную работу».

На собеседовании также могут спросить, почему вы хотите работать на этой должности и в этой компании. С помощью этого вопроса работодатель пытается понять, подходит ли соискатель компании, а компания — соискателю. Если вам действительно не интересен проект, то работа в нем вряд ли доставит удовольствие, и вряд ли вы принесете пользу компании.

Изучите перед собеседованием свои будущие задачи, продукты и проекты, с которыми работают в компании, этап развития компании (например, стартап или ИТ-гигант), корпоративную культуру, отзывы сотрудников, местоположение, условия работы

И выберите среди всего то, что вам действительно важно. Это может быть простое «это компания, где я могу полностью реализовать свои компетенции и продолжить карьеру» или «мне кажется, мой опыт отлично подходит под требования» и перечислите ключевые навыки

Особенности профессии Python-программиста

Опытные программисты постоянно обучаются, ведь если не получать новые знания, то разработчик быстро потеряет и квалификацию, и ценность на рынке труда. Python — это язык программирования широкого назначения, который разработчику желательно знать. Чаще всего за изучение Python берутся программисты, которые уже имеют солидный опыт работы с C++ или Java. Дело в том, что навыки работы с объектно-ориентированным программированием позволяют освоить Python в сжатые сроки.

Язык Python многие разработчики считают устаревшим и слишком медленным, поэтому не уделяют его изучению должного внимания. Но крупные технологические компании активно используют этот язык программирования, он в течение долгих лет находится в верхних строках рейтинга, благодаря чему его можно считать перспективным.

Разработчик Python занимается сопровождением ПО, которое он разработал или модернизировал, обучением сотрудников, подготовкой инструкций, документации.

Основные инструменты Python-разработчика

Изучение Питона не может быть полноценным без набора полезных инструментов под рукой. Мы собрали небольшой список и разделили его на категории.

Базовые

  • Pip — популярный менеджер пакетов в Python, с помощью которого можно устанавливать и управлять программными пакетами.
  • Pipenv — инструмент для управления виртуальным окружением в Python.
  • Setuptools — целый набор инструментов для создания пакетов в Python.
  • Virtualenv — инструмент для создания виртуального окружения с пакетами.

Документация

  • Sphinx — генератор документации, который изначально создавался для работы с Python, но впоследствии стал инструментом общего пользования.
  • autodoc — расширение Sphinx для создания reStructuredText файлов из исходного кода.

Тестирование

  • py.test — платформа для тестирования на Python со множеством функций. Инструмент автоматически находит тесты, запускает их и выводит отчёты.
  • Selenium WebDriver — в тандеме с другими инструментами позволяет эффективно тестировать веб-приложений.
  • unittest — модуль инструментов с настройкой используемых данных, управлением комплектами и наборами тестов, возможностью запускать тесты в графическом или текстовом режиме.

Установка и подготовка среды

Чтобы начать программировать на Питоне, требуется совершить 2 шага:

  1. Установить последний релиз Python (скачивается с официального сайта https://www.python.org/downloads/);
  2. Загрузить программу для разработки (для новичков лучше всего подойдет PyCharm версии Community – https://www.jetbrains.com/ru-ru/pycharm/download/).

В нашем бесплатном руководстве по Python мы будем пользоваться только этим функционалом. Его достаточно, чтобы самому дома с нуля разобраться в Питоне.

Чтобы создать свой первый проект запускаем PyCharm и выбираем меню File -> New Project. Проверяем, чтобы в поле Base Interpreter стояла самая новая версия Питона.

Теперь в папке проекта можно создать файл с расширением «.py», в котором и будет писаться код. Чтобы запустить скрипт, нажимаем либо зеленую кнопку «Run», либо выбираем ее же через правую кнопку мыши. Внизу PyCharm при этом откроется окно консоли, отражающее итог и ход работы программы.

Таким образом, схема работы достаточно проста: пишем код, запускаем его, смотрим в терминал результат.

Чтобы проверить, что все установлено успешно и вы не напутали ничего в настройках, идем в панель терминала (внизу) и пишем там команду «python -V». Она отобразит версию Python, которая была проинсталлирована на компьютер.

В случае, если операционная система отличается от Windows, то команда будет выглядеть так: «python3 -V» (это связано с тем, что в UNIX-подобных ядрах по умолчанию включена более старая версия языка – 2.7. Так как она больше не поддерживается, рекомендуется работать с третьей – 3.9 или выше).

Как используется 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.

Язык применяется во встроенных системах станков с ЧПУ, средствах автоматического регулирования (температуры, расхода жидкостей, давления и так далее) и в телекоммуникационном оборудовании.

Инструмент 1: ИИ автодополнение и быстрый доступ к документации с Kite

У современных IDE есть встроенное автозаполнение, которое выглядит примерно так:

Встроенный инструмент обычно использует документацию для определения имён и типов возможных функций и параметров. Но что если редактор получит доступ к коду из всех публичных репозиториев GitHub и начнёт подтягивать не просто имена, а целые строки кода? И это реализовано в Kite.

Прим.ред. Такая функциональность доступна в планах Pro и Team. На момент написания материала для плана Pro действует бесплатная бета-версия.

Разберём подробнее особенности Kite — инструмента для Python с функциями умного автодополнения и быстрого доступа к документации.

Умные подсказки

Плагин Kite смотрит в комплексе ваш код, переменные, часто используемые имена параметров, документацию, и только после сбора всех данных рекомендует что-то вроде этого:

Если хотите, .

Copilot для документации

Прежде чем беспокоить более опытного коллегу или мчаться за ответами на Stack Overflow, почитайте документацию.

Kite Copilot упрощает поиск по документации. Он работает параллельно с IDE и показывает информацию о любых объектах или функциях, на которые наведён курсор.

Работает локально, приватно

Вдобавок ко всему, плагин создан для локальной работы, так что вы получаете быстрые советы, работа происходит в автономном режиме, и ваш код никогда не будет отправлен в облако.

Это крайне важно для людей с плохим интернет-соединением и тех, кто работает с закрытым исходным кодом

Ответы на вопросы читателей

Насколько сложно выучить Python? Азы Питона изучаются достаточно просто. Чтобы стать экспертом и высококлассным специалистом потребуется практика и решение реальных задач. Быстро выучить можно, было бы желание.

Какие программы можно создавать, овладев Питоном? Перечень программ органичен лишь фантазией. Разработчики создают порталы и многофункциональные сайты, парсеры, менеджеры баз данных, системы управления ресурсами, чат-боты, программные интерфейсы, сервисы анализа данных, графические оболочки.

Сколько времени потребуется на изучение Питона? Стандартных временных рамок не существует. Однако уже через 1-2 месяца при интенсивной самостоятельной работе с языком можно создавать простые парсеры, небольшие игры, автоматизаторы рутинных задач. А вообще, есть правило 10 тыс. часов – именно столько времени практики потребуется, чтобы посчитать себя специалистом хорошего уровня.

Есть ли слабые стороны у Питона? У любого языка программирования они имеются. Во-первых, скорость работы несколько ниже, чем у компилируемых языков (С++, Java), но ее обычно хватает. Во-вторых, работа с 3d-графикой ограничена. В-третьих, отсутствует проверка типа переменной в момент компиляции.

Какая зарплата у Python-разработчика начинающего уровня? В зависимости от региона она варьируется, но даже Junior-разработчик вполне может рассчитывать на 30-50 тыс. руб. в первые месяцы работы. По мере роста количества навыков лимиты повышаются в разы, а то и десятки раз.

Как лучше учить Python? В наше время методик обучения бесчисленное количество: видеокурсы, книги, игровые платформы, буткампы и пр. Поэтому можно выбрать тот способ, что подходит именно вам. Главное помнить: постоянная практика закрепляет пройденный материал. Простая зубрежка материала не даст никаких видимых результатов.

Где можно посмотреть задачи для новичков, простые проекты? Чтобы попрактиковаться в навыках, необходимо решать разные задачи и сравнивать результаты с другими программистами. Для этого подойдут следующие ресурсы: https://www.codingame.com/, https://www.codewars.com/, https://www.hackerrank.com/. Здесь имеются задания для специалистов любого уровня.

Где используется Python

Python широко распространен во многих сферах: от системного администрирования до Data Science.

Системное администрирование

Системным администраторам Python нужен для автоматизации задач. Он простой, мощный и поддерживает специальные пакеты, которые повышают его эффективность. И, самое главное, он по умолчанию установлен на все серверы с ОС Linux.

Благодаря лаконичности Python можно быстро прочитать код и найти слабые места. Форматирование в языке — часть синтаксиса.

Научные исследования

В Python есть несколько библиотек, которые пригодятся для проведения исследований и вычислений:

  • SciPy — библиотека с научными инструментами;
  • NumPy — расширение, которое добавляет поддержку матриц и многомерных массивов, а также математические функции для работы с ними;
  • Matplotlib — библиотека для работы с 2D- и 3D-графикой.

Благодаря библиотекам и простоте освоения языка многие учёные выбирают Python — особенно он популярен у математиков и физиков.

Data Science

Python — один из самых используемых в Data Science языков. На нём пишут алгоритмы программ с машинным обучением и аналитические приложения. С помощью него обслуживают хранилища данных и облачные сервисы.

Какие у Python конкуренты

Стоит ли учить именно Python? И чем он отличается от других языков? Давайте сравним его с Java — ещё одним кроссплатформенным объектно-ориентированным языком, с которым Python соревнуется в рейтингах, и с JavaScript — популярным скриптовым языком для веб-разработки.

Python vs. Java

Python и Java — соседи по рейтингу, и у них есть общие черты: например, поддержка объектно-ориентированного программирования и кроссплатформенность.

Но много и различий.

Типизация

Начнём с формальных различий: в Java, в отличие от Python, типизация статическая. Это значит, что типы переменных прописываются в коде и считываются на этапе компиляции, а некорректная программа просто не запустится. В Python вы сэкономите время разработки (типы переменных не надо обозначать), но об ошибках узнаете уже после запуска программы.

Компиляция

Python — интерпретируемый язык (об этом мы чуть подробнее рассказали выше), а Java использует и компиляцию, и интерпретацию. Благодаря этому Java получает выгоду обоих способов — кроссплатформенность и скорость.

Скорость

Здесь выигрывает Java. Скорость — её большое преимущество, в то время как у Python это одна из слабостей. Например, простое двоичное дерево выполняется в Java в 10 раз быстрее.

Синтаксис и читаемость

Синтаксис Java похож на синтаксисы C и С++. У всех этих языков достаточно строгий и «многословный» синтаксис, и для новичков это минус: вместо того чтобы сосредоточиться на том, что писать, приходится больше думать о том, как писать. Впрочем, от витиеватости языка страдают не только новички. Большая часть работы программиста — это работа с уже написанным кодом, поэтому читаемость очень важна.

В Python синтаксис очень лаконичный, а код минималистичный и хорошо читается.

Применение

Java — лидер в разработке мобильных приложений, а ещё хорошо подходит для десктопных приложений, промышленных программ и программ для корпораций.

Где найти Python-разработчика на проект?

  1. Если вам нужен специалист на удаленную работу или разовый заказ, добавьте проект на сервис www.kadrof.ru/work Это бесплатный сайт, где публикуются вакансии для фрилансеров.
  2. Найти частного специалиста можно в каталоге веб-разработчиков. Там есть фильтры, позволяющие выбрать программистов, знающих определенные технологии.
  3. Посмотрите статью, где найти хорошего программиста. Там вы найдете много полезных сайтов, куда можно добавить вакансию для поиска Python-программиста.

Рекомендуем

Профессия художник

Художник – не только профессия, но и призвание. Можно овладеть теорией цвета, различными техниками, изучить шедевры мировой живописи, но без …

Работа линк-менеджером

Линк-менеджер – работа, требующая усердия, трудолюбия и способности быстро обрабатывать большие объемы информации. Суть работы заключается в …

Идеи десктопных приложений

MP3-плеер

MP3-плеер — это устройство для воспроизведения MP3-файлов и других цифровых аудиофайлов. GUI MP3-плеера обычно подражает физическому MP3-плееру.

Примеры MP3-плееров:

  • MusicBee
  • Foobar2000

Технические детали

Чтобы быть привлекательным для пользователей, приложение должно иметь простой и красивый интерфейс. Плеер должен отображать информацию о воспроизводимом файле — имя, длительность и воспроизведённую и невоспроизведённую часть файла в минутах и ​​секундах.

В Python есть библиотеки — pygame, pymedia и simpleaudio, позволяющие работать с мультимедийными файлами в пару строк кода. Они могут обрабатывать файлы и других типов, а не только файлы MP3.

Пользователи это оценят

Вы можете реализовать функцию, которая позволяет пользователям создавать плейлисты. Для этого вам понадобится база данных для хранения информации о созданных плейлистах. Модуль sqlite3 позволяет использовать базу данных SQLite, она является лучшим вариантом в этом случае, поскольку основана на файлах и её проще настроить, чем другие базы данных SQL.

Вы можете добавить функцию повторения воспроизводимых в данный момент аудио или даже перемешивать список файлов для воспроизведения. Также возможно реализовать функцию, которая позволяет пользователям увеличивать и уменьшать скорость воспроизведения аудиофайла.

Будильник, он и есть будильник. Подаёт звуковой сигнал в определённое время.

Практика: делаем график курса доллара

Приступим к последнему заданию — сделаем в Python график курса доллара с начала 2019 года.

Для начала импортируем библиотеки Numpy (в ней удобно работать с массивами и матрицами), Pandas (работа с CSV-файлами) и Matplotlib (визуализация).

Вы можете дать библиотеке имя, которое будете использовать вместо настоящего названия, — это часто делается для экономии времени.

На сайте Центрального Банка РФ скачаем CSV-файл с курсом от начала года.

Записываем скачанный файл в переменную money:

Теперь если мы выведем money, то увидим таблицу с курсом.

Вот такую:

В России принято отделять десятичную часть запятой, поэтому перед созданием графика мы напишем маленькую функцию, которая заменит запятые точками.

Теперь осталось только показать график командой:

Если вы всё сделали правильно, то сейчас вы видите график курса доллара США, у нас получилось вот так:

Кто такой Python программист и чем он занимается?

Питон считается универсальным языком, который имеет широкое применение. Однако чаще всего он используется в следующих сферах:

  • Машинное обучение. Например, различные рекомендательные алгоритмы, поиск могут быть написаны на Питоне. Активно данный язык используется в Яндексе.
  • Написание скриптов, которые встраиваются в программы, написанные на других языках. Например, в играх на Питоне пишут алгоритмы взаимодействия персонажей, обработку событий и запуск сцен. Код на Питоне есть в таких популярных играх, как World of Tanks, Battlefield 2.
  • Анализ и визуализация данных. Многие аналитики сегодня должны знать Python, чтобы проводить вычисления, выявлять закономерности и делать анализ данных.

Помимо перечисленных областей, Python разработчики востребованы:

  • В веб-разработке. Часто бэкенд-часть сайтов (которая взаимодействует с сервером) написана на Питоне. На этом языке активно пишут парсеры, то есть программы, которые собирают различные данные с сайтов.
  • В мобильной разработке. Например, серверная часть приложения Инстаграм написана на этом языке.
  • В разработке десктоп программ. Например, на Питоне создана программа GIMP, а также софт для разработки 3D-графики Blender.
  • Активно данный язык программирования используется в различных устройствах, например, банкоматах, ЧПУ-станках, телекоммуникационном оборудовании.

Python-разработчик может заниматься созданием программ, сайтов, приложений в указанных областях, а также доработкой уже созданных программных продуктов, их развитием и поддержкой.

Есть множество онлайн-курсов, на которых можно освоить профессию с нуля, даже не имея опыта в программировании. Например, обучением занимаются университет Skillbox и Нетология (здесь лучшим выпускникам помогают со стажировкой).

Инструмент 2: Статический анализ кода с Mypy

Python — динамически типизированный язык. Это значит, что переменная связывается с типом данных не в момент объявления, а в момент присваивания ей значения. То есть одна и та же переменная может быть и строкой, и целым числом, и каким-либо другим типом в зависимости от последнего присвоенного ей значения.

А вот примеры языков со статической типизацией, где для каждой переменной задан один конкретный тип данных, и в логике кода нужно придерживаться именно его:

Плюсы и минусы динамической типизации

Главное преимущество динамической типизации в том, что вам может быть лень постоянно прописывать типы, и такой язык, как Python, в этом поможет.

Конференция Analyst Days / 12

21–22 мая, Санкт-Петербург, От 20 000 до 45 000 ₽

tproger.ru

События и курсы на tproger.ru

А вот недостатков больше:

  • как правило, вы сталкиваетесь с ошибками на более поздних этапах разработки;
  • код работает медленнее, ведь Python постоянно вычисляет типы;
  • код становится менее безопасным, так как на входе и выходе функции у одной и той же переменной могут быть разные типы данных;
  • читать ваш код становится сложнее, поскольку другой человек не может быть уверен в том, что уже объявленная переменная не изменит свой тип в дальнейшем.

Статическая типизация в Python

В Python нет статической типизации как таковой, но есть аннотации типов, которые проверяются статическими анализаторами с целью контроля типов переменных.

Обратите внимание на Mypy. Это статический анализатор типов для Python, который позволяет находить ошибки несоответствия типов в коде

Mypy выводит ошибку, если при работе с аннотациями типов значение переменной не соответствует присвоенному ей типу.

В результате запуска статического анализатора Mypy в приведённом выше коде вы получите следующую ошибку: . Таким образом Mypy предупреждает, что мы пытаемся присвоить строковое значение переменной с целочисленным типом данных. Это лишь один из примеров использования Mypy. Все функциональные возможности инструмента, более подробно описанные в документации, можно протестировать в песочнице.

Операции с файловой системой

Управление файлами выполняется очень просто в язык программирования Python, это лучший язык для работы с файлами. Да и вообще, можно сказать, что Python — это самый простой язык.

1. Копирование файлов

Для копирования файлов нужно использовать функции из модуля subutil:

Если file1 — символическая ссылка, операция копирования все равно создаст отдельный файл. Если вы хотите скопировать именно символическую ссылку используйте такую конструкцию:

2. Перемещение файлов

Перемещение файлов выполняется с помощью функции move:

Функция rename из модуля os позволяет переименовывать файлы:

3. Чтение и запись текстовых файлов

Вы можете использовать встроенные функции для открытия файлов, чтения или записи данных в них:

Сначала нужно открыть файл для работы с помощью функции open. Для чтения данных из файла используется функция read, прочитанный текст будет сохранен в переменную. Вы можете указать количество байт, которые нужно прочитать:

Если файл слишком большой, вы можете разбить его на строки и уже так выполнять обработку:

Чтобы записать данные в файл, его сначала нужно открыть для записи. Есть два режима работы — перезапись и добавление в конец файла. Режим записи:

И добавление в конец файла:

5. Получение времени создания

Вы можете использовать функции getmtime(), getatime() и getctime() для получения времени последнего изменения, последнего доступа и создания. Результат будет выведен в формате Unix, поэтому его нужно конвертировать в читаемый вид:

6. Список файлов

С помощью функции listdir() вы можете получить список файлов в папке:

Для решения той же задачи можно использовать модуль glob:

7. Сериализация объектов Python

Сериализация позволяет сохранить объект в строку, для его последующего восстановления. Для этого используйте модуль pickle:

Затем для восстановления объекта используйте:

8. Сжатие файлов

Стандартная библиотека Python позволяет работать с различными форматами архивов, например, zip, tar, gzip, bzip2. Чтобы посмотреть содержимое файла используйте:

А для создания zip архива:

Также вы можете распаковать архив:

Вы можете добавить файлы в архив так:

9. Разбор CSV и Exel файлов

С помощью модуля pandas можно смотреть и разбирать содержимое CSV и Exel таблиц. Сначала нужно установить модуль с помощью pip:

Затем для разбора наберите:

По умолчанию pandas использует первую колонку для заголовков каждой из строк. Вы можете задать колонку для индекса с помощью параметра index_col или указать False, если он не нужен. Чтобы записать изменения в файл используйте функцию to_csv:

Таким же образом можно разобрать файл Exel:

Если нужно открыть все таблицы, используйте:

Затем можно записать все данные обратно:

Работа с сетью в Python

Программирование на Python 3 часто включает работу с сетью. Стандартная библиотека Python включает в себя возможности работы с сокетами для доступа к сети на низком уровне. Это нужно для поддержки множества сетевых протоколов.

Этот код подключается к порту 4040 на машине 192.168.1.5. Когда сокет открыт, вы можете отправлять и получать данные:

Нам необходимо писать символ b, перед строкой, потому что надо передавать данные в двоичном режиме. Если сообщение слишком большое, вы можете выполнить итерацию:

Для получения данных вам тоже нужно открыть сокет, только используется метод my_sock_recv:

Здесь мы указываем сколько данных нужно получить — 20000, данные не будут переданы в переменную, пока не будет получено 20000 байт данных. Если сообщение больше, то для его получения нужно создать цикл:

Если буфер пуст, туда будет записано полученное сообщение.

Что почитать начинающему Python-разработчику

«Чистый код: создание, анализ и рефакторинг», Мартин Роберт К. «Грязный» код мешает развитию проекта и компании, потому что требует значительных ресурсов на поддержку. В книге много реальных примеров, которые научат отличать плохой код от хорошего. Она пригодится всем начинающим разработчикам, читается легко. Возможно, не всё получится сразу применить на практике, но когда вы столкнётесь с ситуацией, упомянутой в книге, вам будет легче найти решение.

«Грокаем алгоритмы. Иллюстрированное пособие для программистов и любопытствующих», Адитья Бхаргава. Думаете, алгоритмы это сложно? Книга убедит вас в обратном. В ней подробно разбирается каждый алгоритм: будет понятно даже ребёнку. Воспроизвести их на любом языке программирования не составит труда.

«Программируем на Python», Майкл Доусон. Автор книги — опытный разработчик. Он помогает освоить фундаментальные принципы на примере создания простых игр. Так вы получите базовые навыки и сможете пополнить портфолио. Для более продвинутых специалистов книга может показаться скучной, главная аудитория — всё-таки начинающие разработчики.

«Изучаем Python», «Программируем на Python», «Python. Карманный справочник», Марк Лутц. Это несколько книг известного инструктора по Python. Их лучше читать в оригинале. Они помогают восполнить пробелы в знаниях и разобраться в сложных вещах. В «Карманном справочнике» вы найдёте основные сведения о типах данных и операторах, специальных методах, встроенных функциях, которые пригодятся при работе с Python.

«Python. Книга Рецептов», Дэвид Бизли, Брайан К. Джонс. Пособие для начинающих и опытных разработчиков, которое поможет создавать легкочитаемый, оптимизированный и поддерживаемый код. 15 глав охватывают основные темы Python, каждая глава содержит конкретные «рецепты» с примерами кода, которые вы сможете использовать в своих проектах.

«Алгоритмы: построение и анализ», Томас Кормен, Чарльз Лейзерсон, Рональд Ривест, Клиффорд Штайн. Это справочник и пособие по алгоритмам, которое пригодится и начинающим разработчикам, и сеньорам, и тимлидам. Описания даются на простом языке, главы независимы друг от друга, можно изучать в любом порядке и объёме.

Плюсы и минусы профессии

Плюсы

  1. Широкие профессиональные компетенции, свои знания fullstack-разработчик на Python сможет применить во время работы в любых проектах – от маленького сайта до широкомасштабной игры.
  2. Язык Python простой в изучении, он станет хорошим стартом для начинающих разработчиков.
  3. Большой выбор образовательных программ, поэтому профессию можно освоить на курсах. Наличие высшего технического образования станет хорошим бонусом.
  4. Много вакансий и работодателей, заинтересованных в fullstack-разработчиках на Python.
  5. Изучение иностранных языков поможет выйти на международный рынок и приумножить прибыль. Например, в США fullstack-разработчик на Python получает около 120 тыс. долларов в год.

Минусы

  1. Fullstack-разработчик на Python выполняет большой объем работ, что чревато профессиональным выгоранием.
  2. Работа сидячая, львиную долю времени fullstack-разработчик на Python проводит за компьютером – все это приводит к развитию профзаболеваний.

Как создавать новые функции в Python

Дефолтных функций бывает недостаточно, и часто случается, что один и тот же набор операций надо выполнить много раз, причём с разными переменными. Чтобы сохранить время и избежать огромного кода, который сложно понять, мы можем создавать собственные функции.

Давайте напишем функцию, которая увеличит значение числа, которое мы ей передадим, на единицу:

Команда def (от англ. define — определить) означает, что мы определяем собственную функцию, increase_by_ 1 — это её название, а x — это переменная, с которой она работает.

Иногда функция уже существует, но её нет в базовой версии Python. Тогда её можно импортировать из библиотеки. Например, чтобы работать с более сложными математическими функциями, чем те, о которых мы говорили, нам понадобится библиотека math. Подключить можно всю библиотеку или только одну-две команды, в зависимости от того, что вам нужно. Для этого используется функция import. Это выглядит так:

Внимание!

Будьте осторожны с названиями функций! Если вы напишете свою функцию, а потом импортируете функцию с таким же названием, вы сможете использовать только импортированную.

Миф 4. Python назван в честь змеи

Каа, бандерлоги, Каа и Маугли — это прекрасно и романтично, но, несмотря даже на логотип в виде змейки, который мелькает даже на официальных сайтах, Python назван в честь британского скетч-шоу «Летающий цирк Монти Пайтона». И кстати, произношение «питон» — это так «a la russe», mes chers jeunes programmeurs (ме шер жён программёр).

Это легендарное шоу любят разработчики во всём мире и интеллектуалы, а в комедийную группу входил Терри Гиллиам, режиссёр «12 обезьян», «Страха и ненависти в Лас-Вегасе» и «Воображариума доктора Парнаса». И именно оттуда пошло слово «спам» в современном значении — навязчивая, ненужная реклама.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Adblock
detector