Zen of Python
20.1K subscribers
1.17K photos
159 videos
32 files
3.09K links
Полный Дзен Пайтона в одном канале

Разместить рекламу: @tproger_sales_bot

Правила общения: https://tprg.ru/rules

Другие каналы: @tproger_channels

Сайт: https://tprg.ru/site

Регистрация в перечне РКН: https://tprg.ru/xZOL
加入频道
«Если сотрудник начал проситься в отпуск, то проще уже усыпить и завести нового»

Взято из флудильни
Большой каталог шпаргалок на все случаи жизни

Ловите репозиторий, где собраны более 30 шпаргалок на разные темы. Здесь найдут подсказки сетевики, фронтендеры, бэкендеры, линуксоиды и пользователи windows.

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

#шпаргалки
Old but gold: Два простых способа преобразовать файл Python в EXE-файл

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

Здесь вы узнаете, в каких случаях пригодится такое преобразование и как его можно сделать различными способами:

https://www.datacamp.com/tutorial/two-simple-methods-to-convert-a-python-file-to-an-exe-file
Media is too big
VIEW IN TELEGRAM
Разбор паттерна Singleton в Python

Singleton (Одиночка) — это шаблон предоставления глобального доступа к состоянию, который гарантирует, что объект всегда будет один и тот же. Это один из первых паттернов, которые изучают разработчики.

В этом видео вы сможете разобраться в том, как именно он работает и для чего нужен. А также узнаете о Monostate.

#паттерны #singleton #видео
Простыми словами: Структуры данных в Python

Мы немного забежали вперёд и уже разобрали две популярных структуры данных — BST и B-Tree. Но давайте немного откатимся назад и кратко разберём какие вообще структуры данных используются в Python помимо деревьев и чем они отличаются.

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

my_list = [1, 2, 3, "hello", 4.5]


2. Кортежи (Tuples)
Кортежи — это упорядоченные неизменяемые коллекции. После создания их элементы нельзя изменить. Кортежи полезны для хранения объектов, которые не должны изменяться в ходе выполнения программы.

my_tuple = (1, 2, 3, "hello", 4.5)


3. Словари (Dictionaries)
Словари — это неупорядоченные коллекции пар ключ-значение. Они позволяют быстро находить значение по ключу и часто используются для представления разреженных данных или объектов с именованными полями.

my_dict = {"name": "Alice", "age": 25, "city": "New York"}


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

my_set = {1, 2, 3, 4, 5}


5. Очереди (Queues)
Очереди обеспечивают порядок очередности элементов «первым пришел — первым вышел» (FIFO). В Python можно использовать модуль collections.deque для эффективного выполнения операций на концах очереди.

from collections import deque
my_queue = deque([1, 2, 3, 4, 5])
my_queue.append(6)
my_queue.popleft()


6. Стек (Stacks)
Стек обеспечивает порядок «последним пришел — первым вышел» (LIFO). В Python стек можно реализовать с помощью списка, используя методы append() и pop().

my_stack = [1, 2, 3, 4, 5]
my_stack.append(6)
my_stack.pop()


7. Двусвязные списки (Linked Lists)
Двусвязные списки состоят из узлов, каждый из которых содержит значение и ссылки на следующий и предыдущий узлы. Они обеспечивают эффективное добавление и удаление элементов, но требуют больше памяти, чем массивы.

class Node:
def __init__(self, data):
self.data = data
self.next = None
self.prev = None

class DoublyLinkedList:
def __init__(self):
self.head = None


8. Деревья (Trees)
Деревья используются для представления иерархических данных. Один из популярных видов деревьев — бинарное дерево поиска (BST), где каждый узел имеет не более двух детей, а левое поддерево содержит значения меньше родительского узла, правое — больше.

class TreeNode:
def __init__(self, value):
self.value = value
self.left = None
self.right = None


9. Графы (Graphs)
Графы состоят из узлов и ребер, связывающих их. Они используются для представления сетевых структур, таких как социальные сети, маршруты в транспорте и т.д. В Python графы можно реализовать с помощью словарей или использовать библиотеки, такие как NetworkX.

# Пример простого графа с использованием словаря
graph = {
'A': ['B', 'C'],
'B': ['A', 'D', 'E'],
'C': ['A', 'F'],
'D': ['B'],
'E': ['B', 'F'],
'F': ['C', 'E']
}


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

Про что ещё рассказать в рубрике простыми словами или какую тему разобрать подробнее? Напишите в комментарии

#простымисловами #структурыданных
Создание фуллстек-приложения с помощью Django, Vue.js и Flowbite

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

В этом руководстве вы увидите, как настроить эти инструменты и создать с помощью них первый проект:

https://chesda.hashnode.dev/django-vue-flowbite

#django #vue #веб
Тут что-то на эльфийском
Пора перестать использовать Python 3.8

По состоянию на сентябрь 2024, около 14% пакетов, загруженных из PyPI, были для Python 3.8. А это примерно 250 миллионов пакетов в день.

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

https://pythonspeed.com/articles/stop-using-python-3.8/
Media is too big
VIEW IN TELEGRAM
Плохие практики ООП в Python, которых нужно избегать

В этом видео рассматриваются распространенные ошибках в ООП на Python, которые часто совершают разработчики. Вы узнаете:

— как сохранить ваш код чистым и удобным для сопровождения;
— почему вам следует заменять ненужные классы функциями;
— зачем использовать модули вместо классов только со статическими методами;
— и как сглаживать глубокие иерархии наследования.

#видео #ооп
Сколько времени нужно, чтобы освоить Python?

Согласно исследованию «Factors Affecting Students' Attitudes toward Computer Programming», проведённому в 2019 году в Vilnius University, освоение поделили на три стадии:

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

2. Средняя компетенция. Эта стадия наступает обычно спустя шесть месяцев. Здесь вы становитесь знакомы с более продвинутыми темами, такими как работа с файлами, обработка исключений, модули, библиотеки и работа с внешними источниками данных.

3. Продвинутые навыки могут занять несколько лет работы над реальными проектами. На этом этапе вы углубляетесь в конкретные области, такие как веб-разработка, анализ данных, научные вычисления, машинное обучение или другие специализированные области. Это тоже требует практики.

А на каком этапе вы?

❤️ — в самом начале пути
🤯 — второй этап, инфа сотка
🗿 — я в своём сознании настолько преисполнился, что мне этот Python абсолютно понятен


#советы
Работа с JSON и XML в Python: парсинг, генерация и валидация

JSON и XML — это форматы для хранения информации. Их используют для обмена данными в веб-разработке между клиентом и сервером, поэтому они часто встречаются при работе с API.

В этой статье мы расскажем, как взаимодействовать с ними при работе с Python.

#api
Интересно, гуру чего он в итоге стал спустя 8 лет
Media is too big
VIEW IN TELEGRAM
Почему not not value БЫСТРЕЕ bool в Python

По какой-то причине not not работает быстрее, чем bool. Вы можете это проверить самостоятельно и убедиться в таком странном поведении. В этом видео разбирается почему именно так происходит.

#видео
«База данных» в гугл таблицах для телеграм-бота

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

В таком случае можно воспользоваться простыми google-таблицами. Как именно, рассказали в статье.

#telegram #google
Stealth-Requests — библиотека для анонимного скреппинга веб-страниц

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

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

Более подробно обо всех возможностях можно прочитать на странице проекта.

#инструменты #веб
​​Гарвардский курс по веб-разработке на Python и JS

Курс HarvardX: CS50's Web Programming продолжает легендарный CS50, фокусируясь на разработке веб-приложений с Python, JavaScript и SQL. Тут разбирают дизайн БД, масштабируемость, безопасность и UI.

В процессе обучения есть и практические проекты, среди которых создание API, интерактивных интерфейсов и использование облачных сервисов GitHub и Heroku.

Одним словом — годнота

#курс #web #js #python #en
Media is too big
VIEW IN TELEGRAM
Что такое docstring в Python

Docstring — это такая строковая переменная, которая идет сразу за объявлением модуля, функции, класса, метода. Таким образом питон предоставляет удобный способ добавления документации. Существует много средств для автоматического генерирования документации, которые используют докстринг. Подробнее об это переменной и её возможностях в этом видео.

#видео
This media is not supported in your browser
VIEW IN TELEGRAM
Simba: Симуляция десятков тысяч частиц в потенциале Леннарда-Джонса

Как вам эта симуляция? Красивая? Вы можете создать такую же благодаря проекту, который создал автор этой статьи. Причём работает она на чистом Python с GPU-ускорением.

Узнать подробнее о проекте и попробовать его можно в статье.
Никто:

Я, написавший «Hello, World» на Python жду оффер на 150к:
Использование подчеркивания в коде на Python

Подчёркивание _ — это символ, который используется в именах на Питоне. Он влияет на то, как код работает и как его читают. Знания о том, куда поместить подчёркивание, помогает писать код.

Этими знаниями делится автор статьи по ссылке. Не поленитесь прочитать.

#основы