PythonDev
Сотрудничество - @mistcoder, @ALRU8
#сервис
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥3👍2
👨💻3 2
import psycopg2
conn = psycopg2.connect(
database="your_db",
user="your_user",
password="your_password",
host="localhost",
port="5432"
)
cursor = conn.cursor()
# Примерчик создания таблицы
cursor.execute("""
CREATE TABLE IF NOT EXISTS users (
id SERIAL PRIMARY KEY,
name VARCHAR(100),
age INT
)
""")
conn.commit()
# Пример по добавлению данных
cursor.execute("INSERT INTO users (name, age) VALUES (%s, %s)", ("Alice", 30))
conn.commit()
# Забор данных из БД
cursor.execute("SELECT * FROM users")
rows = cursor.fetchall()
for row in rows:
print(row)
# В конце закрываем соединение
cursor.close()
conn.close()
from pymongo import MongoClient
client = MongoClient('localhost', 27017)
db = client['your_db']
collection = db['users']
# Вставка документа
collection.insert_one({"name": "Alice", "age": 30})
# Запрос документов
users = collection.find()
for user in users:
print(user)
# Закрытие соединения
client.close()
import redis
r = redis.Redis(host='localhost', port=6379, db=0)
# Установка значения ключа
r.set('name', 'Alice')
# Получение значения ключа
name = r.get('name')
print(name.decode('utf-8')) # Декодируем байты в строку
# Работа со списком в Redis
r.lpush('users', 'Alice')
r.lpush('users', 'Bob')
# Получение всех пользователей из списка (как пример)
users = r.lrange('users', 0, -1)
for user in users:
print(user.decode('utf-8'))
from clickhouse_driver import Client
client = Client(host='localhost')
# Создание таблицы
client.execute("""
CREATE TABLE IF NOT EXISTS users (
id UInt32,
name String,
age UInt32
) ENGINE = MergeTree() ORDER BY id;
""")
# Вставка данных
data = [(1, 'Alice', 30), (2, 'Bob', 25)]
client.execute("INSERT INTO users (id, name, age) VALUES", data)
# Запрос данных
rows = client.execute("SELECT * FROM users")
for row in rows:
print(row)
PythonDev
Сотрудничество - @mistcoder, @ALRU8
#обучение
Please open Telegram to view this post
VIEW IN TELEGRAM
👍5
Модуль HUMANIZE
Модуль humanize в Python предоставляет удобные функции для преобразования чисел, дат и других данных в более "человекочитаемый" формат. Это может быть полезно, например, для отображения времени, размеров файлов, чисел и других данных в более понятной форме.
✈️ Пишите свои идеи и пожелания, про что нам еще рассказать, в комментариях 👇
PythonDev
✔️ Boost
Сотрудничество - @mistcoder, @ALRU8
➡️ Донат
#обучение
Модуль humanize в Python предоставляет удобные функции для преобразования чисел, дат и других данных в более "человекочитаемый" формат. Это может быть полезно, например, для отображения времени, размеров файлов, чисел и других данных в более понятной форме.
import humanize
import datetime
# Преобразование числа
print(humanize.intcomma(1234567)) # 1,234,567
# Преобразование времени
now = datetime.datetime.now()
past = now - datetime.timedelta(minutes=10)
print(humanize.naturaltime(past)) # 10 minutes ago
# Преобразование размера файла
print(humanize.naturalsize(1024)) # 1.0 KB
PythonDev
Сотрудничество - @mistcoder, @ALRU8
#обучение
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥4❤2👍2
itertools.groupby()
Эта функция позволяет группировать последовательности по ключу, что может быть очень полезно при обработке данных.
Предположим, у нас есть список объектов, и мы хотим сгруппировать их по какому-то критерию. Например, у нас есть список людей с их возрастами, и мы хотим сгруппировать их по возрасту.
Вывод:
✈️ Пишите свои идеи и пожелания, про что нам еще рассказать, в комментариях 👇
PythonDev
✔️ Boost
Сотрудничество - @mistcoder, @ALRU8
➡️ Донат
#обучение
Эта функция позволяет группировать последовательности по ключу, что может быть очень полезно при обработке данных.
Предположим, у нас есть список объектов, и мы хотим сгруппировать их по какому-то критерию. Например, у нас есть список людей с их возрастами, и мы хотим сгруппировать их по возрасту.
from itertools import groupby
# Исходные данные
people = [
{'name': 'Alice', 'age': 25},
{'name': 'Bob', 'age': 30},
{'name': 'Charlie', 'age': 25},
{'name': 'David', 'age': 30},
{'name': 'Eve', 'age': 35},
]
# Сортируем список по возрасту, так как groupby требует отсортированных данных
people.sort(key=lambda x: x['age'])
# Группируем по возрасту
grouped_people = groupby(people, key=lambda x: x['age'])
# Выводим результат
for age, group in grouped_people:
print(f'Age: {age}')
for person in group:
print(f' Name: {person["name"]}')
Вывод:
Age: 25
Name: Alice
Name: Charlie
Age: 30
Name: Bob
Name: David
Age: 35
Name: Eve
PythonDev
Сотрудничество - @mistcoder, @ALRU8
#обучение
Please open Telegram to view this post
VIEW IN TELEGRAM
👍4🔥2 2
Перевод чисел между системами счисления
В Python можно легко осуществить перевод чисел между различными системами счисления с помощью встроенных функций и методов
Перевод из десятичной системы в другие системы
Для перевода числа из десятичной системы в двоичную, восьмеричную или шестнадцатеричную можно использовать функции bin(), oct() и hex() соответственно.
Перевод из других систем в десятичную
Для перевода числа из двоичной, восьмеричной или шестнадцатеричной систем в десятичную можно использовать функцию int(), указав основание системы счисления.
Перевод числа в произвольную систему счисления
Если вам нужно перевести число в систему счисления с произвольным основанием (например, от 2 до 36), можно написать свою функцию:
✈️ Пишите свои идеи и пожелания, про что нам еще рассказать, в комментариях 👇
PythonDev
✔️ Boost
Сотрудничество - @mistcoder, @ALRU8
➡️ Донат
#обучение
В Python можно легко осуществить перевод чисел между различными системами счисления с помощью встроенных функций и методов
Перевод из десятичной системы в другие системы
Для перевода числа из десятичной системы в двоичную, восьмеричную или шестнадцатеричную можно использовать функции bin(), oct() и hex() соответственно.
# Десятичное число
decimal_number = 42
# Перевод в двоичную систему
binary_number = bin(decimal_number) # '0b101010'
print(binary_number)
# Перевод в восьмеричную систему
octal_number = oct(decimal_number) # '0o52'
print(octal_number)
# Перевод в шестнадцатеричную систему
hexadecimal_number = hex(decimal_number) # '0x2a'
print(hexadecimal_number)
Перевод из других систем в десятичную
Для перевода числа из двоичной, восьмеричной или шестнадцатеричной систем в десятичную можно использовать функцию int(), указав основание системы счисления.
# Двоичное число
binary_string = '101010'
decimal_from_binary = int(binary_string, 2)
print(decimal_from_binary) # 42
# Восьмеричное число
octal_string = '52'
decimal_from_octal = int(octal_string, 8)
print(decimal_from_octal) # 42
# Шестнадцатеричное число
hex_string = '2a'
decimal_from_hex = int(hex_string, 16)
print(decimal_from_hex) # 42
Перевод числа в произвольную систему счисления
Если вам нужно перевести число в систему счисления с произвольным основанием (например, от 2 до 36), можно написать свою функцию:
def convert_to_base(n, base):
if n < 0:
return '-' + convert_to_base(-n, base)
elif n == 0:
return '0'
digits = []
while n:
digits.append(int(n % base))
n //= base
# Для систем счисления выше 10 используем буквы
digits = digits[::-1]
return ''.join(str(x) if x < 10 else chr(x - 10 + ord('A')) for x in digits)
# Пример использования
number = 42
base = 16
converted = convert_to_base(number, base)
print(f"{number} в системе счисления с основанием {base} равно {converted}")
PythonDev
Сотрудничество - @mistcoder, @ALRU8
#обучение
Please open Telegram to view this post
VIEW IN TELEGRAM
👍6 2 2❤1👎1🔥1
Генератор — это функция, которая возвращает итератор. Вместо
Простой генератор
Вывод:
👉 Здесь
👨💻 Пишите свои идеи и пожелания, про что нам еще рассказать, в комментариях 👇
PythonDev
✔️ Boost
Сотрудничество - @mistcoder, @ALRU8
➡️ Донат
#обучение
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
Сотрудничество - @mistcoder, @ALRU8
#обучение
Please open Telegram to view this post
VIEW IN TELEGRAM
❤5👍5 4 1
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()
name = user_input or "Гость"
Работает быстрее, чем if-else, когда нужно значение по умолчанию
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']
numbers = [1, 2, 3]
reversed = numbers[::-1] # [3,2,1]
Работает для строк, кортежей и любых последовательностей!
for i, item in enumerate(items, start=1):
print(f"{i}. {item}")
Полезно для нумерации вывода в консоли
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}print(f"{user_id=} {timestamp=}")
# Выведет: user_id=42 timestamp=1689876543Избавляет от ручного форматирования логов
PythonDev
Сотрудничество - @mistcoder, @ALRU8
#обучение
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥3👨💻3🎉2❤1
————————
Установите библиотеку
openpyxl, которая позволяет работать с Excel файлами:pip install openpyxl
————————
Откройте существующий Excel файл:
import openpyxl
workbook = openpyxl.load_workbook('example.xlsx')
sheet = workbook.active
————————
Запишите значение в ячейку:
sheet['A1'] = 'Пример текста'
workbook.save('example.xlsx') # Сохранение изменений в тот же файл
————————
Запишите формулу в ячейку:
sheet['B1'] = "=SUM(A2:A10)" # Пример формулы для суммы диапазона
workbook.save('example.xlsx') # Сохранение изменений в тот же файл
Важно: Формулы вычисляются только в Excel, а не Python.
————————
Считайте данные из конкретной ячейки, например,
A1:cell_value = sheet['A1'].value
print(f"Значение в ячейке A1: {cell_value}")
————————
Чтобы считать значение формулы, откройте файл с параметром
data_only=True:workbook = openpyxl.load_workbook('example.xlsx', data_only=True)
sheet = workbook.active
result = sheet['B1'].value
print(f"Результат формулы: {result}")————————
PythonDev
Сотрудничество - @mistcoder, @ALRU8
#обучение
Please open Telegram to view this post
VIEW IN TELEGRAM
👍3 2👎1 1
Please open Telegram to view this post
VIEW IN TELEGRAM
13👍5 3 1
PythonDev
Сотрудничество - @mistcoder, @ALRU8
#сервис
Please open Telegram to view this post
VIEW IN TELEGRAM
33👍5👎3 3 2
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 # меняем местами
from pathlib import Path
p = Path("/home/user")
print(p / "file.txt") # /home/user/file.txt
Более читаемо и современно 🔥
from collections import Counter
print(Counter("hello world"))
➡️ {'l': 3, 'o': 2, ...}
#обучение
Please open Telegram to view this post
VIEW IN TELEGRAM
❤3 1
socket — низкоуровневое создание и работа с TCP/UDP‑сокетами.
ssl — TLS/SSL‑контексты и обёртки для защищённых соединений.
scapy — конструирование, отправка и анализ сетевых пакетов.
pyshark — разбор pcap/Live‑трафика (обёртка над tshark).
netifaces — информация об интерфейсах, адресах и шлюзах.
dnspython — гибкая работа с DNS‑запросами и записями.
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 превращает обычный print() в мощный инструмент форматирования: цвета, таблицы, прогресс-бары, Markdown и даже живые логи прямо в терминале ⚡️
pip install rich
from rich import print
print("[bold green]Успешно![/bold green]")
print("[red]Ошибка:[/red] Что-то пошло не так.")
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)
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
🧠 Полезная библиотека: asyncio — асинхронность, которая делает Python быстрее без потоков
asyncio позволяет выполнять десятки и сотни задач параллельно, не блокируя программу.
Идеально для работы с сетью, API, ботами, парсерами и любыми долгими ожиданиями.
asyncio ≠ многопоточность
Это просто умное переключение задач.
🔥 Что умеет asyncio:
🧠 1. Асинхронные функции
⚙️ 2. Параллельный запуск задач
⏳ 3. Не блокирует поток
asyncio позволяет выполнять десятки и сотни задач параллельно, не блокируя программу.
Идеально для работы с сетью, API, ботами, парсерами и любыми долгими ожиданиями.
asyncio ≠ многопоточность
Это просто умное переключение задач.
import asyncio
async def hello():
await asyncio.sleep(1)
print("Привет из async!")
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())
import asyncio
await asyncio.sleep(1) # ✔️ не блокирует
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥4👍2👎2❤1
Спасибо mister_coder за поздравления, ну а от себя пожелаю всем счастья, здоровья и успехов во всех начинаниях! Всех с 2026 годом! 🎄
Please open Telegram to view this post
VIEW IN TELEGRAM
❤3