Forwarded from Новости Hostetski:)
Ограничения:
- Один бесплатный сервер на аккаунт.
- Заказы проходят ручную модерацию, поэтому время выдачи сервера может составлять до 24 часов.
Важно: Серверы останутся с вами на постоянной основе, пока вы их продлеваете (продление — бесплатно). Вы также можете докупить дополнительные ресурсы к этому тарифу, чтобы пользоваться им как полноценным сервером Cloud.
https://htk.ge/index.php?rp=/store/nat-cloud
и выберите тариф Cloud-F.
Please open Telegram to view this post
VIEW IN TELEGRAM
❤2❤🔥2
Что выдаст код выше?
Anonymous Quiz
25%
С++ the best
46%
Php the best
7%
Ничего
13%
Error
8%
Не знаю
👍3👎2❤1
Python Hub - сборище Питонистов
Photo
Разбор 👨💻
🔍 Что возвращает метод строки find()?
Самый быстрый способ это узнать — заглянуть в документацию Python. Согласно официальной документации, если подстрока не найдена, метод `find()` возвращает -1.
Теперь интересный момент: что произойдет, если преобразовать `-1` в логическое значение? Давайте проверим:
Как видите, -1 в Python считается истинным значением (True) при приведении к типу bool.
Самый быстрый способ это узнать — заглянуть в документацию Python. Согласно официальной документации, если подстрока не найдена, метод `find()` возвращает -1.
Теперь интересный момент: что произойдет, если преобразовать `-1` в логическое значение? Давайте проверим:
print(bool(-1)) # Результат: True
Как видите, -1 в Python считается истинным значением (True) при приведении к типу bool.
Please open Telegram to view this post
VIEW IN TELEGRAM
❤3
Создание CLI приложений с Click в Python: от простого к продвинутому 🚀
Привет, пайтонисты! 👋 Сегодня поговорим о том, как создавать крутые CLI-приложения с помощью Click. Если вам надоело писать бесконечные if'ы для обработки аргументов командной строки, то этот пост определенно для вас!
Начнем с того, почему вообще стоит использовать Click, а не встроенный argparse:
- Декораторный подход, который выглядит элегантно и интуитивно понятен
- Автоматическая генерация справки и сообщений об ошибках
- Вложенные команды из коробки
- Поддержка автодополнения в shell
Давайте посмотрим на простой, но реальный пример. Представим, что мы делаем утилиту для работы с файлами:
Крутая штука в Click – это то, как легко добавлять новые команды. Хотите добавить подкоманду? Просто навешиваете еще один декоратор! 🎯
А теперь лайфхак, который многие упускают: Click умеет создавать красивые прогресс-бары:
Про что еще стоит знать?🤔
Click отлично работает с цветным выводом. Хотите привлечь внимание пользователя? Используйте click.secho():
И напоследок, трюк – создание интерактивных подтверждений:
P.S. Не забудьте установить библиотеку через pip install click.
https://click.palletsprojects.com/en/stable/
Привет, пайтонисты! 👋 Сегодня поговорим о том, как создавать крутые CLI-приложения с помощью Click. Если вам надоело писать бесконечные if'ы для обработки аргументов командной строки, то этот пост определенно для вас!
Начнем с того, почему вообще стоит использовать Click, а не встроенный argparse:
- Декораторный подход, который выглядит элегантно и интуитивно понятен
- Автоматическая генерация справки и сообщений об ошибках
- Вложенные команды из коробки
- Поддержка автодополнения в shell
Давайте посмотрим на простой, но реальный пример. Представим, что мы делаем утилиту для работы с файлами:
import click
@click.group()
def cli():
"""Утилита для работы с файлами"""
pass
@cli.command()
@click.argument('path')
@click.option('--lines', '-l', is_flag=True, help='Показать количество строк')
def analyze(path, lines):
"""Анализирует файл и выводит статистику"""
try:
with open(path) as f:
content = f.readlines()
if lines:
click.echo(f'Количество строк: {len(content)}')
except FileNotFoundError:
click.secho('Файл не найден! 😱', fg='red')
if __name__ == '__main__':
cli()
Крутая штука в Click – это то, как легко добавлять новые команды. Хотите добавить подкоманду? Просто навешиваете еще один декоратор! 🎯
А теперь лайфхак, который многие упускают: Click умеет создавать красивые прогресс-бары:
@cli.command()
@click.argument('path')
def process(path):
"""Обрабатывает файлы с прогресс-баром"""
files = os.listdir(path)
with click.progressbar(files, label='Обработка файлов') as bar:
for f in bar:
# что-то делаем с файлом
time.sleep(0.1)
Про что еще стоит знать?
Click отлично работает с цветным выводом. Хотите привлечь внимание пользователя? Используйте click.secho():
click.secho('Внимание! 🚨', fg='yellow', bold=True)
click.secho('Ошибка! ❌', fg='red')
click.secho('Успех! ✅', fg='green')И напоследок, трюк – создание интерактивных подтверждений:
if click.confirm('Уверены, что хотите удалить все файлы? 🤔'):
click.echo('Поехали! 🚀')P.S. Не забудьте установить библиотеку через pip install click.
https://click.palletsprojects.com/en/stable/
Please open Telegram to view this post
VIEW IN TELEGRAM
👍3
Please open Telegram to view this post
VIEW IN TELEGRAM
YouTube
Сделать ИГРУ на PYGAME Python | 2D Shooter | Коллизия, карта
В этом видео мы продолжим создавать 2д игру, а именно 2d shooter на библиотеке Pygame, используя Python. Сегодня мы добавим коллизию, чтобы человек не смог ходить и стрелять сквозь стены (spritecollide), а так же добавим само создание карты.
🔥 Подписывайся…
🔥 Подписывайся…
👍2
🤔 Привет, Питонисты! Сегодня поговорим о вечном противостоянии в мире тестирования. Знаете, как в споре "табы или пробелы", у нас есть другая горячая тема: unit-тесты против property-based тестирования. Давайте разберёмся без занудства, но с конкретикой!
🎯 Unit-тестирование - это как стрельба по мишеням. Мы точно знаем, какой результат хотим получить, и проверяем конкретные случаи. Например:
def test_sum():
assert sum([1, 2, 3]) == 6
assert sum([-1, 1]) == 0
- Понятны даже джуниору
- Легко дебажить
- Отлично подходят для документирования кода
- Быстро выполняются
- Покрывают только те кейсы, о которых мы подумали
- Часто пропускаем edge-cases
- Может быть много копипасты
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:
- Находит неочевидные баги
- Меньше кода, больше покрытие
- Заставляет думать о свойствах функций, а не о конкретных значениях
🤯 Недостатки:
- Сложнее придумывать правильные свойства
- Медленнее выполняются
- Может быть сложно понять, почему тест упал
Please open Telegram to view this post
VIEW IN TELEGRAM
👍3
Please open Telegram to view this post
VIEW IN TELEGRAM
👍6😁3🗿2❤1
Please open Telegram to view this post
VIEW IN TELEGRAM
YouTube
Роутеры и структура бота AIOgram 3 | PYTHON TELEGRAM BOT | Router
В этом видео мы рассмотрим новую тему библиотеки Aiogram, которая нужна для написания телеграм ботов на Python. А именно поговорим про роутеры и то, как разбить телеграм бота на файлы.
🔥 Подписывайся на наш Телеграм-канал про Python 🔥
🖇 https://t.me/pythonhub001…
🔥 Подписывайся на наш Телеграм-канал про Python 🔥
🖇 https://t.me/pythonhub001…
👍3❤1
Привет, питонисты! Сегодня поговорим о том, как превратить свой код в настоящий искусственный интеллект.
Давайте сразу посмотрим на простой пример в 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')
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()
# Разбиваем данные
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())
Please open Telegram to view this post
VIEW IN TELEGRAM
👍3❤1
Please open Telegram to view this post
VIEW IN TELEGRAM
👍6❤1
Признайтесь, кто из вас устал от статичных 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:
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: если работаете с большими данными или нужна глубокая кастомизация
Please open Telegram to view this post
VIEW IN TELEGRAM
❤2👍1
В мире 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. Контекст выполнения:
- Функции независимы от контекста
- Методы всегда работают в контексте своего класса
Когда использовать функции:
• Для операций, не требующих доступа к состоянию объекта
• При работе с независимыми данными
• Для создания утилитарных операций
Когда использовать методы:
• При работе с данными объекта
• Когда логика тесно связана с классом
• Для реализации поведения объекта
Please open Telegram to view this post
VIEW IN TELEGRAM
👍5❤1
Please open Telegram to view this post
VIEW IN TELEGRAM
YouTube
Сделать ИГРУ на PYGAME Python | 2D Shooter | Бот, Перестрелка
В этом видео мы продолжим создавать 2д игру, а именно 2d shooter на библиотеке Pygame, используя Python. Сегодня мы добавим бота, нашего противника, который сможет перемещаться по карте, а так же стрелять в нас.
🔥 Подписывайся на наш Телеграм-канал про Python…
🔥 Подписывайся на наш Телеграм-канал про Python…
❤1👍1
Разработка игр на 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 доберётесь! 😉
- Простой и понятный синтаксис
- Огромное комьюнити
- Отличная документация
- Ограниченные возможности для 3D
- Не самая высокая производительность
- Современный и чистый API
- Встроенная физика
- Хорошая производительность
- Меньше обучающих материалов
- Относительно молодая библиотека
- Работает на всех платформах, включая мобильные
- Поддержка мультитач
- Сложнее в освоении
- Больше подходит для приложений
🛠 Из личного опыта могу сказать – начните с Pygame. Эта библиотека как конструктор LEGO: простая, понятная и при этом мощная. Вот что можно сделать уже на старте:
- 2D-платформеры
- Аркады
- Головоломки
- Карточные игры
- Шутеры с видом сверху
💡 Но есть и подводные камни (куда же без них?). Python не самый быстрый язык, поэтому для создания масштабных 3D-игр лучше выбрать что-то другое. Зато для прототипирования или создания небольших игр – самое то!
🔥 А знаете, что самое крутое? Комьюнити! Python-разработчики всегда готовы помочь и поделиться опытом. На GitHub полно открытых проектов, где можно подсмотреть решения и научиться новому.
🎮 И помните главное: создание игр – это не только код. Это творчество, это история, это дизайн. Даже простая игра может стать хитом, если в неё вложить душу и креатив.
💪 Так что не бойтесь экспериментировать! Python + геймдев = отличная комбинация для старта. А там, глядишь, и до Steam доберётесь! 😉
Please open Telegram to view this post
VIEW IN TELEGRAM
❤5🤔1
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
• Планировщик задач для автоматизации
Please open Telegram to view this post
VIEW IN TELEGRAM
👍5❤1
Захостить сайт у себя на компе, но чтобы он был в публичном доступе? 😳
Легко за 5 минут👏
https://youtu.be/_1V2lrCtR4E
Легко за 5 минут
https://youtu.be/_1V2lrCtR4E
Please open Telegram to view this post
VIEW IN TELEGRAM
YouTube
Ngrok ХОСТИНГ сайта в ИНТЕРНЕТЕ бесплатно на своем ПК | Python
В этом видео мы узнаем, как использовать Ngrok для хостинга сайта в интернете бесплатно прямо ПК. Мы покажем пошаговую настройку и использование Ngrok вместе с Python, чтобы ваш локальный сервер стал доступен в интернете. Это идеальное решение для демонстрации…
👍4
Python часто называют интерпретируемым языком программирования, и на это есть веские причины. Давайте разберемся, почему это так и какие преимущества это даёт.
Python использует двухэтапный процесс выполнения кода:
- Сначала исходный код компилируется в байт-код (.pyc файлы)
- Затем этот байт-код выполняется интерпретатором Python (PVM - Python Virtual Machine)
Создатель Python, Гвидо ван Россум, сделал этот выбор по нескольким причинам:
-
-
- 🛠 Простота отладки: можно остановить программу в любой момент и проверить состояние переменных
-
На самом деле, Python не является чисто интерпретируемым языком. Он использует гибридный подход:
- Компиляция в байт-код происходит автоматически
- Скомпилированный байт-код кэшируется для ускорения последующих запусков
- Существуют компиляторы Python в машинный код (PyPy, Cython), но они используются в специфических случаях
Интерпретируемая природа Python - это осознанный выбор, который делает язык более гибким и удобным для разработчиков, хотя и с некоторой потерей в производительности по сравнению с компилируемыми языками.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍2❤1