#python python... PYTHON 🔛 🚀
11 subscribers
912 photos
7 videos
158 files
1.54K links
Download Telegram
🦕🧑🏻‍🌾 Курс по Django 3

▪️1. Что такое Django. Курс по изучению Django 3
▪️2. Установка django 3. How install django 3
▪️3. Введение в командную строку. Начало работы с терминалом Django
▪️4. Создание проекта на Django.
Django start project
▪️5. Состав проекта Django
▪️6. Запускаем локальный сервер разработки Django. Run server django

📺 Просмотр
#python
Стандартная_библиотека_Python_3_Справочник_с_примерами.pdf
47 MB
📙 Даг Хеллман «Стандартная библиотека Python 3. Справочник с примерами»

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

Каждому модулю посвящен отдельный раздел, содержащий ссылки на дополнительные ресурсы, что делает эту книгу идеальным учебным и справочным руководством.
#python
📊📝Шпаргалка по Pandas

Эта библиотека для анализа данных прекрасно себя зарекомендовала в Data Science.

Такая шпаргалка поможет в построении различных диаграмм с использованием pandas.

#python
🔁🔄 Фишки и лайфхаки для циклов

Python является одновременно традиционным и нетрадиционным, когда речь идет о синтаксисе циклов.
В этом языке нет традиционной структуры for(init; condition; incrment) из трех частей, и потому циклы тут выглядят проще.

Тем не менее, написать хороший цикл – не всегда простая задача, но есть несколько фишек и лайфхаков, о которых надо знать.
#python
🅾️🆖 Про О-нотацию

Про логарифмическую сложность, квадратичную, экспоненциальную и другие типы.

🟢 Сложность O(n log n)

Фактически, все эффективные алгоритмы сортировки представляют собой O(n log n) сложность: сортировка слиянием (merge), пирамидальная сортировка (heap), быстрая сортировка, а еще Timsort (изобретенный Тимом Питерсом алгоритм, который используется методом sort() в Python).

Например, отсортировать n книг в алфавитном порядке, как раз, представляет O(n log n) сложность.

🔵 Сложность O(n^2)

Если требуется найти повторяющиеся книги на несортированной полке, это уже квадратичная сложность. Например, на полке стоят 100 несортированных книг, мы берем одну и ищем дубли среди остальных 99, потом берём другую и снова проверяем оставшиеся. Очень затратно: проверка 100 книг займёт 100 × 100, или 10 000 шагов, причем проверка 200 займёт уже 40 000 шагов - в четыре раза больше.

В реальном мире, именно для этого нам необходимо знание BIG O. Чтобы не писать алгоритм O(n^2), когда можно было написать O(n log n) или O(n).

Итак, остались те, чьи имена нельзя произносить: экспоненциальная O(2^n) и факториальная сложность O(n!).

🟣 Сложность O(2^n)

Допустим, на полке 2 книги, и мы будем собирать все возможные комбинации книг: первая комбинация - пустая полка, вторая - книга A, третья - книга B и последняя - обе книги на полке. Для 3 книг получим уже 8 комбинаций. Так вот, это - экспоненциальный алгоритм. Причем, обратите внимание, нас интересуют не перестановки, а только комбинации.

🔴 Сложность O(n!)

Перестановки, как раз, будут отвечать за факториальную сложность: если у нас на полке 3 книги, все варианты перестановок - 3!.

И оба этих алгоритма крайне плохо масштабируются: даже для малых n они быстро становятся невыполнимыми за разумное время.

💡 Наконец переходим от теории к практике!

Что из себя представляет каждый из алгоритмов мы рассмотрели, практически, под лупой. Мы также понимаем, как увеличение входных данных (количества книг) повлияет на каждый из них. Давайте скорее посмотрим как это применить к настоящему коду, а не книгам.

Грубо говоря, существует несколько «контрольных» точек, которые могут нам помочь определить большую О. Учитывая, что n - это размер входных данных, можно сказать:

1. Если код не оперирует входными данными, это O(1).

2. Если код итерируется по данным, это O(n).

3. Два вложенных цикла, каждый из которых проходит по входным данным, дают сложность O(n^2).

4. Простой вызов функции не считается отдельным шагом, считаем только шаги внутри функции.

5. Если в коде есть конструкция «разделяй и властвуй», это O(log n).

6. Если «разделяй и властвуй» выполняется для каждого элемента во входных данных, это O(nlog n).

7. Если код проходит по каждой возможной комбинации значений в n данных, это O(2^n) или другая экспоненциальная сложность (3^n, 4^n…).

8. Если рассматриваются все возможные перестановки значений в данных, это O(n!).

9. Если код предполагает сортировку данных, это будет как минимум O(nlog n).

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

Уже зная некоторые флаги, как вы думаете, какая сложность у этих методов python?

- .append()
- .insert()
- .remove()
- .sort()
- цикл for

#python
🌀🅾️ Абстракция в ООП

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

Абстрагирование – это способ выделить набор значимых характеристик объекта, исключая из рассмотрения незначимые. Соответственно, абстракция – это набор всех таких характеристик.

Если бы для моделирования поведения автомобиля приходилось учитывать химический состав краски кузова и удельную теплоёмкость лампочки подсветки номеров, мы никогда бы не узнали, что такое NFS.

#python
🎊🎐 Скрытые сокровища Python - трюки

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

👆🏻Читать
#python
⚙️🪬Управление производительностью с Python 3.12

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

В данной статье демонстрируется, как это помогает сократить выполнение скрипта с 36 секунд до 0,8!

👆🏻Читать
#python
♑️⤵️ Наследование в ООП

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

Нам необходимо выпустить целый модельный ряд автомобилей: седан, универсал и малолитражный хэтч-бэк.
Очевидно, что мы не собираемся проектировать новый автомобиль с нуля, а, взяв за основу предыдущее поколение, внесём ряд конструктивных изменений.
Например, добавим гидроусилитель руля и уменьшим зазоры между крыльями и крышкой капота, поставим противотуманные фонари.
Кроме того, в каждой модели будет изменена форма кузова.

#python
🆑5️⃣ Осваиваем классы за 5 минут

Почти все в Python является классом.
Класс — это тип, описывающий устройство объектов: как бы логическая группа атрибутов и функций, которые используются для одного и того же вида данных.
#python
🧩 Шпаргалка по функции product

Функция product() модуля itertools возвращает декартово произведение входных итерируемых последовательностей *iterables.

Функция itertools.product() примерно эквивалентно вложенным циклам for .. in .. в выражении генератора.
Например выражение product(A, B) возвращает то же, что и выражение-генератор ((x,y) for x in A for y in B).

#python
Forwarded from HABR FEED + OPENNET
Как избежать проблем при запуске MVP #habr
https://habr.com/ru/post/720896/
Tags: Блог компании AGIMA, Разработка веб-сайтов, Python, Разработка мобильных приложений, Тестирование веб-сервисов, mvp, sso, логирование, автотесты, celery, dramatiq
Author: whoosaa
Forwarded from HABR FEED + OPENNET
Data Fusion Contest 2023. Для опыта и не только… Соревнование от ВТБ с призовым фондом в 2 млн рублей #habr
https://habr.com/ru/post/721174/
Tags: Big Data, Python, Информационная безопасность, Искусственный интеллект, Машинное обучение, data science, machine learning, competition, нейросети, чемпионаты, ml
Author: Dmitry_blinov
Forwarded from HABR FEED + OPENNET
5 классных сервисов на основе ИИ (с примерами) #habr
https://habr.com/ru/post/721114/
Tags: Python, Программирование, Облачные сервисы, Искусственный интеллект, подборки, искусственный интеллект, сервисы, ai, text to speech, синтез речи, обработка изображений, подборка сервисов
Author: daniilgorbenko