Инструмент делает запрос к ExchangeRate API и показывает актуальный курс USD к RUB — без заморочек и регистрации.
import requests
from typing import Optional
def get_exchange_rate(base_currency: str, target_currency: str) -> Optional[float]:
"""
Получает курс обмена из base_currency в target_currency.
:param base_currency: Базовая валюта (например, 'USD').
:param target_currency: Целевая валюта (например, 'RUB').
:return: Курс обмена или None в случае ошибки.
"""
url = f"https://open.er-api.com/v6/latest/{base_currency}"
try:
response = requests.get(url, timeout=10)
response.raise_for_status()
data = response.json()
rate = data["rates"].get(target_currency)
if rate is None:
print(f"Курс для {target_currency} не найден.")
return None
return rate
except requests.RequestException as e:
print(f"Ошибка при запросе к API: {e}")
return None
if __name__ == "__main__":
base = "USD"
target = "RUB"
rate = get_exchange_rate(base, target)
if rate:
print(f"Курс {base} к {target}: {rate}")
else:
print("Не удалось получить курс обмена.")
# Курс USD к RUB: 80.926191
#python #code #soft
Please open Telegram to view this post
VIEW IN TELEGRAM
Python PDF Handling Tutorial — интересная подборка скриптов для работы с PDF-файлами в Python:
Вы научитесь:
Пример извлечения текста:
from io import StringIO
from pdfminer.pdfinterp import PDFPageInterpreter, PDFResourceManager
from pdfminer.pdfpage import PDFPage
from pdfminer.converter import TextConverter
from pdfminer.layout import LAParams
# PDFMiner Analyzers
rsrcmgr = PDFResourceManager()
sio = StringIO()
codec = "utf-8"
laparams = LAParams()
device = TextConverter(rsrcmgr, sio, codec=codec, laparams=laparams)
interpreter = PDFPageInterpreter(rsrcmgr, device)
# path to our input file
pdf_file = "sample.pdf"
# Extract text
pdfFile = open(pdf_file, "rb")
for page in PDFPage.get_pages(pdfFile):
interpreter.process_page(page)
pdfFile.close()
# Return text from StringIO
text = sio.getvalue()
print(text)
# Freeing Up
device.close()
sio.close()
Пример извлечения изображений:
import fitz
import io
from PIL import Image
# path to our input file
pdf_file = "sample.pdf"
# Input PDF file
pdf_file = fitz.open(pdf_file)
for page_no in range(len(pdf_file)):
curr_page = pdf_file[page_no]
images = curr_page.getImageList()
for image_no, image in enumerate(curr_page.getImageList()):
# get the XREF of the image
xref = image[0]
# extract the image bytes
curr_image = pdf_file.extractImage(xref)
img_bytes = curr_image["image"]
# get the image extension
img_extension = curr_image["ext"]
# load it to PIL
image = Image.open(io.BytesIO(img_bytes))
# save it to local disk
image.save(open(f"page{page_no+1}_img{image_no}.{img_extension}", "wb"))
#python #soft #github
Please open Telegram to view this post
VIEW IN TELEGRAM
Python — не только про скрипты и автоматизацию. Он умеет работать сразу с несколькими задачами параллельно — и делать это красиво. Но тут есть нюансы: GIL, multiprocessing, asyncio... разберём всё!
* Процессы (multiprocessing) — как отдельные контейнеры. Изолированы, не делят память. Каждый процесс может использовать своё ядро процессора. Идеально для вычислений.
* Потоки (threading) — живут в одном процессе и делят между собой память. Отлично справляются с задачами, связанными с вводом/выводом (например, скачивание файлов).
* Асинхронность (asyncio) — не параллельность в классическом смысле. Всё работает в одном потоке, но задачи переключаются между собой, не блокируя выполнение. Лучший выбор для работы с сетью.
GIL — глобальная блокировка интерпретатора в Python. Она позволяет одновременно выполняться только одному потоку Python-кода, даже если у тебя 64 ядра. Почему так? Потому что управление памятью в CPython не потокобезопасно.
multiprocessing
> Идеален для тяжёлых вычислений на нескольких ядрах.
*
Process
— запуск нового процесса*
Pool
— пул воркеров*
Queue
, Pipe
— обмен данными*
Manager
— разделение объектов между процессами*
Lock
, Semaphore
— синхронизация*
cpu_count()
— сколько у тебя вообще ядер?threading
> Для I/O задач, где важна отзывчивость: загрузка веб-страниц, параллельный логинг и т.д.
*
Thread
— запуск нового потока*
Timer
, Event
, Barrier
— управление временем и синхронизацией*
enumerate()
, current_thread()
— управление потокамиasyncio
> Современный подход: запуск кучи задач внутри одного потока.
*
async
/ await
— ключевые слова*
asyncio.run()
, asyncio.gather()
— запуск корутин* Поддержка библиотек:
*
aiohttp
— запросы к сайтам*
aiofiles
— работа с файламиRace condition (состояние гонки) — когда два потока одновременно хотят изменить одну и ту же переменную. Кто первый встал — того и тапки. Итог: баги, которых потом не найдёшь.
Потокобезопасность достигается через:
*
Lock
, RLock
* Локальные данные потока (
threading.local()
)Асинхронная программа:
* запускает задачу;
* пока ждёт ответа — делает что-то ещё;
* возвращается к задаче, когда пришёл ответ.
Пример:
import asyncio
import aiohttp
async def fetch(url):
async with aiohttp.ClientSession() as session:
async with session.get(url) as resp:
return await resp.text()
async def main():
html = await fetch('https://example.com')
print(html)
asyncio.run(main())
🔧 Сравнение подходов:
📌 multiprocessing
• Параллельность: ✅
• Делит память: ❌
• Для чего: тяжёлые CPU-задачи
📌 threading
• Параллельность: ❌ (из-за GIL)
• Делит память: ✅
• Для чего: задачи с вводом/выводом (I/O)
📌 asyncio
• Параллельность: ❌
• Делит память: ✅
• Для чего: сетевые и файловые задачи
* Нужна мощь ядра? —
multiprocessing
* Много сетевых вызовов и ожиданий? —
asyncio
* Быстрая и простая многозадачность? —
threading
* GIL — особенность Python, но не приговор
@python2day
#doc #python #cheatsheet
Please open Telegram to view this post
VIEW IN TELEGRAM
Кодим и развиваемся без боли
Залетела мощная нейротулза: берёт любой проект с GitHub и превращает его в интерактивный гайд. Пошагово объясняет, как работает код, причём простыми словами — даже новичок разберётся.
Что умеет:
— Учит новым технологиям прямо на реальных проектах;
— Автоматически превращает код в понятную документацию;
— Разбирает сложные участки и даёт подробные объяснения;
— Отличный способ учиться не по теории, а по боевому коду.
#python #soft #github
Please open Telegram to view this post
VIEW IN TELEGRAM
ItsCaptchaBot — умный бот с капчей, который отфильтрует подозрительных новичков ещё до «привет».
— Добавляешь бота в чат;
— Даёшь права на удаление сообщений и ограничение участников;
— Каждый новый юзер должен пройти капчу в течение 10 минут;
— Не прошёл? Автокик. Всё просто.
#python #soft #code
Please open Telegram to view this post
VIEW IN TELEGRAM
#doc #python #cheatsheet #russian
Please open Telegram to view this post
VIEW IN TELEGRAM
WeasyPrint — библиотека, которая превращать HTML в красивые PDF-документы.
*
*
* 🎟 Билетов и любых документов прямо из кода
Особенности:
Установка:
pip install weasyprint
Отличный выбор, если вы хотите автоматизировать генерацию PDF в своих проектах — будь то веб-приложение, отчет из бота или документооборот
#python #soft #github
Please open Telegram to view this post
VIEW IN TELEGRAM
Мини-шпаргалка, которая поможет писать код быстрее, чище и без гугления каждой мелочи:
.capitalize()
— делает первую букву заглавной: 'hello WORLD' → 'Hello world'..lower()
/ .upper()
— регистр вниз или вверх..center(10, '*')
— выравнивает строку по центру с символами вокруг: 'Python' → 'Python'..count('0')
— считает вхождения символа..find()
и .index()
— находят позиции символов..replace()
— ищет и заменяет..split()
— разрезает строку..isalnum()
, .isnumeric()
, .islower()
, .isupper()
— проверяют, из чего состоит строка.#doc #python #cheatsheet
Please open Telegram to view this post
VIEW IN TELEGRAM
TG_AutoPoster — Готовый бот-парсер для автоматической пересылки записей из групп ВКонтакте в ваш Telegram-канал, чат или личные сообщения.
Основные возможности:
config.yaml
, где вы указываете логин и пароль ВКонтакте или токен, а также данные для Telegram API.1. Установите TG_AutoPoster с помощью pip:
pip3 install -U TG-AutoPoster
2. Создайте файл
config.yaml
на основе config.yaml.example
и заполните необходимые параметры.3. Запустите бота командой:
python3 -m TG_AutoPoster
4. Активируйте бота в чате командой
/start
vk:
login: "your_vk_login"
pass: "your_vk_password"
token: "your_vk_token" # предпочтительно использовать токен
telegram:
api_id: 123456
api_hash: "your_api_hash"
bot_token: "your_bot_token"
proxy:
enabled: false
hostname: ""
port: 0
username: ""
password: ""
#python #soft #github
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
Хочешь принимать заказы прямо в Telegram? Без сайтов, без лишних кликов — только бот, каталог и кнопка "Оформить заказ".
Telegram Shop Bot — код готового шаблона телеграм магазина.
Всё просто:
→ Заходишь в меню
→
→
→
→
Красота? Красота.
git clone https://github.com/NikolaySimakov/Shop-bot.git
cd Shop-bot
# Создаем виртуальное окружение
python3 -m venv venv
source venv/bin/activate
# Устанавливаем зависимости
pip install -r requirements.txt
BOT_TOKEN=твой_токен_бота
ADMINS=123456789,987654321
python3 app.py
#python #soft #code
Please open Telegram to view this post
VIEW IN TELEGRAM
PDF версия
#python #doc #cheatsheet
Please open Telegram to view this post
VIEW IN TELEGRAM
[PYTHON:TODAY]
Please open Telegram to view this post
VIEW IN TELEGRAM
Внутри:
#doc #python #cheatsheet
Please open Telegram to view this post
VIEW IN TELEGRAM
Это не просто линтер, а брутальный инструмент аудита безопасности, созданный для того, чтобы находить уязвимости в твоём коде быстрее, чем это сделает реальный атакующий.
Что умеет:
eval()
до серьёзных криптокосяков.$ bandit your_script.py
#python #soft #github #security
Please open Telegram to view this post
VIEW IN TELEGRAM
Неважно, делаешь ли ты чат-бота, визуализируешь данные, парсишь сайты или автоматизируешь кофеварку на ESP32 — вот топовые библиотеки с разбивкой по категориям:
#python #cheatsheet #doc
Please open Telegram to view this post
VIEW IN TELEGRAM
This media is not supported in your browser
VIEW IN TELEGRAM
Крутой open-source проект, который позволяет управлять устройствами с помощью движений глаз. Больше не нужно тянуться к клавиатуре – теперь всё решает взгляд!
Что умеет:
Где можно применить?
🔬 Эксперименты с интерфейсами будущего.
$ git clone https://github.com/NativeSensors/EyeGestures.git
$ cd EyeGestures
$ pip install -r requirements.txt
или
python3 -m pip install eyeGestures
Открытый код, документация и примеры использования.
Будущее уже здесь — открываем мир взглядом!
#soft #python #code
Please open Telegram to view this post
VIEW IN TELEGRAM
EasyOCR — мощный и простой в использовании инструмент по распознаванию символов.
Пример использования на изображении
Установка:
pip install easyocr
⚙️ GitHub/Инструкция#python #soft #code #github
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
Two Claps Open — гениально простой инструмент, который открывает Chrome браузер или активирует голосового помощника и открывает любую ссылку, когда ты хлопаешь в ладоши дважды.
pyaudio
;$ git clone https://github.com/Yutarop/two_claps_open
$ cd two_claps_open
$ pip install -r requirements-core.txt
or
$ pip install -r requirements-agent.txt
$ python two_claps_open.py
or
$ python agent_on_clap.py
Если ты любишь писать скрипты, которые реально удивляют — попробуй и покажи друзьям.
#python #soft #code
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
ART — минималистичная, но чертовски стильная библиотека для Python, с которой ты за секунду создашь красивый ASCII-логотип прямо в консоли.
ART — это быстро, просто и эффектно.
pip install art
#python #soft #code #github
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM