#python python... PYTHON 🔛 🚀
11 subscribers
914 photos
7 videos
158 files
1.54K links
Download Telegram
Supercharged Python: Take Your Code to the Next Level (2019)
Авторы: Brian Overland, John Bennett
Количество страниц: 672

Книга написана для людей, которые знают основы Python и хотят поднять свои навыки на новый уровень. Автор рассказывает о способах, позволяющих писать более быстрый и мощный код, независимо от того, работаете ли вы с большими массивами данных или создаёте сложные приложения.

Скачать книгу
Forwarded from Python Academy
Удаление префиксов и суффиксов

По какой-то неизведанной причине многие разработчики посчитали эту фичу в обновлении 3.9 не очень интересной и попросту забыли. И зря.

Некоторые на полном серьезе для таких целей до сих пор пытаются использовать забагованные .strip и .lsrtip. Точнее, большинство просто не до конца понимают, как работают эти два метода.

И всё же, в Python 3.9 были добавлены методы для строк .removeprefix и .removesuffix, предназначенные специально для удаления префиксов и суффиксов в строках.

#строки
7 вопросов с собеседований по Python, на которые необходимо знать ответ.

https://proglib.io/w/95cd61c9
Forwarded from 🇻 🇱 🇦 🇩
Привет, прям такие митапы регулярные не знаю, но я думал в инете есть достаточно информации на этот счет
Forwarded from 🇻 🇱 🇦 🇩
Я давно вот эту книгу читал
Работа в хорошем редакторе способствует созданию здорового проекта, хорошие редакторы всячески помагают разработчику, а плохие либо не помагают , либо вовсе препятствуют разработке.

Вот лучшие редакторы для python-разработчиков по мнению опытных питонистов...🚀
1. PyCharm

2. Spyder

3. SublimeText

4. Jupyter

5. Atom

6. Python IDLE

7. VSCode

8. Wing

9. Thonny

10. PyDev

Приятный глазу UI в соответствии с сильной функциональностью является несущим звеном каждого успешного проекта.
Forwarded from Python Academy
Именованные кортежи

Кортежи tuple, по своей сути, являются неизменяемыми списками. Структура данных удобная, но мы можем получать данные, используя только числовые индексы.

Нет возможности дать имена отдельным элементам, сохранённым в кортеже. Это может повлиять на читаемость кода. И в таком случае используют именованные кортежи namedtuple из collections.

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

#namedtuple
Forwarded from Python Academy
Упрощение создания операторов сравнения

Для создания объектов с поддержкой операторов сравнения в классе обычно требуется реализовать большое количество магических методов, а именно – __lt__, __le__, __eq__, __ne__, __gt__, __ge__.

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

В таком случае достаточно реализовать в классе только __lt__ и __eq__. Эти два метода являются минимумом, который нужен декоратору для конструирования остальных методов.

#классы
Forwarded from Python Academy
Первые шаги в Python

Специально для начинающих сделали универсальную подборку ресурсов для изучения Python с полного нуля.

Подборка включает в себя бесплатные онлайн-курсы, книги, YouTube каналы, сайты для практики и другое.

Читать 2 минуты

#статья
Forwarded from Python Academy
Перегрузка операторов сравнения

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

Например, под капотом записи a < b вызывается a.__lt__(b). Для каждого оператора сравнения существует свой магический метод. Подробнее про то, какой метод за какой оператор отвечает, выше в коде.

Писать все шесть методов получается слегка громоздко, поэтому зачастую используют декоратор total_ordering из functools. Про него, кстати, недавно писали пост.

#классы
​​👉Использование кортежей в Python🐍

Кортеж - это упорядоченная и неизменяемая коллекция. В python кортежи записываются в круглые скобки.
Пример:
this_tuple = ("apple", "banana", "cherry")
print (this_tuple)
#>>> ('apple', 'banana', 'cherry')

Доступ к элементам кортежа
Вы получаете доступ к элементам кортежа, ссылаясь на номер индекса в квадратных скобках
Пример:
this_tuple = ("apple", "banana", "cherry")
print (this_tuple[1])
print (this_tuple[0])
print (this_tuple[2])

#>>>banana
#>>>apple
#>>>cherry

Отрицательная индексация

Отрицательная индексация означает начало с конца, -1 относится к последнему элементу, -2 относится ко второму последнему элементу и т. д.
Пример:
this_tuple = ("apple", "banana", "cherry")
print (this_tuple[-1])
print (this_tuple[-2])
print (this_tuple[-3])

#>>>cherry
#>>>banana
#>>>apple

Диапазон индексов

Вы можете указать диапазон индексов, указав, где начать и где закончить диапазон.
При указании диапазона возвращаемое значение будет новым кортежем с указанными элементами.
Пример:
this_tuple = ("apple", "banana", "cherry", "mango")
print (this_tuple[1:3])
print (this_tuple[0:2])
print (this_tuple[0:1])

#>>('banana', 'cherry')
#>>>('apple', banana')
#>>>('apple')

Изменить значения кортежа

Как только кортеж создан, он не может изменить свои значения. Кортежи неизменяемы или являются immutable как это еще называется.
Но есть обходной путь. Вы можете преобразовать указатель в список, изменить список и преобразовать список обратно в кортеж.
Пример:
x = ("apple", "banana", "cherry")
y = list(x)
y[1] = "kiwi"
x = tuple(y)
print (x)

#>>>('apple', 'kiwi', 'cherry')
​​🧐Почему Python хорош для веб-разработки?💡

Несмотря на то что в современном Вебе можно фактически без бэкенда — чисто на фронтенд-технологиях, на JavaScript — собрать себе single page application или progressive web application, все равно это слишком сложно, плохо индексируется и требует крутых разработчиков.Если мы хотим сделать сайт или сервис, мы используем комбинированный подход: у нас какой-то бэкенд осуществляет логику и создает веб-страницы и какой-то фронтенд рисует эти веб-страницы в браузере. И когда нам надо быстро это все на чем-то собрать, то выбора особо нет.

🤔Возможные варианты.

C#. Microsoft действительно молодцы, они сделали .NET Core и всячески ее продвигают. Но, во-первых, это новая кроссплатформенная технология, и там еще не все гладко. Во-вторых, это действительно дорого, разработчиков C# мало — просто потому, что она непопулярна.

Java. Это сложно. Сделать нормальный сайт на Java — это не 10 строчек кода, как на Python. Это много кода, это фреймворки, и нужно знать специфику настройки Java-серверов. В общем, сплошные боль и страдания.

PHP. В последних версиях он замечательный, но нельзя просто так взять и использовать PHP 7.2. Если обычный, не топовый разработчик делает сайт на PHP, он не будет писать только на 7.2: все равно придется читать какие-то учебники, туториалы, везде куча legacy-кода, и это не очень хорошо.

JavaScript и Node.js. Это замечательно и очень современно, когда один язык и на фронтенде, и на бэкенде. Только не очень стабильно. Node.js — хорошая штука, но проблематично развернуть ее в продакшене так, чтобы она не падала и работала устойчиво. Плюс, если мы хотим писать качественный код на JavaScript, нам нужен не JavaScript, а TypeScript. А вот TypeScript неожиданно сложный, при виде него у рядового разработчика вскипают мозги.

А вот преимущества python в веб разработке перед главным конкурентом PHP.

1. Продуманный дизайн
2. В простоте обучения Python выигрывает
3. Улучшенная структура
4. Python более читабельный стек
5. Синтаксис намного проще, чем PHP
6. Более простые и легкодоступные инструменты Инструменты отладки
7. Явный победитель в управлении пакетами
8. Лямбды, предоставляемые Python, дают преимущество перед PHР
9. Python более универсален, чем PHP
10. Огромная поддержка и сообщество

Что входит в базис для веб-разработки на Python
📄Веб-фреймворки Django, Flask, aiohttp, Tornado и т. д. (и знать о существовании остальных).

📄Протоколы и API: в первую очередь http, JSON-RPC, Protocol Buffers, gRPC.

📄ORM и миграции, реляционные базы данных, SQLAlchemy, SQL, PostgreSQL, MySQL.

📄Основы HTML, CSS, Bootstrap, а также JS-фреймворки и JQuery.

📄Принципы работы приложений на продакшене, тестирование, юнит-тесты, автотесты, системы контроля версий, git.
​​📄Топ проектов которые украсят и добавят ценности в ваше портфолио python-разработчика.🚀

1. Aгрегатор контента - Агрегатор контента - это физическое лицо или организация, которые собирают веб-контент (и / или иногда приложения) из различных онлайн-источников для повторного использования или перепродажи. Есть два типа агрегаторов контента: (1) те, которые просто собирают материалы из различных источников для своих веб-сайтов, и (2) те, которые собирают и распространяют контент в соответствии с потребностями своих клиентов.

2. Сокращатель URL - Сокращение URL-адресов - это метод во всемирной паутине, в котором унифицированный указатель ресурса (URL) может быть существенно короче и по-прежнему направлен на требуемую страницу. Это достигается с помощью перенаправления, которое ведет на веб-страницу с длинным URL-адресом.

3. Решатель Судоку - Стандартный судоку содержит 81 ячейку в сетке 9 × 9 и 9 прямоугольников, каждое из которых является пересечением первых, средних или последних 3 строк, а также первых, средних или последних 3 столбцов.
Существует несколько компьютерных алгоритмов, которые решают большинство головоломок 9 × 9 (n = 9) за доли секунды, но комбинаторный взрыв происходит при увеличении n, ограничивая свойства судоку, которые можно построить, проанализировать и решить как n увеличивается.

4. Приложение для уведомлений на рабочем столе - Уведомление на рабочем столе - это простое приложение, которое выдает уведомление в форме всплывающего сообщения на рабочем столе.

5. Файловый менеджер - компьютерная программа, предоставляющая интерфейс пользователя для работы с файловой системой и файлами. Файловый менеджер позволяет выполнять наиболее частые операции удаления над файлами - создание, открытие / воспроизведение / просмотр, редактирование, изменение, переименование, копирование, изменение атрибутов и свойств, файлов и назначение прав.

⚠️Именно проекты таких типов работодатели ценят в портфолио разработчиков, а наличие этих проектов в списке реализованных, даст вам весомые преимущества перед другими кандидатами.
​​🚀Для чего нужна библиотека Pytest?!.💡
- Pytest: помогает писать лучшие программы

Инфраструктура pytest упрощает написание небольших тестов, но при этом масштабируется для поддержки сложного функционального тестирования приложений и библиотек.


📊Функции.
    - Подробная информация о неудачных утверждениях assert (не нужно запоминать имена self.assert *)

   -  Автоматическое обнаружение тестовых модулей и функций

   - Модульные приспособления для управления небольшими или параметризованными долгоживущими тестовыми ресурсами

   -  Может запускать модульные тесты (включая пробные) и тесты носа из коробки

  -   Python 3.6+ и PyPy 3

  -  Богатая архитектура плагинов, более 315+ внешних плагинов и процветающее сообщество

📖Документация
Полную документацию, включая установку, руководства и PDF-документы, см. В разделе «Содержание».

Ошибки / запросы
Используйте трекер проблем GitHub, чтобы отправлять сообщения об ошибках или запрашивать функции.

🕔Журнал изменений
Обратитесь к странице журнала изменений для исправлений и улучшений каждой версии.

Поддержка pytest
Open Collective - это онлайн-платформа для финансирования открытых и прозрачных сообществ. Он предоставляет инструменты для сбора денег и полной прозрачности делиться своими финансами.

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

Подробности смотрите в коллективе pytest.
pytest для предприятия

Доступно как часть подписки Tidelift.

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

🔓Безопасность
pytest никогда не был связан с уязвимостью безопасности, но в любом случае, чтобы сообщить об уязвимости безопасности, используйте контактное лицо по безопасности Tidelift. Tidelift будет координировать исправление и раскрытие информации.
Лицензия

Авторское право Holger Krekel и др., 2004-2020.

Распространяемый по условиям лицензии MIT, pytest является бесплатным программным обеспечением с открытым исходным кодом.