📌 Только ключевые и только позиционные аргументы
Позиционные аргументы — те, что передаются по позиции (доступно с Python 3.8). Ключевые — те, что передаются за счёт
Все аргументы до косой черты (/) считаются позиционными, то есть передать в них данные можно только в определённом порядке.
Все аргументы после звёздочки (*) считаются ключевыми, то есть передать данные можно только с помощью
📕 PEP 570 (позиционные) и PEP 3102 (ключевые)
#урок
Позиционные аргументы — те, что передаются по позиции (доступно с Python 3.8). Ключевые — те, что передаются за счёт
key=value
.Все аргументы до косой черты (/) считаются позиционными, то есть передать в них данные можно только в определённом порядке.
Все аргументы после звёздочки (*) считаются ключевыми, то есть передать данные можно только с помощью
key=value
.📕 PEP 570 (позиционные) и PEP 3102 (ключевые)
#урок
Самое время побыть Open Source разработчиком
Если вы уверены, что готовы к серьёзным проектам, то можете попробовать себя в Open Source разработке на Github.
К тому же, такое занятие сильно прокачает ваши навыки и сделает более привлекательным в глазах работодателя.
И это совсем не сложно. Есть простые issue, до которых просто не доходят руки у разработчиков. Их список вы можете найти тут.
#урок
Если вы уверены, что готовы к серьёзным проектам, то можете попробовать себя в Open Source разработке на Github.
К тому же, такое занятие сильно прокачает ваши навыки и сделает более привлекательным в глазах работодателя.
И это совсем не сложно. Есть простые issue, до которых просто не доходят руки у разработчиков. Их список вы можете найти тут.
#урок
🎙 Собеседование Python. Разработчик самоучка.
Собеседование — одна из наиболее стрессовых тем для разработчиков, но только первые двадцать раз ))
Делимся ссылкой на интересное собеседование на должность Python-разработчика. Можно подчеркнуть для себя множество полной информации и нюансов: https://youtu.be/maopv6Sm550
#Собеседование
Собеседование — одна из наиболее стрессовых тем для разработчиков, но только первые двадцать раз ))
Делимся ссылкой на интересное собеседование на должность Python-разработчика. Можно подчеркнуть для себя множество полной информации и нюансов: https://youtu.be/maopv6Sm550
#Собеседование
📌 Принцип YAGNI
Вам это не нужно. Не добавляйте кнопку, если вас об этом не просили. Не убивайте всё время на супер быстрый движок, если вас об этом не просили.
Инициатива это хорошо, но из-за неё можно потерять время и деньги. Клиенту нужен работающий продукт, а не куча разных фич.
Если вы нарушите принцип то, в лучшем случае, потеряете своё время, в худшем — время команды и деньги клиента.
#урок
Вам это не нужно. Не добавляйте кнопку, если вас об этом не просили. Не убивайте всё время на супер быстрый движок, если вас об этом не просили.
Инициатива это хорошо, но из-за неё можно потерять время и деньги. Клиенту нужен работающий продукт, а не куча разных фич.
Если вы нарушите принцип то, в лучшем случае, потеряете своё время, в худшем — время команды и деньги клиента.
#урок
Работаем с TOML
В версии Python 3.11 появилась новая библиотека — tomllib. Она позволяет работать с форматом TOML.
TOML несколько отличается от других форматов, ведь имеет нативную поддержку массивов, словарей, времени.
📕 Документация
#урок
В версии Python 3.11 появилась новая библиотека — tomllib. Она позволяет работать с форматом TOML.
TOML несколько отличается от других форматов, ведь имеет нативную поддержку массивов, словарей, времени.
📕 Документация
#урок
📌 Всегда случайный ID
Есть такая штучка, как UUID (Universally unique identifier) — универсальный уникальный идентификатор.
Суть в том, что значение идентификаторы всегда уникальные. Если создадите 1 млрд таких, то вероятность встретить двое одинаковых — 0.0000000001%.
Такое можно использовать в базах данных (для задания ключей), что давать имена файлам или в качестве уникальных имён любых веб-источников.
📕 Документация
#урок
Есть такая штучка, как UUID (Universally unique identifier) — универсальный уникальный идентификатор.
Суть в том, что значение идентификаторы всегда уникальные. Если создадите 1 млрд таких, то вероятность встретить двое одинаковых — 0.0000000001%.
Такое можно использовать в базах данных (для задания ключей), что давать имена файлам или в качестве уникальных имён любых веб-источников.
📕 Документация
#урок
📌 Вы знали, что поведение операторов можно менять?
Вся суть в том, что все операторы используют обычные функции, так называемые магические методы.
Мы вполне можем переопределить поведение, изменив код внутри функции. Найти весь список функций и операторов можно в модуле operators.
📕 Документация
#урок
Вся суть в том, что все операторы используют обычные функции, так называемые магические методы.
Мы вполне можем переопределить поведение, изменив код внутри функции. Найти весь список функций и операторов можно в модуле operators.
📕 Документация
#урок
📌 Не бойтесь писать понятный код
Раньше было страшным злодеянием взять и оставить
Например, если у вас есть 355 дней в секундах, можно оставить
В производительности ничего не потеряете, а код сделаете понятнее... Для себя через три месяца
#урок
Раньше было страшным злодеянием взять и оставить
1000 * 60 * 60
, сейчас же все компьютеры умные и могут просчитать выражение ещё до запуска приложения.Например, если у вас есть 355 дней в секундах, можно оставить
60 * 60 * 24 * 355
, так человек быстрее поймёт, откуда взялось это число и что оно значит.В производительности ничего не потеряете, а код сделаете понятнее... Для себя через три месяца
#урок
Forwarded from CodeCamp
Самое сложное в работе программиста — найти работу, ведь многие засыпаются на собеседовании на, казалось бы, простых вопросах.
Если чувствуете, что на собеседовании вас могут «подушить» по Python, подготовиться поможет список популярных вопросов, которые рекрутёры чаще всего задают.
Если чувствуете, что на собеседовании вас могут «подушить» по Python, подготовиться поможет список популярных вопросов, которые рекрутёры чаще всего задают.
bookflow.ru
Список вопросов с собеседований по Python
Полный список вопросов с собеседований по Python для дата-сайентистов и инженеров
📌 Замыкание
Это когда вложенная функция обращается к переменной из внешней функции. Даже если внешняя функция уже выполнилась.
Подобная штука часто используется в функциональном программировании. На её основе создано куча алгоритмов.
Но это довольно требовательная операция, поэтому, если есть другой вариант решения задачи, используйте его.
#урок
Это когда вложенная функция обращается к переменной из внешней функции. Даже если внешняя функция уже выполнилась.
Подобная штука часто используется в функциональном программировании. На её основе создано куча алгоритмов.
Но это довольно требовательная операция, поэтому, если есть другой вариант решения задачи, используйте его.
#урок
📌 Парсим HTML
Библиотек много, но лучшая из них — lxml. Основное её преимущество — она быстрая.
Установка:
🐙 GitHub
#урок
Библиотек много, но лучшая из них — lxml. Основное её преимущество — она быстрая.
Установка:
pip install lxml
Если вы собираете работать с повреждёнными HTML/XML файлами, то выбирайте html5lib, эта библиотека медленная, но стабильная. Если же вам нужно быстренько взять какие-то данные с сайта, не раздумывая, выбирайте lxml.🐙 GitHub
#урок
Что быстрее, [] или list()?
Спойлер:[] быстрее чем вызов функции
На этот вопрос ответит timeit — модуль, замеряющий время выполнения определённых команд.
Она в разы лучше, чем измерение с помощью time, поскольку позволяет точнее просчитать результат.
Кстати, подробнее ответ на вопрос из названия разбирается в этой статье.
📕 Документация
#урок
Спойлер:
Она в разы лучше, чем измерение с помощью time, поскольку позволяет точнее просчитать результат.
Кстати, подробнее ответ на вопрос из названия разбирается в этой статье.
📕 Документация
#урок
📌 Учим приложения общаться друг с другом
Как-то приложения должны делится информацией илля этого есть прекрасный фреймворк - hug. Он быстро создаёт API, с помощью которого можно взаимодействовать с приложением.
Установка:
Всё очень легко, копируем пример с официального сайта и запускаем с помощью
#урок
Как-то приложения должны делится информацией илля этого есть прекрасный фреймворк - hug. Он быстро создаёт API, с помощью которого можно взаимодействовать с приложением.
Установка:
pip3 install hug
С его помощью можно быстро написать API для браузера (HTTP) или терминала (CLI). Также он считается самым простым фреймворком для создания оболочки взаимодействия пользователя с приложением.Всё очень легко, копируем пример с официального сайта и запускаем с помощью
hug -f file.py
. Потом открываем браузер и переходим по http://127.0.0.1:8000/echo.#урок
📌 else в цикле
Да-да, else есть и у циклов. Этот блок существует и выполняется только если цикл завершил свою работу без вызова break.
Если на пути цикл встретит continue или появится ошибка, то код из else всё равно выполнится. Так удобно выполнять код до первого "исключения" в логике.
📕 Документация
#урок
Да-да, else есть и у циклов. Этот блок существует и выполняется только если цикл завершил свою работу без вызова break.
Если на пути цикл встретит continue или появится ошибка, то код из else всё равно выполнится. Так удобно выполнять код до первого "исключения" в логике.
📕 Документация
#урок
📌 Что такое PEP?
Python Enhancement Proposals — предложения по улучшению Python. Самый лучший источник знаний по этому языку.
Здесь описываются не только предложения, как улучшить Python, но и как сам по себе работает этот язык.
Самым популярным представителем PEP является PEP 8 — правила по оформлению кода, написанного на Python.
Вот ещё несколько PEP'ов, которые можно почитать: PEP 343 (with), PEP 557 (dataclasses). Все можно найти на PEP 0.
#урок
Python Enhancement Proposals — предложения по улучшению Python. Самый лучший источник знаний по этому языку.
Здесь описываются не только предложения, как улучшить Python, но и как сам по себе работает этот язык.
Самым популярным представителем PEP является PEP 8 — правила по оформлению кода, написанного на Python.
Вот ещё несколько PEP'ов, которые можно почитать: PEP 343 (with), PEP 557 (dataclasses). Все можно найти на PEP 0.
#урок