Forwarded from Типичный программист
This media is not supported in your browser
VIEW IN TELEGRAM
😁23👍4🔥2
В Matplotlib добавили темные темы
Прямиком из опенсорсной библиотеки научных цветов (да, и такие существуют) от Фабио Крамери создатели Matplotlib взяли темные темы managua, berlin и vanimo ради полноценности коллекции colormaps. Для тех, кто заинтересовался аргументацией такого выбора, есть статья Крамери, в которой он объясняет, почему именно такие «сдержанные» сочетания уместны.
Глядишь, доживем, канвасы Matplotlib станут красивыми.
Подробнее
#основы
@zen_of_python
Прямиком из опенсорсной библиотеки научных цветов (да, и такие существуют) от Фабио Крамери создатели Matplotlib взяли темные темы managua, berlin и vanimo ради полноценности коллекции colormaps. Для тех, кто заинтересовался аргументацией такого выбора, есть статья Крамери, в которой он объясняет, почему именно такие «сдержанные» сочетания уместны.
Глядишь, доживем, канвасы Matplotlib станут красивыми.
Подробнее
#основы
@zen_of_python
👍6❤2☃1
Forwarded from Django Unleashed Framework
Регистрация пользователей с верификацией по OTP
В статье описан процесс настройки регистрации пользователей с верификацией по одноразовому паролю (OTP) в Django. Читатели узнают, как создать приложение пользователя, настроить сериализаторы и конечные точки для процесса регистрации и активации аккаунта через OTP на электронную почту.
Подробности: https://captain0205.hashnode.dev/user-registration-with-otp-verification
#en
@django_prog | Другие наши каналы
В статье описан процесс настройки регистрации пользователей с верификацией по одноразовому паролю (OTP) в Django. Читатели узнают, как создать приложение пользователя, настроить сериализаторы и конечные точки для процесса регистрации и активации аккаунта через OTP на электронную почту.
Подробности: https://captain0205.hashnode.dev/user-registration-with-otp-verification
#en
@django_prog | Другие наши каналы
pyproject.toml | Лучшие практики
Годный лонгрид про файл конфигурации, который приходит на смену requirements.txt и setup.py, начиная с Python 3.6+. Если вкратце, это решает «проблему курицы и яйца» (setup.py не может выполняться без знания своих зависимостей, но при этом он предназначен для определения этих зависимостей).
Отлично подойдет новичкам, которые хотят научиться указывать продакшн-зависимости и те, что нужны в рамках разработки (см. extras).
🗿 — использую requirements.txt
⚡ — использую pyproject.toml
🌭 — мне не актуально
@zen_of_python
Годный лонгрид про файл конфигурации, который приходит на смену requirements.txt и setup.py, начиная с Python 3.6+. Если вкратце, это решает «проблему курицы и яйца» (setup.py не может выполняться без знания своих зависимостей, но при этом он предназначен для определения этих зависимостей).
Отлично подойдет новичкам, которые хотят научиться указывать продакшн-зависимости и те, что нужны в рамках разработки (см. extras).
🗿 — использую requirements.txt
⚡ — использую pyproject.toml
🌭 — мне не актуально
@zen_of_python
🗿40⚡34🌭1
This media is not supported in your browser
VIEW IN TELEGRAM
marimo | Еще более интерактивный ноутбук.ipynb
Интересная надстройка над привычными ноутбуками.ipynb, позволяющая запускать ваши проекты как веб-приложения. Похоже на Streamlit, но со своими фишками. На видео, к примеру, визуализируется эмбеддинг. Проект набрал 7К+ звезд на GitHub, а это что-то да значит.
Тот случай, когда радуешься непустому разделу Issues на GH, ведь это значит, что такой непростой проект все же поддерживается.
Цена: бесплатно
Репозиторий проекта
#инструменты
@zen_of_python
Интересная надстройка над привычными ноутбуками.ipynb, позволяющая запускать ваши проекты как веб-приложения. Похоже на Streamlit, но со своими фишками. На видео, к примеру, визуализируется эмбеддинг. Проект набрал 7К+ звезд на GitHub, а это что-то да значит.
Тот случай, когда радуешься непустому разделу Issues на GH, ведь это значит, что такой непростой проект все же поддерживается.
Цена: бесплатно
Репозиторий проекта
#инструменты
@zen_of_python
Какое утверждение о протоколах в Python верное?
Anonymous Quiz
8%
1. Протоколы всегда требуют использования абстрактных классов.
13%
2. Протоколы предоставляют строгую типизацию и не допускают динамическую типизацию.
65%
3. Протоколы используются для описания интерфейсов с необходимыми методами.
14%
4. Протоколы являются устаревшей функциональностью и не нужны в современных проектах.
Простыми словами: протоколы в Python
Python – это язык с динамической типизацией. Но что это значит на практике? Это означает, что тип переменной определяется в момент присвоения ей значения. Эта гибкость порождает риски появления ошибок, связанных с несовпадением типов переменных и параметров функций.
Например, рассмотрим простую функцию:
Здесь a и b могут быть любыми типами, что увеличивает вероятность ошибок. Для устранения подобных проблем можно использовать аннотации типов:
Теперь функция ясно указывает, что аргументы должны быть целыми числами. Для проверки кода можно использовать статический анализатор mypy, который выявляет потенциальные ошибки на этапе анализа программного кода.
Тем не менее, использование mypy и аннотаций типов не делает типизацию в Python статической.
Утиная типизация
Существует также утиная типизация, которая утверждает, что функция будет работать с любым типом аргумента, если он имеет необходимые методы. Например:
При этом может возникнуть вопрос, как дать понять mypy, что sender должен иметь метод send? В этом случае используются протоколы.
Протоколы в Python подобны абстрактным классам, но с другой семантикой. Они обеспечивают возможность описания интерфейсов без установки жестких ограничений:
Реализация очень похожа на абстрактный класс (или, как его еще величают, интерфейс), но с другим суперклассом и отсутствием декораторов abstractmethod, abstractproperty и других вспомогательных вещей. Теперь мы можем использовать его как аннотацию типа:
Все, задача выполнена! Теперь и разработчики, и статический анализатор знают, что из себя представляет из себя параметр sender.
#основы
@zen_of_python
Python – это язык с динамической типизацией. Но что это значит на практике? Это означает, что тип переменной определяется в момент присвоения ей значения. Эта гибкость порождает риски появления ошибок, связанных с несовпадением типов переменных и параметров функций.
Например, рассмотрим простую функцию:
def add(a, b):
return a + b
Здесь a и b могут быть любыми типами, что увеличивает вероятность ошибок. Для устранения подобных проблем можно использовать аннотации типов:
def add(a: int, b: int) -> int:
return a + b
Теперь функция ясно указывает, что аргументы должны быть целыми числами. Для проверки кода можно использовать статический анализатор mypy, который выявляет потенциальные ошибки на этапе анализа программного кода.
Тем не менее, использование mypy и аннотаций типов не делает типизацию в Python статической.
Утиная типизация
Существует также утиная типизация, которая утверждает, что функция будет работать с любым типом аргумента, если он имеет необходимые методы. Например:
def send_data(sender, data):
sender.send(data)
При этом может возникнуть вопрос, как дать понять mypy, что sender должен иметь метод send? В этом случае используются протоколы.
Протоколы в Python подобны абстрактным классам, но с другой семантикой. Они обеспечивают возможность описания интерфейсов без установки жестких ограничений:
from typing import Protocol, Mapping, Any
class SenderProtocol(Protocol):
def send(data: Mapping[str, Any]) -> None:
...
Реализация очень похожа на абстрактный класс (или, как его еще величают, интерфейс), но с другим суперклассом и отсутствием декораторов abstractmethod, abstractproperty и других вспомогательных вещей. Теперь мы можем использовать его как аннотацию типа:
def send_data(sender: SenderProtocol, data):
sender.send(data)
Все, задача выполнена! Теперь и разработчики, и статический анализатор знают, что из себя представляет из себя параметр sender.
#основы
@zen_of_python
👍8❤3
Типы объектов в Python
Марк Лутц, «Изучаем Python»: даже сами типы представляют собой объекты; тип объекта является объектом типа type. [...] Практическое применение этого заключается в том, что объекты типов могут использоваться для ручных сравнений типов в операторах
Каждый основной тип имеет встроенное имя, добавленное для поддержки настройки типов через объектно-ориентированное создание производных классов:
Сохраните себе эту диаграмму, её трудно найти, легко потерять и очень легко забыть, хотя она помогает запомнить такие важные для собеседований вопросы как изменяемые / неизменямые типы, виды вызываемых объектов и проч.
#основы
@zen_of_python
Марк Лутц, «Изучаем Python»: даже сами типы представляют собой объекты; тип объекта является объектом типа type. [...] Практическое применение этого заключается в том, что объекты типов могут использоваться для ручных сравнений типов в операторах
if
языка Python. Каждый основной тип имеет встроенное имя, добавленное для поддержки настройки типов через объектно-ориентированное создание производных классов:
dict, list, str, tuple, int, float, complex, bytes, type, set
и т.д.Сохраните себе эту диаграмму, её трудно найти, легко потерять и очень легко забыть, хотя она помогает запомнить такие важные для собеседований вопросы как изменяемые / неизменямые типы, виды вызываемых объектов и проч.
#основы
@zen_of_python
👍2🥰1
This media is not supported in your browser
VIEW IN TELEGRAM
Коллекция py-скриптов обо всем
Автор самобытного британского блога про айтишечку geekcomputers.co.uk опубликовал репозиторий с его личной коллекцией скриптов на Python. Полезно новичкам, потому что хорошо раскомментировано. Плюс заряд эндорфина гарантирован, ведь программы подъёмные и применимые — генератор паролей, пинг-понг, Flappy Bird и многое другое.
Но как это обеспечило ему 31К+ звезд на GitHub — все равно загадка.
Репозиторий проекта
@zen_of_python
Автор самобытного британского блога про айтишечку geekcomputers.co.uk опубликовал репозиторий с его личной коллекцией скриптов на Python. Полезно новичкам, потому что хорошо раскомментировано. Плюс заряд эндорфина гарантирован, ведь программы подъёмные и применимые — генератор паролей, пинг-понг, Flappy Bird и многое другое.
Но как это обеспечило ему 31К+ звезд на GitHub — все равно загадка.
Репозиторий проекта
@zen_of_python
❤4
Самые «успешные» хакеры-воровайки использовали Python
Преступная группировка Carbanak, состоящая из хакеров украинской, литовской и других национальностей использовали Cobalt Strike — фреймворк для этичного хакинга на JavaScript + Python. Подробнее о том, как они наворовали более 1 млрд. долларов, можно узнать в новом подкасте Tproger.
Слушать на Яндекс. Музыке
Смотреть на YouTube
Другие способы слушать подкаст
Не скупитесь на лайки на Яндекс. Музыке, этим вы поможете проекту.
@zen_of_python
Преступная группировка Carbanak, состоящая из хакеров украинской, литовской и других национальностей использовали Cobalt Strike — фреймворк для этичного хакинга на JavaScript + Python. Подробнее о том, как они наворовали более 1 млрд. долларов, можно узнать в новом подкасте Tproger.
Слушать на Яндекс. Музыке
Смотреть на YouTube
Другие способы слушать подкаст
Не скупитесь на лайки на Яндекс. Музыке, этим вы поможете проекту.
@zen_of_python
❤7✍1
Cовременные инструменты форматирования строк: викторина
Небольшой англоязычный квиз на 10 вопросов про f-строки, метод format() и кастомные форматировщики как раз для начинающих. Перед тем, как стартовать, освежите свои познания с помощью гайда с realpython.com.
#основы
@zen_of_python
Небольшой англоязычный квиз на 10 вопросов про f-строки, метод format() и кастомные форматировщики как раз для начинающих. Перед тем, как стартовать, освежите свои познания с помощью гайда с realpython.com.
#основы
@zen_of_python
✍1
Подборка Python-related роадмапов
Уже ставший классическим желтый дизайн roadmap.sh выгодно выделяет этот ресурс среди остальных. Заработавший 297К+ звезд на GitHub репозиторий проекта предлагает, помимо прочих:
— Python
— PostgreSQL
— Docker
— Redis
Репозиторий проекта
@zen_of_python
Уже ставший классическим желтый дизайн roadmap.sh выгодно выделяет этот ресурс среди остальных. Заработавший 297К+ звезд на GitHub репозиторий проекта предлагает, помимо прочих:
— Python
— PostgreSQL
— Docker
— Redis
Репозиторий проекта
@zen_of_python
👍5
10+ пасхальных яиц в Python
Кроме избитого import this и Zen of Python в статье еще интересно про шифр Цезаря и мнение создателя языка при вызове
p.s. На скрине — мнение ван Россума относительно класса («Не для слабонервных»). И в чем он не прав?
@zen_of_python
Кроме избитого import this и Zen of Python в статье еще интересно про шифр Цезаря и мнение создателя языка при вызове
help
.p.s. На скрине — мнение ван Россума относительно класса («Не для слабонервных»). И в чем он не прав?
@zen_of_python
👍3
«Я знаю Python»: российский нейроимплант с ИИ позволил крысе ответить на сотни научных вопросов
Российская биотех-лаборатория Neiry и ученые МГУ разработали нейроимплант с искусственным интеллектом, который позволил крысе отвечать на сотни научных вопросов, включая темы по Python.
«Мы стремимся к тому, чтобы ИИ стал надежным симбиотическим помощником человека», — отметил CEO Neiry Александр Панов.
@neuro_channel
Российская биотех-лаборатория Neiry и ученые МГУ разработали нейроимплант с искусственным интеллектом, который позволил крысе отвечать на сотни научных вопросов, включая темы по Python.
«Мы стремимся к тому, чтобы ИИ стал надежным симбиотическим помощником человека», — отметил CEO Neiry Александр Панов.
@neuro_channel
👍3
А вы любите читать учебники по Python?
Anonymous Poll
38%
Да, но редко
22%
Да, и пользуюсь таким как справочником
37%
Нет, не мое
3%
Другое (напишите в комментариях)
👍2
Zen of Python
❤️ — PyCharm 🔥 — VS Code
Фанатов VSCode обижать нельзя, их слишком много.
Адептам этой IDE от Microsoft полагается такой замечательный гайд по настройке программы. Весьма познавательно про подкапотную ПО, а также годная подборка плагинов для разработки.
Единожды потеряв удобные настройки в IDE, захочется любому создать облачный переносимый профиль.
Адептам этой IDE от Microsoft полагается такой замечательный гайд по настройке программы. Весьма познавательно про подкапотную ПО, а также годная подборка плагинов для разработки.
Единожды потеряв удобные настройки в IDE, захочется любому создать облачный переносимый профиль.
❤12🔥3👎2
This media is not supported in your browser
VIEW IN TELEGRAM
«Баги, которые у тебя не получается отладить, похожи на проблемы с родителями из детства: оба способны привести тебя в дурку» — сказал Фрейд и сел печатать за неработающий компьютер 😂
Сделано с hailuoai.video.
@zen_of_python
Сделано с hailuoai.video.
@zen_of_python
😁24
Графовые алгоритмы | Марк Нидхем, Эми Ходлер
Теория графов — особенно актуальная тема для тех, кто освоился с классическими базами данных и осваивает Apache Spark / Tensorflow / Cassandra.
Свежепереведенная в 2020 году книга под издательством o'Reilly освещает:
— виды графов
— графовые алгоритмы OLTP, OLAP
— алгоритмы поиска по графу
— поиск кратчайшего пути
— алгоритм выделения сообществ
— применение графов в Машинном обучении и проч.
По просьбе подписчика @xcontrast.
Книга на сайте O'Reilly
#продвинуто
Теория графов — особенно актуальная тема для тех, кто освоился с классическими базами данных и осваивает Apache Spark / Tensorflow / Cassandra.
Свежепереведенная в 2020 году книга под издательством o'Reilly освещает:
— виды графов
— графовые алгоритмы OLTP, OLAP
— алгоритмы поиска по графу
— поиск кратчайшего пути
— алгоритм выделения сообществ
— применение графов в Машинном обучении и проч.
По просьбе подписчика @xcontrast.
Книга на сайте O'Reilly
#продвинуто
👍8