Библиотека питониста | Python, Django, Flask
40.5K subscribers
2.78K photos
75 videos
51 files
4.36K links
Все самое полезное для питониста в одном канале.

Список наших каналов: https://t.me/proglibrary/9197

Курс по ML: https://cl

Для обратной связи: @proglibrary_feeedback_bot

По рекламе: @proglib_adv
РКН: https://gosuslugi.ru/snet/67b885cbd501cf3b2cdb5b36
Download Telegram
Как использовать строки в Python 3 новичку

Одним из наиболее распространенных типов данных в любом языке программирования является string. Строка представляет собой последовательность символов, которые вы могли бы использовать для представления имен пользователей, сообщений в блогах и любое другое содержание текста в вашем коде. Вы можете создать строку и присвоить ее такой переменной.
my_name  =  "Джонатан Джостар"

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

Вот некоторые общие задачи, которые вы можете выполнять при использовании строк в вашем коде.
Объединение строк — очень распространенная задача. В Python 3 вы можете использовать "+"-оператор для этой цели. Вы можете использовать его несколько раз, чтобы объединить несколько строк.
first_name  =  "Джонатан" 
last_name = "Джостар"

full_name = first_name + "" + last_name
Другая распространенная задача со строками — вставка данных в определенное место в строке. В программировании мы называем эту строку интерполяцией. Вот пример создания отформатированной строки (обратите внимание, что буква f включается непосредственно перед первой двойной кавычкой при определении message-переменной). Если вы хотите вставить данные из вашей программы в строку, вы можете включить их между двумя фигурными скобками — { }.
first_name = "Джонатан"
last_name = "Джостар"
age = 24

message = f"Меня зовут {first_name} {last_name}, и мне {age} лет."
print(message)
Вы также захотите преобразовать строку во все заглавные буквы, используя upper-метод, к примеру, для отображения заголовков. А потом вы захотите перечислить наименования через запятую с помощью метода "split". Или заменить одно слово другим в предложении.
example_string = "am I stoked enough yet?"
example_string = example_string.upper()
print(example_string) # prints "AM I STOKED ENOUGH YET?"

example_string = "We're having kale for dinner! Yay kale!"
example_string = example_string.replace("kale", "tacos")
print(example_string) # prints "We're having tacos for dinner! Yay tacos!"

example_string = "Apples,Oranges,Pears"
groceries = example_string.split(',')

И в заключение, вам захочется конвертировать данные из одного типа в другой.
example_number = 42
converted = str(example_number)
message = "Ответ на главный вопрос жизни, вселенной и всего такого — " + converted

example_string = "2"
converted = int(example_string)
message = f"Два плюс два равно { converted + 2 }"
Укажите все правильный способ использования print.
Anonymous Poll
5%
print 3
5%
print "3"
86%
print (3)
4%
print() * 3
Правильный ответ — print (3).
Объяснение: print является функцией в Python 3
Метрики кода. Почему метрики кода важны?
Метрики кода могут быть получены с помощью инструментов статического анализа кода для определения сложности и нестандартных практик.

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

Проекты с открытым исходным кодом

Radon — это инструмент для получения необработанных метрик на счетчиках линий, метрик цикломатической сложности, метрик Холстеда и метрик ремонтопригодности.

Pylint содержит средства проверки соответствия стиля кода PEP8, дизайна, исключений и многих других инструментов анализа исходного кода.

PyFlakes анализирует исходные файлы на наличие ошибок и сообщает о них.

Pyntch — это статический анализатор кода, который пытается обнаружить ошибки во время выполнения. Он не выполняет проверку стиля кода.

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

Flake8 — это средство обеспечения соблюдения правил в формате кода. Его целью является не сбор метрик, а обеспечение единого стиля во всех ваших программах на Python для максимальной читабельности. Правила для Flask8 все определены в этом списке , который сворачивает зависимости Flake8 от pycodestyle, pyflakes и McCabe.

Black — это средство форматирования кода Python с сильными, бескомпромиссными предположениями о том, как ваш код должен быть отформатирован.

Dlint является носителем для безопасного кодирования.

pylintdb помещает результаты pylint в базу данных SQLite для программного доступа и поиска. Нед Бэтчелдер написал его и написал о том, как он использует программу в этом инструменте командной строки размером с кусочек: сообщение pylintdb .

Flask8-eradicate ( исходный код ) — это плагин Flask8 для определения мертвого кода.

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

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

webhint, ранее Sonarwhal, сканирует ваш сайт на предмет доступности, скорости и безопасности. Существует как онлайн-версия, на которую вы можете указать произвольный URL, так и версия для командной строки для запуска самостоятельно.

Codecov подключается к GitHub, BitBucket или GitLab и сообщает о покрытии кода в ваших хранилищах кода.
Питонический паттерн проектирования
Питонический подход — проектирование классов исключительно с позиционными аргументами, без именованных. Затем легко хранить аргументы в виде кортежа, который предоставляется отдельно от самого класса. Это знакомый подход класса стандартной библиотеки Thread, который запрашивает вызываемый target= отдельно от передаваемых args=(...). Вот наши пункты меню:
menu = {
'whole note': (Note, (1,)),
'half note': (Note, (2,)),
'quarter note': (Note, (4,)),
'sharp': (Sharp, ()),
'flat': (Flat, ()),
}
В качестве альтернативы, каждый класс и аргументы располагайте в одном кортеже:
menu = {
'whole note': (Note, 1),
'half note': (Note, 2),
'quarter note': (Note, 4),
'sharp': (Sharp,),
'flat': (Flat,),
}
Затем структура будет вызывать каждый объект с использованием некоторой вариации tup[0](*tup[1:]).

Однако, возможно, классу потребуются не только позиционные аргументы, но и именованные. В ответ на это предоставьте простые вызываемые объекты, используя лямбда-выражения для классов, которые требуют аргументов:
menu = {
'whole note': lambda: Note(fraction=1),
'half note': lambda: Note(fraction=2),
'quarter note': lambda: Note(fraction=4),
'sharp': Sharp,
'flat': Flat,
}
Хотя лямбда-выражения не поддерживают быструю интроспекцию для проверки, они хорошо работают, если структура только вызывает их.
👍1
This media is not supported in your browser
VIEW IN TELEGRAM
Управление зависимостями Python и упаковка стали проще!
poetry помогает объявлять, управлять и устанавливать зависимости проектов Python, гарантируя правильный стек везде.
Python Tricks (2017)
Автор: Dan Bader

#python #book #en

Язык: English.

Целевая аудитория: для начинающих и опытных разработчиков.

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

В книге рассматриваются следующие темы:
✔️ шаблоны для чистого Python;
✔️ эффективные функции;
✔️ классы и ООП;
✔️ общие структуры данных в Python;
✔️ циклы и итерации и многое другое.

Преимущества:
помогает перейти на следующий уровень;
краткое резюме после каждого раздела;
простые и практичные предложения.

Недостатки:
не обнаружено.
Sentry: кроссплатформенный мониторинг приложений
Sentry — это платформа мониторинга приложений с открытым исходным кодом, которая помогает отслеживать и устранять сбои в режиме реального времени. Сам сервер написан на Python, но содержит полный API для отправки событий с любого языка, в любом приложении.

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

С чего можно начать?
Для начала могут пригодиться некоторые из этих ссылок:
Начало работы с Sentry.
Служба поддержки.
Самостоятельная установка.
С 18 по 20 ноября в 20:00 пройдёт бесплатный интенсив по Python.

Регистрация уже началась: https://clc.to/xu2W8g

🐍 За три дня ты создашь программу для обмена быстрыми сообщениями и освоишь востребованный среди работодателей язык программирования!

Количество бесплатных мест ограниченно!

🎈 За участие ты получишь подарки от компаний Skillbox и EnglishDom.
Pythran: как заставить работать код Python со скоростью С++
Инструменты Python многогранны, и с их помощью "змеиный язык" можно легко разогнать до скорости С++. Пример можно глянуть на сайте.

Python – высокоуровневый универсальный язык, который почти так же легко читать и писать, как псевдокод. Но его главная проблема — низкая производительность. Это становится особенно проблематичным при работе с большими многомерными массивами. Решением стала библиотека NumPy, которая вместо стандартных объектов Python использует оптимизированные алгоритмические решения.

Pythran преобразует функции Python в нативный код. Библиотека берёт Python-модуль, аннотированный небольшим интерфейсным описанием, и превращает его в нативный модуль с тем же интерфейсом, но более быстрым. Pythran предназначен для эффективной компиляции программ с использованием нескольких ядер и SIMD-инструкций. Пакет поддерживает как вторую, так и третью версии Python, работает на Windows, Linux и macOS.
Джейкоб Каплан-Мосс: среда разработки Python, 2020 изд.
Ведущий разработчик Django Джейкоб Каплан-Мосс поделился различными настройками среды разработки Python.

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

2. pipx
Почему? pipx позволяет установить основанный на Python интерфейс CLI (youtube-dl, awscli, doc2dash и т. д.), чтобы зависимости этих проектов не испортили глобальный Python.

3. Poetry
Почему? Poetry обрабатывает управление зависимостями и виртуальной средой очень интуитивно и идеально подходит для желаемого рабочего процесса.
Визуализация данных в Python вместе с plotly
Пакет plotly — библиотека с открытым исходным кодом, построенная на plotly.js, которая, в свою очередь, базируется на d3.js. Plotly — это графическая компания, производящая несколько продуктов и инструментов с открытым исходным кодом. Библиотека бесплатна для использования и позволяет создавать неограниченное количество графиков в автономном режиме, а также до 25 диаграмм онлайн.

Красочное интерактивное отображение датасета в одну строку с plotly не проблема! Эта статья может помочь разобраться с построением интерактивных графиков и диаграмм.
Python обгоняет Java на GitHub
GitHub сообщает, что JavaScript, Python и Java — самые популярные языки, используемые разработчиками на своем сайте совместного использования кода.

Python стал вторым по популярности языком в GitHub, впервые обогнав Java и уступив лишь JavaScript, согласно отчету GitHub State of Octoverse за 2019 год об использовании популярного сайта для совместного использования кода.

По мнению GitHub, рост Python стимулирует использование профессионалами в области данных и любителями. Рейтинги были основаны на количестве уникальных участников публичных и частных репо, помеченных соответствующим основным языком.
Паттерн «Компоновщик»
Паттерн «Компоновщик» предполагает, что при разработке «контейнерных» объектов, которые собирают и упорядочивают «объекты содержимого», вы упрощаете операции, если предоставляете контейнерам и объектам содержимого общий набор методов. И тем самым поддерживаете максимум возможных методов при том, что вызывающему неважно, переданы отдельный объект контента или целый контейнер.

Реализация: наследовать или нет?
Преимущества симметрии, которую создаёт этот паттерн между контейнерами и их содержимым, увеличиваются, только если симметрия делает объекты взаимозаменяемыми. Но здесь некоторые статически типизированные языки встречают препятствие.

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

В других статических языках ограничение мягче. Нет строгой необходимости в том, чтобы контейнер и его содержимое делились реализацией. Пока оба соответствуют «интерфейсу», который объявляет конкретные общие методы, объекты вызываются симметрично.

Так как это программирование на Python, оба ограничения испаряются! Пишите код в предпочтительном для себя диапазоне безопасности и краткости. Хотите, пойдите классическим путём и добавьте общий суперкласс:
class Widget(object):
def children(self):
return []

class Frame(Widget):
def __init__(self, child_widgets):
self.child_widgets = child_widgets

def children(self):
return self.child_widgets

class Label(Widget):
def __init__(self, text):
self.text = text
Или задайте объектам один и тот же интерфейс. И положитесь на тесты, которые помогут поддерживать симметрию между контейнерами и содержимым. (Где для простейших скриптов ваш «тест» может быть фактом выполнения кода.)
class Frame(object):
def __init__(self, child_widgets):
self.child_widgets = child_widgets

def children(self):
return self.child_widgets

class Label(object):
def __init__(self, text):
self.text = text

def children(self):
return []
Bourne-Again SHell почти всегда называют просто «Bash». Он интерпретирует и выполняет входной ввод из источника, такого как пользователь или программа. Bash является реализацией концепции оболочки и часто используется при разработке программного обеспечения Python как часть среды разработки для программиста.

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

Продвижение в оболочке Bash охватывает такие важные моменты, как синтаксис, команды и др.

Мастеринг Bash и Terminal показывает методы для повторения команд, изменения каталогов и обработки фоновых процессов.

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

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

101 команда Bash и советы начинающим для экспертов — это хорошо продуманный список хитростей, которые нужно изучить.

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

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

Bash Бесконечность Framework исходный код обеспечивает шаблонный и стандартную библиотеку проектов Bash, чтобы было легче читать и поддерживать. Если вы когда-либо пытались читать чужие скрипты Bash или даже свои собственные после того, как откладывали их на пару месяцев, вы знаете, что все, что улучшает читабельность, является важным шагом по сравнению с ванильным Bash.

Статический статус — это приложение Bash, которое генерирует настраиваемую страницу состояния для ваших сервисов.

Замена сценариев Bash на Python — это руководство по использованию Python для административных сценариев, включая действия по замене бесценных инструментов командной строки, таких как awk, sed и grep.

Использование псевдонимов для ускорения вашего рабочего процесса Git имеет несколько псевдонимов оболочки, которые упрощают выполнение сложных или необычных команд Git .

Создание сценария завершения bash — это отличный учебник, в котором рассказывается о достаточно сложном сценарии Bash для выполнения синтаксиса в других сценариях оболочки Bash.

6 советов, прежде чем писать следующий Bash Cronjob охватывает запуск ваших сценариев с помощью shebang, перенаправление вывода, тайм-ауты и привилегии sudo.

Улучшенная история Bash показывает, как сделать вашу историю Bash более полезной, храня в ней больше предыдущих команд (что занимает более постоянное хранилище, но не очень много в 2019 году) и добавляя временные метки к historyкоманде.
Ищите работу анонимно и сами решайте, какая компания может с вами связаться👽

Теперь это можно делать на Арене. Это сервис, который отличается от обычных сайтов с вакансиями → https://clck.ru/K2XHG

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

Здесь разработчики:

👀 анонимно ищут работу;

⭐️ составляют список ожиданий от компании и вакансии, а каждый рекрутер отмечает, чему компания может соответствовать;

🛠 решают кодинг-задачи, и добавляют их в резюме пока доступны только JS, Python, Ruby задачки;

🔑 отклоняют вакансии, которые им неинтересны.

На платформе уже много крутых вакансий от ДомКлик, Alfred, Sailpay, Inplat Tech, Admitad и не только. Все вакансии ребята проверяют и модерируют 🙂

Потестировать, зарегаться можно тут → https://clck.ru/K2XHG
SQL Explorer: простота, ненавязчивость, стабильность

SQL Explorer — неплохое приложение на основе Django, которое стремится сделать обмен данными между людьми быстрым и простым. Его можно добавить на существующий сайт Django или использовать как самостоятельный инструмент бизнес-аналитики.

Быстрое написание и совместное использование SQL-запросов в простом и удобном редакторе SQL, предварительный просмотр результатов в браузере, обмен ссылками, загрузка файлов CSV, JSON или Excel (и даже предоставление запросов в качестве конечных точек API, если это необходимо) и поддержание непрерывности потока информации.
8 навыков, которыми должен овладеть новичок, чтобы стать хорошим разработчиком Python
Каковы необходимые технические способности и навыки работы с программным обеспечением на Python?

Python
Совершенно очевидно, что Python — это основной язык, который вы собираетесь использовать на работе, чтобы работать над проектом.

Фреймворки Python
Знание Python-фреймворков является обязательным, однако это не означает, что Python-разработчик должен знать их все. В зависимости от проекта, вас могут попросить узнать о том или ином, но чаще всего используются Django, Flask и CherryPy.

Знакомство с библиотеками ORM
Использование и подключение приложения с помощью ORM (Object Relational Mapper), такого как SQLAlchemy, Django ORM и т.д.

Базовое понимание интерфейсных технологий (HTML5, CSS3, JavaScript)
Очень часто разработчик Python должен сотрудничать с командой внешнего интерфейса для согласования стороны сервера и стороны клиента. Таким образом, важно, чтобы вы понимали, как работает интерфейс, что возможно, а что нет, как будет выглядеть приложение.

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

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

ИИ и машинное обучение
Это будет огромным плюсом для вас, если вы знаете, о чем идет речь.

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