Ghostly Python
9.01K subscribers
535 photos
24 videos
599 links
Погружаемся в мир Python: задачи, фишки, библиотеки и террабайты полезного материала.

Сотрудничество: @heywan_n1

Цены: @heywan_media

Реклама на бирже: https://telega.in/c/+IOa15XDNbxRkYzNi
Download Telegram
🛡 Скрипт: Установка водяных знаков на изображения

Иногда проще запустить скрипт, чем фотошоп. Если картинок много — тем более. Код сам расставит водяные знаки на ваши изображения.

В скрипте вы можете задать степень прозрачности, расположение знака и так далее. В качестве переменных подаются папка с картинками, путь до водяного знака (лучше формат .png) и папка вывода.

Что делает скрипт?

1. Считывает путь к папке с изображениями и к файлу водяного знака.
2. Автоматически размещает водяной знак в нижнем правом углу каждого изображения.
3. Сохраняет обработанные файлы в отдельной папке output.

✔️ Используемые библиотеки:

🟢 os — для работы с файлами и папками.
🟢 Pillow (PIL) — для обработки изображений.

pip install pillow


📂 Скрипт с подробным комментированием кода уже в архиве:


➡️ Скачать...

🐍 Ghostly Python | #скрипты
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥62👍2
🔐 PyArmor: защита кода на Python

PyArmor — это мощный инструмент, разработанный для повышения безопасности ваших Python-приложений. Он позволяет защитить код от несанкционированного использования, декомпиляции и модификации, применяя шифрование и обфускацию.

⚙️ Основные возможности:

➡️ Шифрование исходного кода, предотвращающее прямое чтение файлов.
➡️ Обфускация названий переменных, функций и классов, что затрудняет анализ кода.
➡️ Создание исполняемых файлов, упрощающее распространение приложений.

Как использовать:

1. Для установки PyArmor выполните команду:

pip install pyarmor  


2. Чтобы зашифровать и обфусцировать ваш код, воспользуйтесь командой:

pyarmor gen my_script.py  


После выполнения этой команды будет создан каталог dist, содержащий защищённую версию вашего скрипта.


PyArmor предоставляет широкий набор настроек, включая выбор алгоритма шифрования, использование лицензий для запуска и настройку ключей. Поэтому прежде, чем начать использовать, рекомендую изучить документацию.

➡️ Ссылка на документацию

🐍 Ghostly Python | #инструменты
Please open Telegram to view this post
VIEW IN TELEGRAM
👍72
This media is not supported in your browser
VIEW IN TELEGRAM
⚙️ Библиотеки Python под разные задачи

🐍 Ghostly Python
Please open Telegram to view this post
VIEW IN TELEGRAM
👍12
⭐️ Разработка Telegram бота с оплатой звездами (Telegram Stars)

Не так давно, в телеграмме появился новый способ оплаты, с помощью внутренней валюты — stars ⭐️.

И в этом видео вы узнаете, как добавить в вашего телеграмм бота оплату этими звездами (старсами). Использовать будем язык программирования Python и библиотеку Aiogram. Далее загрузим бота на хостинг, чтобы он мог работать без остановки.

➡️ Ссылка на источник

🐍 Ghostly Python | #уроки
Please open Telegram to view this post
VIEW IN TELEGRAM
👍72🥰1
Как писать чистый и читаемый код

Данный небольшой чек-лист, представляет собой базовые правила того, как стоит писать код, чтобы он выглядел чисто и читался легко.

1️⃣ Используйте понятные имена

Переменные, функции и классы должны описывать, что они делают. Например:

a = 10 # это плохо 
user_age = 10 # а вот это уже хорошо


2️⃣ Следите за длиной функций

Функции должны быть короткими и выполнять одну задачу. Если функция разрастается, разбейте её на несколько.

3️⃣ Оформляйте код по PEP 8

Используйте стандарт стиля Python:

💬 Отступы — 4 пробела.
💬 Пустые строки между функциями.
💬 Лимит строки — 79 символов.
💬 Для проверки стиля используйте flake8.

4️⃣ Документируйте функции

Используйте docstring, чтобы объяснить, что делает функция.

def calculate_area(width, height):  
"""Вычисляет площадь прямоугольника."""
return width * height


5️⃣ Убирайте "магические числа"

Не пишите числа или строки напрямую в коде. Замените их на переменные с понятными именами.

if status == 1: # так не делаем 
if status == ACTIVE: # тут норм


6️⃣ Разбивайте длинные выражения

Если выражение сложное, разбейте его на несколько строк или переменных.

7️⃣ Пишите тесты

Тесты помогают обнаруживать ошибки и поддерживать качество кода. Используйте pytest.

8️⃣ Избавляйтесь от мусора

Удаляйте неиспользуемые переменные, комментарии и устаревший код.

9️⃣ Следите за читаемостью кода

Если код сложен для понимания, не забудьте добавить комментарии. Только не стоит перебарщивать.

1️⃣0️⃣ Не изобретайте велосипед

Используйте стандартные библиотеки и популярные open-source решения, чтобы не тратить время на то, что уже придумано.


Следуя этим простым правилам, вы улучшите свой код и сделаете его простым в освоении для других разработчиков.

Кому нужно, в архив добавил PDF версию данного чек-листа. Сохраняйте ⬇️


🗄 Скачать PDF из архива

🐍 Ghostly Python | #шпаргалки
Please open Telegram to view this post
VIEW IN TELEGRAM
👍9❤‍🔥4🍓2
💬 Задача: Что будет выведено в консоль?

x = "Python"
x = x[:3] + "3" + x[4:]

print(x)


Выберите вариант ответа ниже 🔽

🐍 Ghostly Python | #задачи
Please open Telegram to view this post
VIEW IN TELEGRAM
👍7
😁12👏4
📱 Мастхэв для питониста — awesome-python

Гулял по этим вашим интернетам, и наткнулся на интересный ресурс — Awesome Python. Это прям энциклопедия всех годных библиотек, фреймворков и утилит для Python.

📌 Что там есть:

🟢 Всё разложено по полочкам: веб, базы данных, парсинг, машинное обучение, тестирование — короче, на любой вкус.

🟢 Прямые ссылки на репозитории — глянул код, заценил, скачал.

🟢 Новые идеи для проектов: полистал пару разделов — и уже хочется что-то запилить.

В общем, отличный ресурс для экономии времени и поиска готовых решений. Зацените по ссылке ниже:

➡️ Ссылка на awesome python

🐍 Ghostly Python | #ресурсы
Please open Telegram to view this post
VIEW IN TELEGRAM
👍9🔥41
🔄 Распаковка списков и кортежей в аргументы

Когда у вас есть список или кортеж, и нужно передать его элементы в функцию, можно сделать это гораздо элегантнее, распаковав данные в одну строку. Вместо того чтобы передавать каждый элемент по отдельности, можно использовать * для распаковки.

⚙️ Пример №1

def greet(name, age):
print(f"Привет, {name}! Тебе уже {age} лет.")

data = ["Алекс", 25]
greet(*data)


➡️ Результат: Привет, Алекс! Тебе уже 25 лет.

*data — распаковывает список или кортеж, передавая каждый элемент в соответствующий аргумент функции.

Для словарей можно использовать ** для распаковки ключей и значений: **data. В данном случае **data распакует словарь и передаст его ключи как имена аргументов.

Распаковка — это удобный и элегантный способ передавать данные в функции, особенно когда у вас есть коллекции или словари. Простой способ упростить код и повысить его читаемость.


🐍 Ghostly Python | #фишки
Please open Telegram to view this post
VIEW IN TELEGRAM
👍94🤩3
💬 Что должен уметь junior python разработчик?

Нашёл отличное видео для тех, кто хочет стать Python-разработчиком. В нём подробно рассказывается, какие навыки нужны, какие проекты используют Python и что нужно знать на старте.

Есть объяснение важности ООП, Git и выбора специализации. Автор также поможет разобраться, что должно быть в резюме junior-разработчика и почему важно развивать soft skills для успешной карьеры

📱 Ссылка на источник

🐍 Ghostly Python | #уроки
Please open Telegram to view this post
VIEW IN TELEGRAM
👍10
🦎 Создаём CLI-приложение для проверки цен криптовалют с Typer

Сегодня мы создадим простое приложение на Python, которое подключается к API CoinGecko и выводит текущую цену выбранной криптовалюты. Всё это с помощью библиотеки Typer, которая делает разработку командных приложений лёгкой и быстрой.

1️⃣ Устанавливаем необходимые библиотеки

pip install requests typer


2️⃣ Получаем API для цен криптовалют

Мы будем использовать бесплатное API от CoinGecko. Оно не требует регистрации и API-ключа, что делает его очень удобным для быстрого старта.

3️⃣ Создаём скрипт

Теперь создадим файл crypto_checker.py и напишем код, который будет получать и выводить актуальную цену криптовалюты:

import requests
import typer


app = typer.Typer()
API_URL = "https://api.coingecko.com/api/v3/simple/price"


@app.command()
def get_crypto_price(crypto: str, currency: str = "usd"):
"""Получаем текущую цену криптовалюты в указанной валюте"""
try:
response = requests.get(
f"{API_URL}?ids={crypto}&vs_currencies={currency}")
data = response.json()
price = data[crypto][currency]
return price
except KeyError:
raise ValueError(f"Не удалось получить цену для криптовалюты:{crypto}")


@app.command()
def check_price(crypto: str, currency: str = "usd"):
"""Выводит текущую цену криптовалюты в указанной валюте"""
try:
price = get_crypto_price(crypto, currency)
typer.echo(f"Текущая цена {crypto.upper()} в {
currency.upper()}: {price:.2f}")
except ValueError as e:
typer.echo(f"Ошибка: {e}")


if __name__ == "__main__":
app()


4️⃣ Использование

Запускаем скрипт с нужными параметрами для проверки цены криптовалюты:

python crypto_checker.py check-price bitcoin --currency rub


Результат: Текущая цена BITCOIN в RUB: 10197106.00

Как это все выглядит в терминале, вы можете посмотреть на второй картинке поста.


📌 Итог

Библиотека Typer отлично подходит для разработчиков, которым нужно создать удобные CLI для своих приложений с минимальной настройкой и высокой читаемостью кода.

Оставляйте реакции, если понравился пост. А также, пишите в комментарии, что бы вы хотели увидеть еще в таком формате. 👨‍💻


🐍 Ghostly Python | #гайды
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👍116🔥3
🖼️ Библиотека: Pympler

Pympler — это инструмент для анализа использования памяти в Python. Он помогает выявить избыточное потребление памяти, утечки и другие проблемы. С помощью этой библиотеки можно отслеживать размер и продолжительность процессов вашего приложения во время его работы.

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

from pympler import tracker

tr = tracker.SummaryTracker()
function_without_side_effects()
tr.print_diff()


➡️ Результат:

types |   # objects |   total size
======= | =========== | ============
dict | 1 | 280 B
list | 1 | 192 B


✔️ Установка

$ pip install pympler


➡️ Ссылка на документацию

🐍 Ghostly Python | #библиотеки
Please open Telegram to view this post
VIEW IN TELEGRAM
👍103🔥3
👀 Области видимости переменных в Python: простое объяснение сложной темы

Области видимости — это не только про global и nonlocal, но и про то, как Python обрабатывает вложенные функции, исключения, классы и многое другое.

В этом уроке, разберём всё на понятных примерах и полезных схемах.

💬 Что внутри:

➡️ Как Python ищет переменные (правило LEGB: Local, Enclosing, Global, Built-in).
➡️ Область видимости в функциях, классах и модулях.
➡️ Почему global и nonlocal — это мощные, но опасные инструменты.
➡️ Особенности списковых включений и блоков исключений.
➡️ Как избежать конфликтов имён в коде.

⬇️ Скачать PDF из архива

🐍 Ghostly Python | #уроки
Please open Telegram to view this post
VIEW IN TELEGRAM
👍84🔥2
💬 Задача: Что будет выведено в консоль?

def func(nums):
nums = nums + [4, 5]
nums[0] = 99
return nums

x = [1, 2, 3]
y = func(x)
print(x, y)


Выберите вариант ответа ниже 🔽

🐍 Ghostly Python | #задачи
Please open Telegram to view this post
VIEW IN TELEGRAM
👍16😁1
🐱 Топ 5 полезных GitHub-репозиториев для изучения Python

1. Awesome Python

Мастхэв подборка лучших библиотек и инструментов для Python. Категории: веб-разработка, парсинг, машинное обучение и многое другое.

2. Real Python

Материалы от Real Python с примерами кода для изучения языка. Отлично подойдёт для новичков.

3. Python Patterns

Шаблоны проектирования для Python. Помогает понять, как писать код, который легко поддерживать.

4. TheAlgorithms/Python

Библиотека алгоритмов с реализациями на Python. Отлично подходит для изучения структур данных и алгоритмов.

5. FullStack Python

Гид по созданию полного стека приложений с использованием Python: от баз данных до фронтенда.

🐍 Ghostly Python | #ресурсы
Please open Telegram to view this post
VIEW IN TELEGRAM
👍132🔥2
✈️ Параллельная обработка списков с zip()

Когда нужно работать с несколькими списками одновременно, zip() помогает объединить их элементы в пары и работать с ними в одном цикле. Это упрощает код, делает его более читаемым и сокращает количество ошибок, особенно когда списки взаимосвязаны.

⚙️ Например:

names = ['Том', 'Артур', 'Чарли']
scores = [95, 82, 88]

for name, score in zip(names, scores):
print(f"{name} набрал {score} балов")


➡️ Результат:

Том набрал 95 балов
Артур набрал 82 балов
Чарли набрал 88 балов


Подходит для любых итерируемых объектов: списков, кортежей, строк, словарей.


🐍 Ghostly Python | #фишки
Please open Telegram to view this post
VIEW IN TELEGRAM
👍17🔥3
🗂 Шпаргалка по Python от Code With Harry

Она включает всё, что нужно: от основ до продвинутых тем, с примерами кода и практическими советами.

📌 Что внутри:

➡️ Переменные и типы данных
➡️ Структуры данных: списки, словари, множества
➡️ Функции и аргументы
➡️ Условия и циклы
➡️ Обработка ошибок
➡️ Работа с файлами
➡️ Классы и ООП

🗄 Скачать PDF из архива

🐍 Ghostly Python | #шпаргалки
Please open Telegram to view this post
VIEW IN TELEGRAM
👍10
📱 Как и зачем использовать any() и all() в Python

any() и all() — это две встроенные функции, которые помогают быстро проверять списки (или другие коллекции) на соответствие условиям.

1️⃣ any() используется, если нужно узнать, есть ли в коллекции хоть один элемент, удовлетворяющий условию. Например:

nums = [0, 0, 1]
if any(nums):
print("Есть ненулевые элементы!") # True, потому что 1 ненулевой


Это полезно при проверке, нужно ли выполнять действие.

2️⃣ all() помогает проверить, выполняются ли условия для всех элементов. Например:

nums = [2, 4, 6]
if all(n % 2 == 0 for n in nums):
print("Все числа чётные")


🐍 Ghostly Python | #фишки
Please open Telegram to view this post
VIEW IN TELEGRAM
👍19🔥2