uz
Feedback
Python Hub - сборище Питонистов

Python Hub - сборище Питонистов

Kanalga Telegram’da o‘tish

Уголок счастья для любого питониста. Сотрудничество или заказы: @leshunist https://shcoder.dev - студия разработки ShcoderDevelopment https://t.me/pythonhub_chat - чат

Ko'proq ko'rsatish
1 715
Obunachilar
-324 soatlar
-107 kunlar
-1130 kunlar
Postlar arxiv
Примеры кода, на которых можно рассмотреть, как работает многопоточность в Python🧑‍💻

+3
0thread.py0.01 KB

Примеры кода, на которых можно рассмотреть, как работает многопоточность в Python🧑‍💻

Repost from IT Юмор
Идея для термостата @ithumor
Идея для термостата @ithumor

😳😳😳 Python: почему он интерпретируемый? Python часто называют интерпретируемым языком программирования, и на это есть веск
😳😳😳 Python: почему он интерпретируемый? Python часто называют интерпретируемым языком программирования, и на это есть веские причины. Давайте разберемся, почему это так и какие преимущества это даёт. ➡️ Как работает Python? Python использует двухэтапный процесс выполнения кода: - Сначала исходный код компилируется в байт-код (.pyc файлы) - Затем этот байт-код выполняется интерпретатором Python (PVM - Python Virtual Machine) ➡️ Почему именно интерпретатор? Создатель Python, Гвидо ван Россум, сделал этот выбор по нескольким причинам: - 📱 Кроссплатформенность: байт-код может выполняться на любой платформе, где установлен интерпретатор Python - 🔄 Динамическая типизация: типы переменных определяются во время выполнения - 🛠 Простота отладки: можно остановить программу в любой момент и проверить состояние переменных - ⚡️ Быстрая разработка: нет необходимости ждать компиляции при каждом изменении кода ➡️ Интересные факты На самом деле, Python не является чисто интерпретируемым языком. Он использует гибридный подход: - Компиляция в байт-код происходит автоматически - Скомпилированный байт-код кэшируется для ускорения последующих запусков - Существуют компиляторы Python в машинный код (PyPy, Cython), но они используются в специфических случаях ➡️ Итог Интерпретируемая природа Python - это осознанный выбор, который делает язык более гибким и удобным для разработчиков, хотя и с некоторой потерей в производительности по сравнению с компилируемыми языками.

Захостить сайт у себя на компе, но чтобы он был в публичном доступе? 😳 Легко за 5 минут👏 https://youtu.be/_1V2lrCtR4E

🤞 Лучшие онлайн редакторы кода для Python: Подробный обзор 1. 🏆 Google Colab https://colab.research.google.com • Бесплатный
🤞 Лучшие онлайн редакторы кода для Python: Подробный обзор 1. 🏆 Google Colab https://colab.research.google.com • Бесплатный доступ к GPU и TPU для машинного обучения • Полная интеграция с экосистемой Google (Drive, Sheets, Gmail) • Поддержка Jupyter notebooks с возможностью совместного редактирования • Предустановленные популярные библиотеки (TensorFlow, PyTorch, OpenCV) • Возможность сохранения и загрузки моделей • Выполнение долгих вычислений в фоновом режиме • Бесплатное облачное хранилище до 15 ГБ 2. 🎯 Replit https://replit.com • Мощный встроенный терминал с полным доступом • Совместная работа в реальном времени с функцией pair programming • Встроенный хостинг проектов с публичным URL • Система контроля версий с интеграцией GitHub • Автоматическое управление зависимостями • Встроенный отладчик кода • Поддержка кастомных конфигураций и переменных окружения 3. 💻 PyCharm Online https://www.jetbrains.com/pycharm/online • Профессиональная IDE в браузере от JetBrains • Продвинутое автодополнение кода с анализом типов • Встроенный отладчик с визуализацией переменных • Интеграция с системами контроля версий • Рефакторинг кода и поиск ошибок на лету • Поддержка удаленной разработки • Интеграция с базами данных и REST клиент 4. 🚀 Jupyter Lab https://jupyter.org • Интерактивные ноутбуки с поддержкой markdown • Продвинутая визуализация данных и графиков • Поддержка множества форматов (Python, R, Julia) • Расширяемость через систему плагинов • Встроенный просмотрщик CSV, JSON, изображений • Интерактивные виджеты для данных • Возможность создания презентаций 5. ⚡️ Python Anywhere https://www.pythonanywhere.com • Полноценный хостинг веб-приложений Python • Консоль Python с доступом через браузер • Поддержка популярных фреймворков (Django, Flask) • Встроенная поддержка MySQL и PostgreSQL • Бесплатный тариф с базовым функционалом • Автоматическое обновление сертификатов SSL • Планировщик задач для автоматизации

Разработка игр на Python 🎮 Привет, питонисты! Давайте поговорим о том, как превратить ваши навыки Python в настоящие игровые
Разработка игр на Python 🎮 Привет, питонисты! Давайте поговорим о том, как превратить ваши навыки Python в настоящие игровые шедевры. Знаю-знаю, многие считают, что для геймдева нужен Unity или Unreal Engine, но поверьте – Python тоже может! 🐍 Начнём с того, что Python – это не просто язык для веб-разработки или data science. Благодаря множеству специализированных библиотек, мы можем творить настоящие чудеса. И нет, я не шучу – на Python создано немало крутых инди-игр! 🚀 Самое крутое в разработке игр на Python – низкий порог входа. Если вы уже знаете основы языка, то буквально за пару дней сможете создать свой первый платформер или "змейку". А дальше – только ваша фантазия и упорство! ➡️ Основные библиотеки для геймдева 🎮 Pygame - самая популярная библиотека: - Простой и понятный синтаксис - Огромное комьюнити - Отличная документация - Ограниченные возможности для 3D - Не самая высокая производительность 🎲 Arcade - современная альтернатива: - Современный и чистый API - Встроенная физика - Хорошая производительность - Меньше обучающих материалов - Относительно молодая библиотека 📱 Kivy - для кроссплатформенной разработки: - Работает на всех платформах, включая мобильные - Поддержка мультитач - Сложнее в освоении - Больше подходит для приложений 🛠 Из личного опыта могу сказать – начните с Pygame. Эта библиотека как конструктор LEGO: простая, понятная и при этом мощная. Вот что можно сделать уже на старте: - 2D-платформеры - Аркады - Головоломки - Карточные игры - Шутеры с видом сверху 💡 Но есть и подводные камни (куда же без них?). Python не самый быстрый язык, поэтому для создания масштабных 3D-игр лучше выбрать что-то другое. Зато для прототипирования или создания небольших игр – самое то! 🔥 А знаете, что самое крутое? Комьюнити! Python-разработчики всегда готовы помочь и поделиться опытом. На GitHub полно открытых проектов, где можно подсмотреть решения и научиться новому. 🎮 И помните главное: создание игр – это не только код. Это творчество, это история, это дизайн. Даже простая игра может стать хитом, если в неё вложить душу и креатив. 💪 Так что не бойтесь экспериментировать! Python + геймдев = отличная комбинация для старта. А там, глядишь, и до Steam доберётесь! 😉

📕 Методы и Функции в Python. А где разница? В мире Python-разработки часто возникает путаница между методами и функциями. Да
📕 Методы и Функции в Python. А где разница? В мире Python-разработки часто возникает путаница между методами и функциями. Давайте детально разберем эти важные концепции и научимся их правильно использовать. 🤔 📚 Что такое функция? Функция в Python — это самостоятельный блок кода, который выполняет определенную задачу. Представьте её как отдельный инструмент, который можно использовать где угодно в программе. Функции создаются с помощью ключевого слова def и могут принимать аргументы для обработки.
def calculate_area(length, width):
    return length * width

# Использование функции
room_area = calculate_area(5, 4)
print(f"Площадь комнаты: {room_area} кв.м.")
🔧 Что такое метод? Метод — это функция, которая принадлежит определённому классу или объекту. Он имеет доступ к данным объекта и может изменять его состояние. Методы всегда определяются внутри классов и вызываются через экземпляр класса или сам класс.
class BankAccount:
    def __init__(self, balance):
        self.balance = balance
    
    def deposit(self, amount):
        self.balance += amount
        return f"Новый баланс: {self.balance}"

# Использование метода
account = BankAccount(1000)
account.deposit(500)  # Вызов метода через объект
🔍 Ключевые различия 1. Область видимости: - Функции работают с переданными им аргументами - Методы имеют доступ к данным объекта через self 2. Способ вызова: - Функции вызываются напрямую: function_name() - Методы вызываются через объект: object.method() 3. Контекст выполнения: - Функции независимы от контекста - Методы всегда работают в контексте своего класса 💡 Практические примеры использования Когда использовать функции: • Для операций, не требующих доступа к состоянию объекта • При работе с независимыми данными • Для создания утилитарных операций Когда использовать методы: • При работе с данными объекта • Когда логика тесно связана с классом • Для реализации поведения объекта

📊 Создание интерактивных визуализаций данных с Plotly и Bokeh: Краткое руководство Признайтесь, кто из вас устал от статичны
📊 Создание интерактивных визуализаций данных с Plotly и Bokeh: Краткое руководство Признайтесь, кто из вас устал от статичных matplotlib графиков? Сегодня поговорим о том, как превратить ваши данные в интерактивные произведения искусства с помощью Plotly и Bokeh! 🎨 Начинаем с Plotly Plotly - это как швейцарский нож в мире визуализации. Вот простой пример создания интерактивного графика:
import plotly.express as px
import pandas as pd

# Создаём тестовые данные
df = pd.DataFrame({
    'Месяц': ['Янв', 'Фев', 'Март', 'Апр', 'Май'],
    'Продажи': [100, 150, 200, 180, 250],
    'Прибыль': [20, 30, 40, 35, 50]
})

# Создаём интерактивный график
fig = px.line(df, x='Месяц', y=['Продажи', 'Прибыль'],
              title='Динамика продаж и прибыли',
              template='plotly_dark')

# Добавляем hover-эффекты
fig.update_traces(mode='lines+markers', hovertemplate='%{y:,.0f}₽')

# Сохраняем как HTML или показываем в браузере
fig.write_html('sales_dashboard.html')
🌈 Bokeh: Мощь серверного рендеринга А теперь давайте создадим что-то более продвинутое с Bokeh:
from bokeh.plotting import figure, show
from bokeh.layouts import column
from bokeh.models import ColumnDataSource, HoverTool
import numpy as np

# Создаём интерактивный scatter plot
x = np.random.normal(0, 1, 1000)
y = np.random.normal(0, 1, 1000)

source = ColumnDataSource(data=dict(
    x=x,
    y=y,
    size=np.random.uniform(5, 15, 1000),
    color=['#%06x' % np.random.randint(0, 0xFFFFFF) for _ in range(1000)]
))

p = figure(width=800, height=600, title='Интерактивный Scatter Plot')
p.scatter('x', 'y', size='size', color='color', alpha=0.6, source=source)

# Добавляем интерактивные подсказки
hover = HoverTool(tooltips=[
    ('X', '@x{0.000}'),
    ('Y', '@y{0.000}'),
    ('Размер', '@size{0.00}')
])
p.add_tools(hover)

show(p)
🔥 Продвинутые фичи Вот несколько крутых возможностей, о которых многие не знают: 1. Анимированные переходы в Plotly:
import plotly.graph_objects as go

fig = go.Figure(
    data=[go.Scatter(x=[1, 2, 3], y=[1, 3, 2])],
    layout=dict(
        updatemenus=[dict(
            type="buttons",
            buttons=[dict(label="Play",
                         method="animate",
                         args=[None])]
        )]
    )
)
1. Real-time обновления в Bokeh:
from bokeh.plotting import curdoc
from functools import partial
from tornado.ioloop import IOLoop

def update():
    source.data['y'] = np.random.rand(100)
    
curdoc().add_periodic_callback(update, 100)  # Обновление каждые 100мс
💡 Pro-tip: Для больших датасетов используйте датаклассы и оптимизируйте память:
from dataclasses import dataclass
from typing import List

@dataclass
class DataPoint:
    x: float
    y: float
    category: str

data_points: List[DataPoint] = []  # Эффективнее, чем DataFrame для больших данных
⚡️ Личный опыт: недавно делал дашборд для финтех-проекта. Начал с Matplotlib, намучался с интерактивностью, переписал на Plotly - заказчик в восторге, пользователи счастливы. Время разработки сократилось вдвое! 🤔 Что выбрать? - Plotly: если нужны красивые графики "из коробки" и важна простота использования - Bokeh: если работаете с большими данными или нужна глубокая кастомизация

Новогодняя елка технаря 🎄🎄🎄
Новогодняя елка технаря 🎄🎄🎄

❗️🤖 Искусственный интеллект с Python: создание своих моделей с PyTorch и TensorFlow Привет, питонисты! Сегодня поговорим о т
❗️🤖 Искусственный интеллект с Python: создание своих моделей с PyTorch и TensorFlow Привет, питонисты! Сегодня поговорим о том, как превратить свой код в настоящий искусственный интеллект. Давайте сразу посмотрим на простой пример в PyTorch:
import torch
import torch.nn as nn

class SimpleNet(nn.Module):
    def __init__(self):
        super().__init__()
        self.layer1 = nn.Linear(784, 128)
        self.relu = nn.ReLU()
        self.layer2 = nn.Linear(128, 10)
    
    def forward(self, x):
        x = self.layer1(x)
        x = self.relu(x)
        return self.layer2(x)

Создаем модель одной строчкой! 🎯
model = SimpleNet().to('cuda' if torch.cuda.is_available() else 'cpu')
🤔 Круто, правда? А теперь давайте глянем, как то же самое делается в TensorFlow:
import tensorflow as tf

model = tf.keras.Sequential([
    tf.keras.layers.Dense(128, activation='relu', input_shape=(784,)),
    tf.keras.layers.Dense(10)
])

# Компилируем модель
model.compile(optimizer='adam',
             loss='sparse_categorical_crossentropy',
             metrics=['accuracy'])
💡 Для создания своей первой модели вам понадобится всего три шага: 1. Подготовка данных (самая нудная, но важная часть) 2. Определение архитектуры (тут можно пофантазировать) 3. Обучение модели (запасайтесь терпением и мощным железом) 🎮 Давайте посмотрим, как выглядит обучение на реальных данных:
# PyTorch стиль
optimizer = torch.optim.Adam(model.parameters())
criterion = nn.CrossEntropyLoss()

for epoch in range(10):
    for batch_x, batch_y in dataloader:
        optimizer.zero_grad()
        outputs = model(batch_x)
        loss = criterion(outputs, batch_y)
        loss.backward()
        optimizer.step()
⚡️ Крутая фишка: используйте GPU-ускорение! Одна строчка кода .to('cuda') в PyTorch или with tf.device('/GPU:0') в TensorFlow - и ваша модель учится в разы быстрее. 🔥 Про что часто забывают новички? Про валидацию! Вот как это делается правильно:
# Разбиваем данные
from sklearn.model_selection import train_test_split

X_train, X_val, y_train, y_val = train_test_split(
    X, y, test_size=0.2, random_state=42
)

# Следим за метриками
val_loss = []
for epoch in range(epochs):
    model.train()
    # ... обучение ...
    
    model.eval()
    with torch.no_grad():
        val_predictions = model(X_val)
        v_loss = criterion(val_predictions, y_val)
        val_loss.append(v_loss.item())

❗️🤖 Искусственный интеллект с Python: создание своих моделей с PyTorch и TensorFlow Привет, питонисты! Сегодня поговорим о т
❗️🤖 Искусственный интеллект с Python: создание своих моделей с PyTorch и TensorFlow Привет, питонисты! Сегодня поговорим о том, как превратить свой код в настоящий искусственный интеллект. Давайте сразу посмотрим на простой пример в PyTorch:
import torch
import torch.nn as nn

class SimpleNet(nn.Module):
    def __init__(self):
        super().__init__()
        self.layer1 = nn.Linear(784, 128)
        self.relu = nn.ReLU()
        self.layer2 = nn.Linear(128, 10)
    
    def forward(self, x):
        x = self.layer1(x)
        x = self.relu(x)
        return self.layer2(x)

Создаем модель одной строчкой! 🎯
model = SimpleNet().to('cuda' if torch.cuda.is_available() else 'cpu')
🤔 Круто, правда? А теперь давайте глянем, как то же самое делается в TensorFlow:
import tensorflow as tf

model = tf.keras.Sequential([
    tf.keras.layers.Dense(128, activation='relu', input_shape=(784,)),
    tf.keras.layers.Dense(10)
])

# Компилируем модель
model.compile(optimizer='adam',
             loss='sparse_categorical_crossentropy',
             metrics=['accuracy'])
💡 Для создания своей первой модели вам понадобится всего три шага: 1. Подготовка данных (самая нудная, но важная часть) 2. Определение архитектуры (тут можно пофантазировать) 3. Обучение модели (запасайтесь терпением и мощным железом) 🎮 Давайте посмотрим, как выглядит обучение на реальных данных:
# PyTorch стиль
optimizer = torch.optim.Adam(model.parameters())
criterion = nn.CrossEntropyLoss()

for epoch in range(10):
    for batch_x, batch_y in dataloader:
        optimizer.zero_grad()
        outputs = model(batch_x)
        loss = criterion(outputs, batch_y)
        loss.backward()
        optimizer.step()
⚡️ Крутая фишка: используйте GPU-ускорение! Одна строчка кода .to('cuda') в PyTorch или with tf.device('/GPU:0') в TensorFlow - и ваша модель учится в разы быстрее. 🔥 Про что часто забывают новички? Про валидацию! Вот как это делается правильно:
# Разбиваем данные
from sklearn.model_selection import train_test_split

X_train, X_val, y_train, y_val = train_test_split(
    X, y, test_size=0.2, random_state=42
)

# Следим за метриками
val_loss = []
for epoch in range(epochs):
    model.train()
    # ... обучение ...
    
    model.eval()
    with torch.no_grad():
        val_predictions = model(X_val)
        v_loss = criterion(val_predictions, y_val)
        val_loss.append(v_loss.item())

AIOgram возвращается!🎉 Разбираем, что такое роутеры 📍 https://www.youtube.com/watch?v=82rrtC6CFJM

Ой, requirements.txt на 1 млн. строк😬
Ой, requirements.txt на 1 млн. строк😬

😝😝 Unit-тестирование vs Property-тестирование: плюсы, минусы и подходы 🤔 Привет, Питонисты! Сегодня поговорим о вечном про
😝😝 Unit-тестирование vs Property-тестирование: плюсы, минусы и подходы 🤔 Привет, Питонисты! Сегодня поговорим о вечном противостоянии в мире тестирования. Знаете, как в споре "табы или пробелы", у нас есть другая горячая тема: unit-тесты против property-based тестирования. Давайте разберёмся без занудства, но с конкретикой! 🎯 Unit-тестирование - это как стрельба по мишеням. Мы точно знаем, какой результат хотим получить, и проверяем конкретные случаи. Например:
def test_sum():
    assert sum([1, 2, 3]) == 6
    assert sum([-1, 1]) == 0
✨ Плюсы unit-тестов: - Понятны даже джуниору - Легко дебажить - Отлично подходят для документирования кода - Быстро выполняются 😤 Минусы: - Покрывают только те кейсы, о которых мы подумали - Часто пропускаем edge-cases - Может быть много копипасты 🎲 А вот property-based тестирование - это как игра в рулетку, только с гарантированным выигрышем! Вместо конкретных значений мы определяем свойства, которым должна соответствовать наша функция. Библиотека (например, hypothesis) сама генерирует тестовые данные:
from hypothesis import given
import hypothesis.strategies as st

@given(st.lists(st.integers()))
def test_sum_properties(numbers):
    assert sum(numbers) == sum(reversed(numbers))
    assert sum(numbers + [0]) == sum(numbers)
🚀 Преимущества property-testing: - Находит неочевидные баги - Меньше кода, больше покрытие - Заставляет думать о свойствах функций, а не о конкретных значениях 🤯 Недостатки: - Сложнее придумывать правильные свойства - Медленнее выполняются - Может быть сложно понять, почему тест упал 💡 Не выбирайте что-то одно! Используйте unit-тесты для очевидных кейсов и документирования, а property-based - для поиска краевых случаев и сложной логики. Особенно это актуально для математических функций, парсеров и сериализаторов. 🎉 В идеальном мире ваши тесты должны быть как хороший детектив - проверять очевидное и раскрывать неожиданное. И помните: лучший тест - тот, который ловит баги до прода!

💥Новый видос о том, как в Pygame игре добавить коллизию. https://youtu.be/dL8OmmDBcxU