PythonDev
74 subscribers
7 photos
1 video
18 files
60 links
Канал, где рассказывают по Python

Админ - @mistcoder, @ALRU8
Донат - https://t.me/send?start=IVawE0JR96oZ
Download Telegram
Генератор — это функция, которая возвращает итератор. Вместо return она использует ключевое слово yield, приостанавливая своё выполнение до следующего обращения.

Простой генератор
def countdown(n):
while n > 0:
yield n
n -= 1

for num in countdown(5):
print(num)

Вывод:
5
4
3
2
1

👉 Здесь countdown(5) не создаёт список [5, 4, 3, 2, 1], а генерирует числа по одному при каждом вызове next().

👨‍💻 Пишите свои идеи и пожелания, про что нам еще рассказать, в комментариях 👇

PythonDev
✔️Boost
Сотрудничество - @mistcoder, @ALRU8
➡️Донат

#обучение
Please open Telegram to view this post
VIEW IN TELEGRAM
5👍541
🔥10 мощных Python-трюков, которые сделают ваш код лучше

📌 Обмен значений без временной переменной:
a, b = 5, 10
a, b = b, a # Теперь a=10, b=5

Работает с любым количеством переменных!


📌 Распаковка последовательностей с *

first, *middle, last = [1, 2, 3, 4, 5]
# first=1, middle=[2,3,4], last=5

Идеально для обработки строк и логов:
date, *metrics = "2023-05-15 100 200 300".split()



📌 Тернарный оператор с or для fallback-значений
name = user_input or "Гость"

Работает быстрее, чем if-else, когда нужно значение по умолчанию


📌 Слияние словарей (Python 3.9+)
dict1 = {'a': 1}
dict2 = {'b': 2}
merged = dict1 | dict2 # {'a':1, 'b':2}

Для старых версий: {**dict1, **dict2}


📌 Быстрое создание списка из строки
chars = [*"Hello"]  # ['H','e','l','l','o']

Альтернатива list("Hello"), но с возможностью фильтрации:
[*filter(str.isupper, "HeLLo")]  # ['H','L','L']



📌 Обратный порядок с [::-1]
numbers = [1, 2, 3]
reversed = numbers[::-1] # [3,2,1]

Работает для строк, кортежей и любых последовательностей!


📌 enumerate с начальным индексом
for i, item in enumerate(items, start=1):
print(f"{i}. {item}")

Полезно для нумерации вывода в консоли


📌 Проверка нескольких условий через in
if status in ("success", "pending", "processing"):
# Вместо status=="success" or status=="pending"...

Для больших множеств используйте set — проверка O(1)


📌 Генераторы словарей с условиями
users = {u.id: u for u in users if u.active}

Можно комбинировать с zip:
{key: value for key, value in zip(keys, values) if value}



📌 Дебаг через = (Python 3.8+)
print(f"{user_id=} {timestamp=}")
# Выведет: user_id=42 timestamp=1689876543

Избавляет от ручного форматирования логов


👨‍💻 Пишите свои идеи и пожелания, про что нам еще рассказать, в комментариях 👇

PythonDev
✔️Boost
Сотрудничество - @mistcoder, @ALRU8
➡️Донат

#обучение
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥3👨‍💻3🎉21
👩‍💻 Пошаговый обучающий урок по работе с Excel через Python

————————

📚Шаг 1: Установка библиотеки
Установите библиотеку openpyxl, которая позволяет работать с Excel файлами:
pip install openpyxl


————————

📚Шаг 2: Открытие файла
Откройте существующий Excel файл:
import openpyxl

workbook = openpyxl.load_workbook('example.xlsx')
sheet = workbook.active


————————

📚Шаг 3: Запись данных в ячейку
Запишите значение в ячейку:
sheet['A1'] = 'Пример текста'
workbook.save('example.xlsx')  # Сохранение изменений в тот же файл


————————

📚Шаг 4: Запись формулы
Запишите формулу в ячейку:
sheet['B1'] = "=SUM(A2:A10)"  # Пример формулы для суммы диапазона
workbook.save('example.xlsx')  # Сохранение изменений в тот же файл

Важно: Формулы вычисляются только в Excel, а не Python.

————————

📚Шаг 5: Считывание данных из ячейки
Считайте данные из конкретной ячейки, например, A1:
cell_value = sheet['A1'].value
print(f"Значение в ячейке A1: {cell_value}")


————————

📚Шаг 6: Считывание значения после выполнения формулы
Чтобы считать значение формулы, откройте файл с параметром data_only=True:
workbook = openpyxl.load_workbook('example.xlsx', data_only=True)
sheet = workbook.active
result = sheet['B1'].value
print(f"Результат формулы: {result}")


————————

👩‍💻 Более подробно обо всех функциях данной библиотеки вы можете прочитать в официальной документации: тык

👨‍💻 Пишите свои идеи и пожелания, про что нам еще рассказать, в комментариях 👇

PythonDev
✔️Boost
Сотрудничество - @mistcoder, @ALRU8
➡️Донат

#обучение
Please open Telegram to view this post
VIEW IN TELEGRAM
👍32👎11
Mariano_Anaya_Clean_Code_in_Python_Second_Edition_Develop_maintainable.pdf
3.6 MB
👩‍💻 Clean Code in Python
Автор: Mariano Anaya (2021)

————————

👩‍💻Чистый код в Python
Автор: Мариано Анайя (2021)

👨‍💻 Пишите свои идеи и пожелания, про что нам еще рассказать, в комментариях 👇

PythonDev
✔️Boost
Сотрудничество - @mistcoder, @ALRU8
➡️Донат

#книга
Please open Telegram to view this post
VIEW IN TELEGRAM
13👍531
💼ИИ на каждый день

⚡️ Cutout — инструмент для удаления размытия и улучшения качества фотографий. Он автоматически исправляет размытые изображения, повышая их четкость и детализацию.

⚡️ Riffusion — нейросеть для обработки музыкальных треков, позволяющая заменять вокал, менять инструментал, генерировать новые композиции и редактировать готовые треки.

⚡️ Vecto3D — бесплатный сервис для преобразования SVG-изображений в 3D-модели.

👨‍💻 Пишите свои идеи и пожелания, про что нам еще рассказать, в комментариях 👇

PythonDev
✔️Boost
Сотрудничество - @mistcoder, @ALRU8
➡️Донат

#сервис
Please open Telegram to view this post
VIEW IN TELEGRAM
33👍5👎332
🐍 5 Python-фишек, о которых знают не все

➡️ Однострочные if-выражения
x = 10
print("Чётное") if x % 2 == 0 else print("Нечётное")

Когда хочется лаконичности 👌

➡️ Словари из двух списков
keys = ['name', 'age']
values = ['Alice', 25]
data = dict(zip(keys, values))
print(data)

➡️ {'name': 'Alice', 'age': 25}

➡️Множественное присваивание
x, y, z = 1, 2, 3
x, y = y, x # меняем местами

➡️ Современная работа с путями через pathlib
from pathlib import Path
p = Path("/home/user")
print(p / "file.txt") # /home/user/file.txt

Более читаемо и современно 🔥

➡️ Подсчёт элементов с collections.Counter
from collections import Counter
print(Counter("hello world"))

➡️ {'l': 3, 'o': 2, ...}

#обучение
Please open Telegram to view this post
VIEW IN TELEGRAM
31
🧰 Полезные Python‑библиотеки для пентеста

📶Сетевые:
socket — низкоуровневое создание и работа с TCP/UDP‑сокетами.
ssl — TLS/SSL‑контексты и обёртки для защищённых соединений.
scapy — конструирование, отправка и анализ сетевых пакетов.
pyshark — разбор pcap/Live‑трафика (обёртка над tshark).
netifaces — информация об интерфейсах, адресах и шлюзах.
dnspython — гибкая работа с DNS‑запросами и записями.

🌐HTTP и веб:
requests — простой и удобный HTTP-клиент.
urllib3 — низкоуровневый HTTP/HTTPS клиент с управлением соединениями.
bs4 (BeautifulSoup) — парсинг и извлечение данных из HTML/XML.
selenium — автоматизация браузера для динамических сайтов.
mechanize — автоматизированная работа с формами и сессиями (headless).
aiohttp — асинхронные HTTP‑клиент и сервер на asyncio.

🧐Сканирование и аудит:
python-nmap (nmap) — интерфейс к nmap для запуска сканов и парсинга результатов.
masscan (bindings) — быстрый сканер портов (bindings для интеграции).
sslyze — проверка конфигурации TLS/SSL и уязвимостей сертификатов.
mitmproxy — интерактивный прокси для перехвата и модификации HTTP(S)-трафика.

Удалённый доступ и протоколы:
paramiko — SSH‑клиент и SFTP для удалённого выполнения и работы с файлами.
ftplib — стандартная библиотека для работы с FTP‑серверами.
telnetlib — простая работа с Telnet‑серверами.
smtplib — отправка почты через SMTP.
pysnmp — работа с SNMP для опроса сетевого оборудования.

🔺Системные и процесс‑утилиты:
psutil — мониторинг процессов, сетевых соединений и системных метрик.
shutil — высокоуровневые операции с файлами и папками (копирование, перемещение).
tempfile — безопасное создание временных файлов и директорий.
os — работа с файловой системой, средой и процессами.
subprocess — запуск внешних команд и взаимодействие с ними.

🌟Криптография и хэши:
hashlib — генерация MD5/SHA‑хешей и контрольных сумм.
hmac — создание HMAC‑подписей.
cryptography — современные криптографические примитивы и работа с ключами/сертификатами.
pyOpenSSL — обёртка для работы с OpenSSL и сертификатами.

🌟Парсинг и данные:
json — кодирование/декодирование JSON (стандартная библиотека).
lxml — быстрый и мощный парсер XML/HTML.
re — регулярные выражения для извлечения паттернов.
pandas — удобная обработка и анализ табличных данных.

🌟Параллелизм и асинхрон:
threading — многопоточность для I/O‑bound задач.
multiprocessing — параллельные процессы для CPU‑bound задач.
concurrent.futures — высокоуровневые пулы потоков/процессов.
asyncio — асинхронное программирование на уровне событийного цикла.

🌟Логирование и утилиты:
logging — централизованное логирование и настройка форматов/хендлеров.
tqdm — визуальные прогресс‑бары для итераций.
rich — красивый вывод в консоль (форматирование, таблицы, статус).

🌟Кодирование и форматы:
base64 — кодирование/декодирование base64.
binascii — низкоуровневые конверсии бинарных данных.
struct — упаковка/распаковка бинарных структур по форматам.

🌟Вспомогательные:
socketio — клиент/сервер Socket.IO для real‑time взаимодействия.
websocket-client — простой WebSocket‑клиент.
requests-toolbelt — расширения и утилиты для библиотеки requests.

🌟 Используйте эти инструменты только в рамках закона и с письменного разрешения владельцев тестируемых систем.

#сеть
Please open Telegram to view this post
VIEW IN TELEGRAM
👍5👎1
🧠 Полезная библиотека: rich — красивые логи и интерфейсы прямо в консоли

Библиотека rich превращает обычный print() в мощный инструмент форматирования: цвета, таблицы, прогресс-бары, Markdown и даже живые логи прямо в терминале ⚡️

pip install rich


🔥 Что умеет rich:

💚 1. Красивый вывод текста
from rich import print

print("[bold green]Успешно![/bold green]")
print("[red]Ошибка:[/red] Что-то пошло не так.")


📊 2. Таблицы
from rich.table import Table
from rich.console import Console

table = Table(title="Рейтинг участников")
table.add_column("Имя")
table.add_column("Очки", justify="right")
table.add_row("Аня", "95")
table.add_row("Борис", "87")

Console().print(table)


3. Прогресс-бары
from rich.progress import track
import time

for i in track(range(5), description="Обработка..."):
time.sleep(0.5)
Please open Telegram to view this post
VIEW IN TELEGRAM
4🔥2
🧠 Полезная библиотека: asyncio — асинхронность, которая делает Python быстрее без потоков

asyncio позволяет выполнять десятки и сотни задач параллельно, не блокируя программу.
Идеально для работы с сетью, API, ботами, парсерами и любыми долгими ожиданиями.

asyncio ≠ многопоточность
Это просто умное переключение задач.


🔥 Что умеет asyncio:

🧠 1. Асинхронные функции

import asyncio

async def hello():
await asyncio.sleep(1)
print("Привет из async!")


⚙️ 2. Параллельный запуск задач

import asyncio

async def task(n):
await asyncio.sleep(1)
print(f"Задача {n} выполнена")

async def main():
tasks = [asyncio.create_task(task(i)) for i in range(5)]
await asyncio.gather(*tasks)

asyncio.run(main())


3. Не блокирует поток

import asyncio

await asyncio.sleep(1) # ✔️ не блокирует
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥4👍2👎21
С новым 2026 годом!
4
Спасибо mister_coder за поздравления, ну а от себя пожелаю всем счастья, здоровья и успехов во всех начинаниях! Всех с 2026 годом! 🎄
Please open Telegram to view this post
VIEW IN TELEGRAM
3