ru
Feedback
Python_No_Panic

Python_No_Panic

Открыть в Telegram

Самый перспективный, полезный и ламповый канал по Python в русскоязычном телеграме! Обучающие посты в хронологическом порядке, посты по софт скиллам и чат, где вам всегда помогут админы и комьюнити. Сотрудничество: @Niik_Whaale

Больше
2 146
Подписчики
Нет данных24 часа
-37 дней
-1330 день
Архив постов
Создание и использование дескрипторов 🛠️🔧 Суть темы: Дескрипторы — это мощный инструмент в Python, который позволяет управл
Создание и использование дескрипторов 🛠️🔧 Суть темы: Дескрипторы — это мощный инструмент в Python, который позволяет управлять доступом к атрибутам класса. 🎩 Они используются для создания свойств, которые могут выполнять дополнительные действия при доступе или изменении значения. 🛠️ Применение: Валидация данных при установке значений атрибутов. ✅ Ленивая загрузка данных. 🕒 Пример кода:

class Descriptor:
    def __get__(self, instance, owner):
        print("Получение значения")
        return instance._value

    def __set__(self, instance, value):
        print("Установка значения")
        instance._value = value

class MyClass:
    attribute = Descriptor()

obj = MyClass()
obj.attribute = 10  # Установка значения
print(obj.attribute)  # Получение значения
Вывод:
Установка значения
Получение значения
10
Почему это круто? Дескрипторы позволяют создавать более гибкие и безопасные объекты. 🛡️ Они делают код более читаемым и удобным для повторного использования. 📖

Работа с байткодом и модулем dis 🧩🔍 Суть темы: Python компилирует исходный код в байткод, который затем выполняется виртуал
Работа с байткодом и модулем dis 🧩🔍 Суть темы: Python компилирует исходный код в байткод, который затем выполняется виртуальной машиной Python. 🖥️ Модуль dis позволяет дизассемблировать байткод и увидеть, как Python интерпретирует ваш код на низком уровне. 🕵️‍♂️ Применение: Оптимизация производительности кода. ⚡ Понимание внутреннего устройства Python. 🧠 Отладка и анализ работы кода. 🛠️ Пример кода:

import dis

def example_function(x):
    return x * x + 1

dis.dis(example_function)
Вывод:
  2           0 LOAD_FAST                0 (x)
              2 LOAD_FAST                0 (x)
              4 BINARY_MULTIPLY
              6 LOAD_CONST               1 (1)
              8 BINARY_ADD
             10 RETURN_VALUE
Почему это круто? Модуль dis позволяет заглянуть "под капот" Python и понять, как работает ваш код. 🚗 Это полезно для оптимизации и отладки сложных участков кода. 🛠️

Хеширование паролей с hashlib 🔑 Модуль hashlib позволяет создавать хеши данных, таких как пароли. Применение: Защита паролей
Хеширование паролей с hashlib 🔑 Модуль hashlib позволяет создавать хеши данных, таких как пароли. Применение: Защита паролей Проверка целостности данных

import hashlib

password = "my_secret_password"
hashed_password = hashlib.sha256(password.encode()).hexdigest()

print("Хеш пароля:", hashed_password)
Результат выполнения:
Хеш пароля: 6e6bc4e49dd477ebc98ef4046c067b5f2b0e6e2d2c7e4d3c6c34395f2b1ac540

Хеширование паролей с hashlib 🔑 Модуль hashlib позволяет создавать хеши данных, таких как пароли. Применение: Защита паролей Проверка целостности данных ``` import hashlib password = "my_secret_password" hashed_password = hashlib.sha256(password.encode()).hexdigest() print("Хеш пароля:", hashed_password) ``` Результат выполнения: Хеш пароля: дуль hashlib позволяет создавать хеши данных, таких как пароли. Применение

Создание и использование контекстных менеджеров с contextlib 🛠️🔧 Суть темы: Контекстные менеджеры — это мощный инструмент в
Создание и использование контекстных менеджеров с contextlib 🛠️🔧 Суть темы: Контекстные менеджеры — это мощный инструмент в Python, который позволяет управлять ресурсами, такими как файлы, сетевые соединения или блокировки, с помощью ключевого слова with. 🗝️ Модуль contextlib предоставляет удобные инструменты для создания собственных контекстных менеджеров без необходимости писать полноценный класс с методами enter и exit. 🎩 Применение: Управление ресурсами, такими как файлы или сетевые соединения. 📂🌐 Обеспечение корректного завершения транзакций. 💾 Упрощение работы с временными изменениями состояния. 🕒 Пример кода:

from contextlib import contextmanager

@contextmanager
def open_file(name, mode):
    f = open(name, mode)
    try:
        yield f
    finally:
        f.close()

# Использование контекстного менеджера
with open_file('test.txt', 'w') as f:
    f.write('Привет, мир!')

Работа с базами данных (ORM и SQLAlchemy) Суть темы: ORM (Object-Relational Mapping) позволяет работать с базами данных, испо
Работа с базами данных (ORM и SQLAlchemy) Суть темы: ORM (Object-Relational Mapping) позволяет работать с базами данных, используя объекты Python, вместо написания SQL-запросов вручную. SQLAlchemy — одна из самых популярных библиотек для работы с базами данных в Python. Применение: Упрощение работы с базами данных. Создание сложных запросов с помощью Python-кода. Поддержка различных СУБД (PostgreSQL, MySQL, SQLite и др.). Пример кода:

from sqlalchemy import create_engine, Column, Integer, String
from sqlalchemy.ext.declarative import declarative_base
from sqlalchemy.orm import sessionmaker

Base = declarative_base()

class User(Base):
    __tablename__ = 'users'
    id = Column(Integer, primary_key=True)
    name = Column(String)
    age = Column(Integer)

engine = create_engine('sqlite:///example.db')
Base.metadata.create_all(engine)

Session = sessionmaker(bind=engine)
session = Session()

new_user = User(name="Alice", age=25)
session.add(new_user)
session.commit()

Дескрипторы и свойства Суть темы: Дескрипторы и свойства позволяют контролировать доступ к атрибутам класса. Это полезно для
Дескрипторы и свойства Суть темы: Дескрипторы и свойства позволяют контролировать доступ к атрибутам класса. Это полезно для создания более гибких и безопасных объектов. Применение: Валидация данных при установке значений атрибутов. Ленивая загрузка данных. Создание вычисляемых атрибутов. Пример кода:

class Temperature:
    def __init__(self, celsius):
        self.celsius = celsius

    @property
    def fahrenheit(self):
        return self.celsius * 9/5 + 32

    @fahrenheit.setter
    def fahrenheit(self, value):
        self.celsius = (value - 32) * 5/9

temp = Temperature(0)
print(temp.fahrenheit)  # Вывод: 32.0
temp.fahrenheit = 100
print(temp.celsius)  # Вывод: 37.777...

🚀 Контекстные менеджеры Суть темы: Контекстные менеджеры позволяют управлять ресурсами, такими как файлы или сетевые соедине
🚀 Контекстные менеджеры Суть темы: Контекстные менеджеры позволяют управлять ресурсами, такими как файлы или сетевые соединения, с помощью ключевого слова with. Это гарантирует, что ресурсы будут правильно освобождены после использования. Применение: Работа с файлами. Управление сетевыми соединениями. Обеспечение корректного завершения транзакций. Пример кода:

with open('file.txt', 'r') as file:
    content = file.read()
    print(content)

Шифрование с использованием cryptography 🔐 Библиотека cryptography позволяет шифровать и дешифровать данные. 🔍 Применение:
Шифрование с использованием cryptography 🔐 Библиотека cryptography позволяет шифровать и дешифровать данные. 🔍 Применение: Защита данных. Реализация безопасных сообщений. Хранение конфиденциальной информации.

from cryptography.fernet import Fernet

# Генерация ключа и шифрование данных
key = Fernet.generate_key()
cipher = Fernet(key)

message = b"Secret Message"
encrypted_message = cipher.encrypt(message)
print("Encrypted:", encrypted_message)

# Дешифрование
decrypted_message = cipher.decrypt(encrypted_message)
print("Decrypted:", decrypted_message.decode())
🔑 Результат выполнения:
Encrypted: b'...'  
Decrypted: Secret Message

Контроль ресурсов через contextlib 🚪 Модуль contextlib упрощает управление ресурсами с помощью контекстных менеджеров. 🔍 Пр
Контроль ресурсов через contextlib 🚪 Модуль contextlib упрощает управление ресурсами с помощью контекстных менеджеров. 🔍 Применение: Управление файлами. Работа с сетевыми соединениями. Сложные контексты.

from contextlib import contextmanager

@contextmanager
def custom_context():
    print("Entering context")
    yield
    print("Exiting context")

with custom_context():
    print("Inside context")
🔑 Результат выполнения:
Entering context  
Inside context  
Exiting context

Ленивая загрузка с itertools ⏳ Модуль itertools предоставляет ленивые итераторы для работы с последовательностями. 🔍 Примене
Ленивая загрузка с itertools ⏳ Модуль itertools предоставляет ленивые итераторы для работы с последовательностями. 🔍 Применение: Оптимизация больших данных. Генерация комбинаций. Создание бесконечных последовательностей.

import itertools

# Бесконечный цикл
counter = itertools.count(start=1, step=2)

for _ in range(5):
    print(next(counter))
🔑 Результат выполнения:
1  
3  
5  
7  
9

Создание диаграмм с seaborn 📊 seaborn — это библиотека для создания статистических графиков. 🔍 Применение: Анализ данных. О
Создание диаграмм с seaborn 📊 seaborn — это библиотека для создания статистических графиков. 🔍 Применение: Анализ данных. Отображение корреляций. Статистическая визуализация.

import seaborn as sns
import matplotlib.pyplot as plt

data = [10, 20, 30, 40, 50]
sns.boxplot(data=data)
plt.title("Boxplot Example")
plt.show()
🔑 Результат выполнения: Создается боксплот с визуализацией данных.

Работа с потоками данных через queue 🌀 Модуль queue помогает организовать безопасную передачу данных между потоками. 🔍 Прим
Работа с потоками данных через queue 🌀 Модуль queue помогает организовать безопасную передачу данных между потоками. 🔍 Применение: Организация очередей задач. Асинхронная обработка. Управление ресурсами.

import queue

q = queue.Queue()

# Добавление элементов
q.put(1)
q.put(2)
q.put(3)

# Получение элементов
while not q.empty():
    print(q.get())
🔑 Результат выполнения:
1  
2  
3

Сохранение данных с pickle 📦 Модуль pickle используется для сериализации и десериализации объектов Python. 🔍 Применение: Со
Сохранение данных с pickle 📦 Модуль pickle используется для сериализации и десериализации объектов Python. 🔍 Применение: Сохранение состояния программ. Передача данных между процессами. Хранение пользовательских объектов.

import pickle

data = {"name": "Alice", "age": 30}

# Сохранение
with open("data.pkl", "wb") as file:
    pickle.dump(data, file)

# Загрузка
with open("data.pkl", "rb") as file:
    loaded_data = pickle.load(file)

print(loaded_data)
🔑 Результат выполнения:
{'name': 'Alice', 'age': 30}

Многопроцессорная обработка с multiprocessing ⚙️ Модуль multiprocessing позволяет запускать код параллельно, используя нескол
Многопроцессорная обработка с multiprocessing ⚙️ Модуль multiprocessing позволяет запускать код параллельно, используя несколько процессов. 🔍 Применение: Распараллеливание задач. Ускорение вычислений. Обработка больших данных.

import multiprocessing
import time

def worker(name):
    print(f"Worker {name} starting")
    time.sleep(2)
    print(f"Worker {name} finished")

if __name__ == "__main__":
    process1 = multiprocessing.Process(target=worker, args=("A",))
    process2 = multiprocessing.Process(target=worker, args=("B",))

    process1.start()
    process2.start()

    process1.join()
    process2.join()
🔑 Результат выполнения:
Worker A starting  
Worker B starting  
Worker A finished  
Worker B finished

Создание конфигураций через configparser ⚙️ Модуль configparser используется для работы с конфигурационными файлами. 🔍 Приме
Создание конфигураций через configparser ⚙️ Модуль configparser используется для работы с конфигурационными файлами. 🔍 Применение: Хранение настроек. Упрощение настройки приложений. Чтение конфигураций.

import configparser

config = configparser.ConfigParser()
config.read("config.ini")

print("Database:", config["database"]["name"])
🔑 Результат выполнения: При наличии файла config.ini с содержимым:
[database]
name = test_db
Вывод:
Database: test_db

Работа с изображениями через Pillow 🖌️ Библиотека Pillow предоставляет мощные инструменты для обработки изображений. 🔍 Прим
Работа с изображениями через Pillow 🖌️ Библиотека Pillow предоставляет мощные инструменты для обработки изображений. 🔍 Применение: Редактирование изображений. Создание миниатюр. Добавление фильтров.

from PIL import Image

# Открываем изображение и создаем миниатюру
image = Image.open("example.jpg")
image.thumbnail((100, 100))
image.save("thumbnail.jpg")

print("Thumbnail создан.")
🔑 Результат выполнения: Создается миниатюра изображения с размерами 100x100 пикселей.

Шаблоны строк с string.Template 🖋️ Модуль string.Template позволяет создавать строки с шаблонами для упрощения подстановок.
Шаблоны строк с string.Template 🖋️ Модуль string.Template позволяет создавать строки с шаблонами для упрощения подстановок. 🔍 Применение: Генерация писем. Форматирование отчетов. Упрощение работы с текстом.

from string import Template

template = Template("Hello, $name! Welcome to $place.")
message = template.substitute(name="Alice", place="Python World")

print(message)
🔑 Результат выполнения:
Hello, Alice! Welcome to Python World.

Секретный импорт Что напечатает код?
import this
❓ Вопрос: Что произойдет при выполнении этого кода? Какую информацию он содержит?

Челлендж: «Поиск пиков» Привет, кодеры! Сегодня будем работать с массивами. 📈 Суть задачи: Напишите функцию, которая находит
Челлендж: «Поиск пиков» Привет, кодеры! Сегодня будем работать с массивами. 📈 Суть задачи: Напишите функцию, которая находит все пики в массиве. Пиком считается элемент, который больше соседних слева и справа. Граничные элементы не считаются. Пример:
Input: [1, 3, 7, 1, 2, 6, 3, 2]  
Output: [7, 6]  
✅ Усложнение для профи: Найдите индекс каждого пика, а не только их значения. Реализуйте алгоритм с минимальной сложностью. 💡 Подсказки: Пройдитесь по массиву циклом, начиная со второго элемента и заканчивая предпоследним. Используйте индексы, чтобы проверять соседние элементы. Если хотите оптимизировать: изучите двоичный поиск для таких задач. Кто сможет найти все пики? Пишите свои ответы! 🏔️