Python_No_Panic
2.06K subscribers
123 photos
18 videos
49 links
Самый перспективный, полезный и ламповый канал по Python в русскоязычном телеграме!

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

Сотрудничество:
@Niik_Whaale
Download Telegram
Работа с регулярными выражениями 🔍

Регулярные выражения (regex) позволяют искать, заменять и обрабатывать строки по заданным шаблонам. Это мощный инструмент для работы с текстом.

🔍 Применение:
Поиск и замена в строках.
Валидация данных (например, email).
Извлечение информации из текста.
 
import re

pattern = r'\\d+' # Ищем все числа
text = "The house number is 42 and the zip code is 12345."
matches = re.findall(pattern, text)

print(matches) # Output: ['42', '12345']

🔑 Результат выполнения:
 
['42', '12345']
Генерация графиков с помощью matplotlib 📈

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

🔍 Применение:

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

import matplotlib.pyplot as plt

# Данные для графика
x = [1, 2, 3, 4, 5]
y = [2, 4, 6, 8, 10]

# Построение графика
plt.plot(x, y, label='y = 2x', color='blue')
plt.xlabel('X-axis')
plt.ylabel('Y-axis')
plt.title('Linear Graph')
plt.legend()
plt.show()

🔑 Результат выполнения:
Линейный график, отображающий зависимость
y=2x.
Машинное обучение с scikit-learn 📊
Библиотека scikit-learn предоставляет инструменты для машинного обучения, такие как обучение моделей, классификация, регрессия, кластеризация и многое другое.

🔍 Применение:

Предсказание цен.
Анализ данных.
Построение моделей машинного обучения.


from sklearn.linear_model import LinearRegression
import numpy as np

# Данные
x = np.array([[1], [2], [3], [4], [5]])
y = np.array([2, 4, 6, 8, 10])

# Модель линейной регрессии
model = LinearRegression()
model.fit(x, y)

# Предсказание
predicted = model.predict([[6]])
print("Predicted value for x=6:", predicted[0])

🔑 Результат выполнения:

Predicted value for x=6: 12.0
🔥1
Работа с веб-сокетами с помощью websockets 🌐
Модуль websockets позволяет работать с WebSocket-соединениями, что упрощает создание приложений с обменом данными в реальном времени.

🔍 Применение:

Чат-приложения.
Онлайн-игры.
Реализация уведомлений.


import asyncio
import websockets

async def hello():
uri = "ws://echo.websocket.events"
async with websockets.connect(uri) as websocket:
await websocket.send("Hello WebSocket!")
response = await websocket.recv()
print("Received:", response)

asyncio.run(hello())


🔑 Результат выполнения:

Received: Hello WebSocket!
🔥1
🧠 Декораторы: украшение функций 🎀
Декораторы позволяют добавлять новую функциональность к функциям без изменения их кода. Это мощный инструмент для повышения читаемости и повторного использования кода.

🔍 Применение:
Логирование.
Проверка прав доступа.
Измерение времени выполнения.

import time

def timer(func):
def wrapper(*args, **kwargs):
start = time.time()
result = func(*args, **kwargs)
end = time.time()
print(f"Execution time: {end - start:.2f} seconds")
return result
return wrapper

@timer
def slow_function():
time.sleep(2)
print("Function finished!")

slow_function()


🔑 Результат выполнения:

Function finished!
Execution time: 2.00 seconds
👍2
🧪 Тестирование с использованием unittest 🧹
Модуль unittest предоставляет встроенные инструменты для написания тестов и проверки работоспособности кода.

🔍 Применение:
Автоматическое тестирование функций.
Обеспечение стабильности кода.
Выявление ошибок до развертывания.

import unittest

def add(a, b):
return a + b

class TestMath(unittest.TestCase):
def test_add(self):
self.assertEqual(add(2, 3), 5)
self.assertEqual(add(-1, 1), 0)

if __name__ == "__main__":
unittest.main()


🔑 Результат выполнения:


.
----------------------------------------------------------------------
Ran 1 test in 0.000s

OK
🔥1
🌟Работа с таймерами через sched
Модуль sched позволяет планировать выполнение задач с точным учетом времени.

🔍 Применение:

Запуск задач по расписанию.
Автоматизация повторяющихся процессов.
Создание таймеров.

import sched
import time

scheduler = sched.scheduler(time.time, time.sleep)

def print_message():
print("Task executed!")

# Планируем задачу через 3 секунды
scheduler.enter(3, 1, print_message)
scheduler.run()

🔑 Результат выполнения:
Через 3 секунды вывод:

Task executed!
3
🚦 Работа с потоками через threading 🧵
Модуль threading позволяет создавать потоки, что упрощает выполнение нескольких задач одновременно.

🔍 Применение:
Многозадачность.
Реакция на события.
Параллельная обработка данных.


import threading
import time

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

thread1 = threading.Thread(target=task, args=("A",))
thread2 = threading.Thread(target=task, args=("B",))

thread1.start()
thread2.start()

thread1.join()
thread2.join()

🔑 Результат выполнения:

Thread A starting
Thread B starting
Thread A finished
Thread B finished
👍31
Обработка URL с urllib.parse 🌐

Модуль urllib.parse помогает разбирать и создавать URL-адреса.

🔍 Применение:
Создание запросов к API.
Разбор адресов.
Управление параметрами.

from urllib.parse import urlparse

url = "https://example.com/path?name=Alice"
parsed_url = urlparse(url)

print("Domain:", parsed_url.netloc)
print("Path:", parsed_url.path)
print("Query:", parsed_url.query)


🔑 Результат выполнения:

Domain: example.com
Path: /path
Query: name=Alice
🔥3
Челлендж: «Поиск пиков»
Привет, кодеры! Сегодня будем работать с массивами.

📈 Суть задачи:
Напишите функцию, которая находит все пики в массиве. Пиком считается элемент, который больше соседних слева и справа. Граничные элементы не считаются.

Пример:

Input: [1, 3, 7, 1, 2, 6, 3, 2]
Output: [7, 6]


Усложнение для профи:
Найдите индекс каждого пика, а не только их значения.
Реализуйте алгоритм с минимальной сложностью.

💡 Подсказки:
Пройдитесь по массиву циклом, начиная со второго элемента и заканчивая предпоследним.
Используйте индексы, чтобы проверять соседние элементы.
Если хотите оптимизировать: изучите двоичный поиск для таких задач.


Кто сможет найти все пики? Пишите свои ответы! 🏔️
👍1🔥1
Секретный импорт

Что напечатает код?

import this


Вопрос: Что произойдет при выполнении этого кода? Какую информацию он содержит?
Шаблоны строк с 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.
👍5
Работа с изображениями через Pillow 🖌️

Библиотека Pillow предоставляет мощные инструменты для обработки изображений.

🔍 Применение:
Редактирование изображений.
Создание миниатюр.
Добавление фильтров.

from PIL import Image

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

print("Thumbnail создан.")


🔑 Результат выполнения:
Создается миниатюра изображения с размерами 100x100 пикселей.
👍2
Создание конфигураций через 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
2👍1
Многопроцессорная обработка с 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
4
Сохранение данных с 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}
🔥4
Работа с потоками данных через 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
🔥1
Создание диаграмм с 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()


🔑 Результат выполнения:
Создается боксплот с визуализацией данных.
🔥2
Ленивая загрузка с itertools
Модуль itertools предоставляет ленивые итераторы для работы с последовательностями.

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


import itertools

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

for _ in range(5):
print(next(counter))


🔑 Результат выполнения:

1
3
5
7
9
👍2
Контроль ресурсов через 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
🔥1
Шифрование с использованием 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
🔥21👍1