Pythoner
7.23K subscribers
860 photos
27 videos
4 files
654 links
Полезные материалы по Python, которые будут интересны опытному и начинающему разработчику.

Сотрудничество - @flattys
Цены - @serpent_media

Канал на бирже: https://telega.in/c/pythonercode
Download Telegram
🎄Дорогие подписчики, поздравляем вас с Новым годом! 🎄

Спасибо что читаете, ставите реакции и комментируете наш канал 🥰

И самое главное помните что следующий год предоставит вам гораздо больше возможностей для роста. Наш информационный канал поможет вам стать гораздо лучше и достичь всех начинаний которых вы хотите, и также напоминаем что Новый год - это семейный праздник, сделайте всё возможное чтобы встретить его в кругу близких друзей и родных, всего самого наилучшего, в новом 2025 году!
Please open Telegram to view this post
VIEW IN TELEGRAM
18👍6🔥3
✈️В мире 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. Контекст выполнения:

- Функции независимы от контекста
- Методы всегда работают в контексте своего класса

💡Практические примеры использования

➡️Когда использовать функции:
• Для операций, не требующих доступа к состоянию объекта
• При работе с независимыми данными
• Для создания утилитарных операций

➡️Когда использовать методы:
• При работе с данными объекта
• Когда логика тесно связана с классом
• Для реализации поведения объекта

🐍 Pythoner
Please open Telegram to view this post
VIEW IN TELEGRAM
👍96🔥4
✈️JPype — это библиотека для Python, которая позволяет взаимодействовать с Java-кодом непосредственно из Python. Она создает мост между обеими языками, позволяя вызывать Java-классы и методы так, как если бы они были написаны на Python. Это особенно полезно, если требуется использовать существующий Java-код в проектах на Python.

➡️Пример использования JPyp:

Ниже показан простой пример, который демонстрирует, как использовать JPype для вызова метода Java.

1. Предположим, у вас есть Java-класс HelloWorld, который выглядит следующим образом:
public class HelloWorld {
public static String greeting() {
return "Hello from Java!";
}
}


2. Компилируйте этот класс и убедитесь, что .class файл доступен.

3. Затем вы можете использовать следующий код на Python для вызова метода greeting:
import jpype

# Запуск виртуальной машины Java
jpype.startJVM(jpype.getDefaultJVMPath())

# Загрузка класса
HelloWorld = jpype.JClass("HelloWorld")

# Вызов метода
result = HelloWorld.greeting()
print(result) # Вывод: Hello from Java!

# Остановка виртуальной машины Java
jpype.shutdownJVM()


💡Не забудьте, что нужно корректно настроить пути к вашим Java классам, если они находятся в отдельных пакетах или библиотеках.

➡️Основные области применения JPype:
— Доступ к библиотекам Java из Python.
— Интеграция с существующим Java кодом.
— Использование JVM из Python.

🐍 Pythoner
Please open Telegram to view this post
VIEW IN TELEGRAM
👍84🔥2👌1
✈️Сегодня поговорим о том, как превратить ваши навыки Python в настоящие игровые шедевры.

➡️Начнём с того, что Python – это не просто язык для веб-разработки или data science. Благодаря множеству специализированных библиотек, мы можем творить настоящие чудеса. И нет, я не шучу – на Python создано немало крутых инди-игр!

➡️Самое крутое в разработке игр на Python – низкий порог входа. Если вы уже знаете основы языка, то буквально за пару дней сможете создать свой первый платформер или "змейку". А дальше – только ваша фантазия и упорство!

➡️Основные библиотеки для геймдева

🎮 Pygame - самая популярная библиотека:

—Простой и понятный синтаксис
—Огромное комьюнити
—Отличная документация
—Ограниченные возможности для 3D
—Не самая высокая производительность

🎮Arcade - современная альтернатива:

—Современный и чистый API
—Встроенная физика
—Хорошая производительность
—Меньше обучающих материалов
—Относительно молодая библиотека

🎮Kivy - для кроссплатформенной разработки:

—Работает на всех платформах, включая мобильные
—Поддержка мультитач
—Сложнее в освоении
—Больше подходит для приложений

➡️Из личного опыта могу сказать – начните с Pygame. Эта библиотека как конструктор LEGO: простая, понятная и при этом мощная. Вот что можно сделать уже на старте:

—2D-платформеры
—Аркады
—Головоломки
—Карточные игры
—Шутеры с видом сверху

💡Но есть и подводные камни (куда же без них?). Python не самый быстрый язык, поэтому для создания масштабных 3D-игр лучше выбрать что-то другое. Зато для прототипирования или создания небольших игр – самое то!

🐍 Pythoner
Please open Telegram to view this post
VIEW IN TELEGRAM
👍85🔥3
✈️ В Python Modin — это крутая библиотека, которая позволяет ускорить работу с Pandas DataFrames, распараллеливая вычисления на все доступные ядра процессора. Она практически полностью совместима с API Pandas, что делает переход на Modin очень простым.

➡️ Применение Modin особенно актуально при работе с большими датасетами, которые не помещаются в оперативную память или обрабатываются слишком медленно с помощью стандартного Pandas. Просто заменив import pandas as pd на import modin.pandas as pd, можно значительно ускорить выполнение многих операций, таких как чтение данных, фильтрация, агрегация и другие.

➡️ Вот пример использования Modin:

# !pip install modin[ray] # или modin[dask], если предпочитаете Dask
import time
import modin.pandas as pd # Замена import pandas as pd

start_time = time.time()

# Загрузка большого датасета (замените на свой путь к файлу)
df = pd.read_csv("large_dataset.csv")

# Выполнение некоторых операций с DataFrame
# ... (например, фильтрация, агрегация и т.д.) ...
df = df[df['column_name'] > 100]
df = df.groupby(['column_name1','column_name2'])['column_name3'].sum()


end_time = time.time()

print(f"Время выполнения с Modin: {end_time - start_time} секунд")



# Для сравнения, выполните тот же код с обычным Pandas:
import time
import pandas as pd

start_time = time.time()

# Загрузка большого датасета (замените на свой путь к файлу)
df = pd.read_csv("large_dataset.csv")

# Выполнение некоторых операций с DataFrame
# ... (например, фильтрация, агрегация и т.д.) ...
df = df[df['column_name'] > 100]
df = df.groupby(['column_name1','column_name2'])['column_name3'].sum()


end_time = time.time()

print(f"Время выполнения с Pandas: {end_time - start_time} секунд")



⬆️ В этом примере демонстрируется, как легко перейти с Pandas на Modin. Запустите код сначала с modin.pandas, а затем с обычным pandas, чтобы сравнить время выполнения. Для больших датасетов Modin может значительно сократить время обработки, автоматически распараллеливая вычисления. Убедитесь, что у вас установлен Ray или Dask (в зависимости от выбранного движка для Modin) и замените "large_dataset.csv" на путь к вашему большому CSV-файлу.

🐍 Pythoner
Please open Telegram to view this post
VIEW IN TELEGRAM
👍75🔥3
✈️ В Python boltons — это набор полезных утилит и инструментов, расширяющих стандартную библиотеку Python. Он предоставляет решения для работы с коллекциями данных, итераторами, функциями, строками, файлами и другими распространенными задачами. boltons помогает писать более чистый, лаконичный и эффективный код.

➡️ Применение boltons повышает производительность разработки, предоставляя готовые решения для часто встречающихся задач. Библиотека хорошо документирована и легко интегрируется в существующие проекты.

➡️ Вот пример использования некоторых модулей boltons:

from boltons.iterutils import chunked

data = list(range(20))
chunks = list(chunked(data, 4)) # Разделение данных на чанки размером 4
print(chunks)
# Вывод: [[0, 1, 2, 3], [4, 5, 6, 7], [8, 9, 10, 11], [12, 13, 14, 15], [16, 17, 18, 19]]


from boltons.dictutils import OMD
# Ordered Multi Dict, сохраняет порядок добавления ключей и позволяет иметь несколько значений для одного ключа

omd = OMD()
omd[1] = "a"
omd[2] = "b"
omd[1] = "c"

print(omd)
# Вывод: OMD([(1, 'a'), (2, 'b'), (1, 'c')])
print(omd.getlist(1)) # Получение всех значений для ключа 1
# Вывод: ['a', 'c']



from boltons.funcutils import wraps

def my_decorator(f):
@wraps(f) # Сохраняет метаданные оригинальной функции
def wrapper(*args, **kwargs):
print("Before function call")
result = f(*args, **kwargs)
print("After function call")
return result
return wrapper

@my_decorator
def my_function(a, b):
"""
This is my function.
"""
return a + b

print(my_function(1, 2))
# Вывод:
# Before function call
# After function call
# 3
print(my_function.__doc__) # Метаданные сохраняются благодаря wraps
# Вывод: This is my function.




⬆️ В этом примере демонстрируется использование chunked для разделения списка на чанки, OMD (Ordered Multi Dict) для работы со словарем, сохраняющим порядок и позволяющим иметь несколько значений для одного ключа, и wraps для создания декораторов, сохраняющих метаданные декорируемых функций. Эти примеры показывают лишь небольшую часть функциональности, предоставляемой boltons. Библиотека содержит множество других полезных инструментов для различных задач.

🐍 Pythoner
Please open Telegram to view this post
VIEW IN TELEGRAM
6👍4🔥2
➡️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. 🚀 Jupyter Lab

https://jupyter.org

• Интерактивные ноутбуки с поддержкой markdown
• Продвинутая визуализация данных и графиков
• Поддержка множества форматов (Python, R, Julia)
• Расширяемость через систему плагинов
• Встроенный просмотрщик CSV, JSON, изображений
• Интерактивные виджеты для данных
• Возможность создания презентаций

➡️4. ⚡️ Python Anywhere

https://www.pythonanywhere.com

• Полноценный хостинг веб-приложений Python
• Консоль Python с доступом через браузер
• Поддержка популярных фреймворков (Django, Flask)
• Встроенная поддержка MySQL и PostgreSQL
• Бесплатный тариф с базовым функционалом
• Автоматическое обновление сертификатов SSL
• Планировщик задач для автоматизации

🐍 Pythoner
Please open Telegram to view this post
VIEW IN TELEGRAM
7🔥5👍4
✈️ В Python peewee — это легковесная и простая в использовании ORM (Object-Relational Mapper) библиотека. Она предоставляет удобный интерфейс для работы с базами данных, позволяя взаимодействовать с ними с помощью объектов Python вместо написания SQL-запросов.

➡️ Применение peewee упрощает разработку приложений, работающих с базами данных, делая код более чистым, понятным и легко поддерживаемым. Она поддерживает SQLite, MySQL, PostgreSQL и другие популярные СУБД.

➡️ Вот пример использования peewee для работы с базой данных SQLite:

from peewee import *

# Создаем подключение к базе данных SQLite (или подключаемся к существующей)
db = SqliteDatabase('my_database.db')

# Определяем модель данных (таблицу)
class User(Model):
username = CharField(unique=True)
password = CharField()
email = CharField()
active = BooleanField(default=True)
joined_date = DateTimeField()

class Meta:
database = db # Связываем модель с базой данных


# Создаем таблицу в базе данных (если она не существует)
db.connect()
db.create_tables([User])

# Создаем нового пользователя
user = User(username='testuser', password='password', email='test@example.com', joined_date='2024-07-26 10:00:00')
user.save() # Сохраняем пользователя в базу данных


# Получаем пользователя по имени пользователя
retrieved_user = User.get(User.username == 'testuser')
print(retrieved_user.email) # Вывод: test@example.com

# Обновляем данные пользователя
retrieved_user.active = False
retrieved_user.save()

# Удаляем пользователя
retrieved_user.delete_instance()

# Запрос с фильтрацией
active_users = User.select().where(User.active == True)
for user in active_users:
print(user.username)



db.close()

⬆️ В этом примере демонстрируется создание модели данных User, подключение к базе данных SQLite, создание таблицы, добавление, получение, обновление и удаление записей. Также показан пример простого запроса с фильтрацией. peewee предоставляет интуитивно понятный интерфейс для работы с базами данных, делая код более читаемым и легким в поддержке, чем при использовании сырых SQL-запросов.

🐍 Pythoner
Please open Telegram to view this post
VIEW IN TELEGRAM
👍64🔥3
✈️Vibora - это быстрый и мощный асинхронный веб-фреймворк для Python, который предназначен для разработки высокопроизводительных веб-приложений. Он основан на асинхронном сервере uvloop и является оптимизированным для работы с асинхронным вводом-выводом, что позволяет обрабатывать тысячи запросов в секунду.

➡️Основные особенности Vibora:

➡️Высокая производительность: благодаря использованию асинхронного ввода-вывода и оптимизированному серверу uvloop, Vibora обеспечивает высокую скорость обработки запросов.

➡️Минимализм и простота: Vibora имеет минималистичный и простой в использовании синтаксис, что упрощает разработку веб-приложений.

➡️Поддержка HTTP/1.1 и HTTP/2: Vibora поддерживает как HTTP/1.1, так и HTTP/2, что позволяет использовать передачу данных через множество потоков для улучшения производительности веб-приложений.

➡️Встроенная поддержка маршрутизации: Vibora предоставляет мощные средства для определения и обработки URL-адресов и запросов.

➡️Поддержка плагинов: Vibora позволяет расширить функциональность фреймворка за счет использования плагинов.

🐍 Pythoner
Please open Telegram to view this post
VIEW IN TELEGRAM
6👍3🔥2
✈️Комплексные числа представлены типом данных complex.

➡️Комплексные числа можно создавать разными способами:
— Используя конструктор complex(a, b), где a — действительная часть, b — мнимая.
— Из вещественного числа, добавив к нему мнимую часть. Например, a + bj.
— Из строкового представления с помощью
complex(string).

➡️С комплексными числами можно выполнять стандартные математические операции.
Для доступа к частям комплексного числа используются атрибуты real и imag.

💡Встроенные функции abs(), conjugate(), polar() позволяют получить модуль, сопряженное число и представление в тригонометрической форме.

🐍 Pythoner
Please open Telegram to view this post
VIEW IN TELEGRAM
6👍52🔥2
✈️collections.Mapping — это абстрактный базовый класс, который представляет отображение ключ-значение.
Он наследуется встроенными типами словарей, такими как dict, а также другими типами, которые реализуют схожее поведение, например OrderedDict.

➡️Класс Mapping определяет интерфейс, общий для всех отображений ключ-значение, включая такие методы как keys(), values(), items() и другие.
Это позволяет писать универсальный код, который будет работать с любым типом, реализующим этот интерфейс.

💡Например, Mapping часто используется вместе с isinstance или issubclass для проверки, является ли объект словарем. Также он полезен при написании функций, которым нужно принимать на вход отображения, но без привязки к конкретному типу как dict. Mapping гарантирует наличие основных методов словаря у переданного объекта.

🐍 Pythoner
Please open Telegram to view this post
VIEW IN TELEGRAM
👍83🔥3
Forwarded from IT memer
Please open Telegram to view this post
VIEW IN TELEGRAM
😁21🤣9👍73🤬1
✈️Тернарный оператор, также известный как условный оператор, является уникальным оператором, который используется для выполнения конденсированных версий простых операторов if-else. Он принимает три аргумента: условие, значение, если условие истинно, и значение, если условие ложно.

➡️Применение тернарного оператора

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

➡️Тернарный оператор в Python

Да, Python поддерживает тернарный оператор. В Python тернарный оператор выглядит следующим образом: x if condition else y. Здесь x присваивается, если условие истинно, иначе присваивается y.

➡️Пример использования тернарного оператора в Python:
age = 15
type = "teenager" if age < 18 else "adult"
print(type) # Выведет: teenager


⬆️В этом примере, если переменная age меньше 18, переменной type присваивается значение "teenager", в противном случае - "adult".

🐍 Pythoner
Please open Telegram to view this post
VIEW IN TELEGRAM
👍163🔥3
✈️rembg — это библиотека для Python, предназначенная для удаления фона с изображений. Она использует модели машинного обучения для сегментации объектов на изображении, что позволяет извлекать главный объект, удаляя все остальные элементы, включая фон.

➡️Основные возможности:
— Автоматическое удаление фона с использованием нейросетей.
— Возможность точной настройки для сложных изображений .
— Поддержка изображений разных форматов — JPG, PNG, GIF и др.

💡Rembg использует модели глубокого обучения, предварительно обученные на больших наборах данных. Это позволяет достичь хороших результатов по удалению фона.
Также библиотека позволяет быстро интегрировать удаление фона в любые проекты на Python, где требуется обработка изображений. Простой API и хорошее качество делают эту библиотеку полезным инструментом для разных задач.

🐍 Pythoner
Please open Telegram to view this post
VIEW IN TELEGRAM
👍64🔥3
✈️Pyspark — это библиотека для работы с Apache Spark на языке Python. Она позволяет выполнять распределенные вычисления на кластерах и обрабатывать большие объемы данных.

➡️Основные возможности Pyspark:
Pyspark автоматически распределяет данные и вычисления между узлами кластера для максимальной производительности.
— В Pyspark есть специальные типы данных (RDD, DataFrame, Dataset), которые позволяют удобно работать с табличными и структурированными данными.
— Поддержка чтения и записи в разные хранилища данных и форматы файлов.
— Встроенные алгоритмы машинного обучения для классификации, кластеризации, регрессии.
— Интуитивно понятный API, позволяющий применять Pyspark вместе с другими популярными библиотеками Python для анализа данных.

🔎Таким образом, Pyspark используется для быстрой параллельной обработки больших объемов данных с помощью кластеров, что делает его очень полезным инструментом для big data и машинного обучения.

🐍 Pythoner
Please open Telegram to view this post
VIEW IN TELEGRAM
5👍4🔥3🙈1
👍62
Что выдаст код выше
Anonymous Quiz
20%
True
33%
False
41%
Error
5%
S_1
2%
S_2
😐7👍3🤔3👏1🤨1
🤔Разбор

В переменную L будет помещен список [1, 1, 1, 2, 2, 2]
Далее мы считаем длину set'a этого списка. set убирает все повторяющиеся элементы —> длина 1, 2 —> 2
Далее то же самое, только со всей длиной списка —> 6

Задача на внимательность: выводим выражение 2 in 6 —> мы не можем in'ом проверять int в int'е.
Ответ: ошибка
Please open Telegram to view this post
VIEW IN TELEGRAM
👍11🤓62🔥1
✈️Функция sets.isuperset() позволяет проверить, является ли один set подмножеством другого.
Она принимает в качестве аргумента другой set и возвращает boolean значение — True если первый set содержит все элементы второго, и False в противном случае.

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

🐍 Pythoner
Please open Telegram to view this post
VIEW IN TELEGRAM
👍54🔥2
✈️Click — популярная библиотека для создания интерфейса командной строки (CLI) в приложениях Python.
Основные преимущества Click — простота использования, элегантный и понятный код, мощные возможности по созданию комплексных CLI. Работает на Python 3.6 и выше.


➡️Возможности:
— Определение команд и групп команд с помощью декоратора @click.command().
— Декларативное описание аргументов и опций.
— Автоматический парсинг аргументов командной строки.
— Генерация help сообщения.
— Поддержка bash/zsh автодополнения.
— Вложенные команды и группы подкоманд.
— Цветной вывод в терминал.

🔎Click широко используется для создания консольных утилит, CLI интерфейсов для web фреймворков, DevOps инструментов, скриптов автоматизации и других задач, где требуется командная строка.

🐍 Pythoner
Please open Telegram to view this post
VIEW IN TELEGRAM
👍43🔥3