About Python [ru]
6.25K subscribers
318 photos
1.58K links
Все о Python: алгоритмы, паттерны проектирования, задачи, нейронные сети

Канал на бирже - https://telega.in/c/python_tesst

По вопросам рекламы или разработки: @g_abashkin
Download Telegram
👩‍💻 PYтокен: история о том, как питон съел ЭЦП. Часть 1

История о том, как я пытался реализовать подпись файлов с помощью сертификата на USB-устройстве, а дополнительно сделал шифрование и дешифрование директории.

Читать...
Please open Telegram to view this post
VIEW IN TELEGRAM
👩‍💻 Поиск второго наибольшего числа в списке

Напишите функцию, которая принимает список чисел и возвращает второе наибольшее число. Если такого числа нет (например, все элементы одинаковые или список содержит менее двух элементов), функция должна возвращать None.

Пример:

print(second_largest([4, 1, 7, 3, 9, 7]))  # Ожидаемый результат: 7
print(second_largest([10, 10, 10])) # Ожидаемый результат: None
print(second_largest([5])) # Ожидаемый результат: None


Решение задачи🔽

def second_largest(numbers):
unique_numbers = list(set(numbers))
if len(unique_numbers) < 2:
return None
unique_numbers.sort(reverse=True)
return unique_numbers[1]

# Пример использования:
print(second_largest([4, 1, 7, 3, 9, 7])) # Ожидаемый результат: 7
print(second_largest([10, 10, 10])) # Ожидаемый результат: None
print(second_largest([5])) # Ожидаемый результат: None
Please open Telegram to view this post
VIEW IN TELEGRAM
2👍1
👩‍💻 Отбор акций Мосбиржи для Backtrader: загрузка истории через библиотеку Игоря Чечета и её поквартальный анализ на Python

Разбираем, как оценить ликвидность акций при бэктесте стратегий в Backtrader. Без этого ваши тесты — сказки. Пример с брокерскими API и питоновским скриптом для поиска активных бумаг.

Читать...
Please open Telegram to view this post
VIEW IN TELEGRAM
👩‍💻 Новый лучший способ форматирования строк в Python

В статье — что такое t-строки в Python 3.14, зачем они вообще нужны, чем отличаются от f-строк и как устроены под капотом. Новый способ форматирования, который может перевернуть привычки.

Читать...
Please open Telegram to view this post
VIEW IN TELEGRAM
👩‍💻 Создаем Telegram-бота для генерации случайных пользовательских данных на Python

Автор делится опытом создания Telegram-бота, который генерирует реалистичные тестовые данные с учётом нацособенностей — идеален для разработчиков и тестировщиков.

Читать...
Please open Telegram to view this post
VIEW IN TELEGRAM
👩‍💻 Группировка значений по ключу в списке словарей

Напишите функцию, которая принимает список словарей и группирует значения по определённому ключу. Это полезно для агрегации данных, предварительной обработки и подготовки к анализу.

Решение задачи🔽

from collections import defaultdict

def group_by_key(data, key):
grouped = defaultdict(list)
for item in data:
grouped[item[key]].append(item)
return dict(grouped)

# Пример использования
data = [
{"category": "fruit", "name": "apple"},
{"category": "vegetable", "name": "carrot"},
{"category": "fruit", "name": "banana"},
{"category": "vegetable", "name": "lettuce"},
]

result = group_by_key(data, "category")
print(result)
# Ожидаемый результат:
# {
# 'fruit': [{'category': 'fruit', 'name': 'apple'}, {'category': 'fruit', 'name': 'banana'}],
# 'vegetable': [{'category': 'vegetable', 'name': 'carrot'}, {'category': 'vegetable', 'name': 'lettuce'}]
# }
Please open Telegram to view this post
VIEW IN TELEGRAM
👩‍💻 Анализ и прогнозирование погодных условий

Исследование климатических изменений с 1950 по 2024 год — по данным из шести стран с разным климатом. Меньше эмоций, больше цифр и выводов о глобальных трендах.

Читать...
Please open Telegram to view this post
VIEW IN TELEGRAM
👩‍💻 Как одной математической формулой определить цвет ячейки на рулетке?

Можно ли вместо if-else в задаче про цвет кармана рулетки использовать формулу? Автор копается в правилах, разбирает закономерности и ищет универсальное решение. Спойлер: не зря.

Читать...
Please open Telegram to view this post
VIEW IN TELEGRAM
1
👩‍💻 Шпаргалка по установке драйверов NVIDIA на ML сервер

Данный материал предназначен для быстрой и последовательной установки драйверов NVIDIA, в том числе для видеокарт 50xx серии, а также настройки NVIDIA Container Toolkit. Эта инструкция актуальна для Linux-систем на базе Ubuntu и других Debian-совместимых дистрибутивов.

Читать...
Please open Telegram to view this post
VIEW IN TELEGRAM
📋 Превращай мозговой штурм в задачник

Обсуждение, планирование, идеи — всё звучит круто, пока не превращено в конкретные действия.

👉 Совет: по итогу любой встречи или brainstorm'а — выписывай минимум 3 чёткие задачи, которые можно взять в работу. Без действия любая идея остаётся просто разговором.
Please open Telegram to view this post
VIEW IN TELEGRAM
👩‍💻 Чем опасен apply() и почему его стоит заменить

Сегодня рассмотрим почему DataFrame.apply() — это так себе инструмент в 2025 году, чем его заменять и как писать dataframe-логику так, чтобы она летала вместо того, чтобы жечь CPU и бюджет.

Читать...
Please open Telegram to view this post
VIEW IN TELEGRAM
⚙️ Что такое functools.partial в Python и зачем он используется?

functools.partial позволяет создавать новые функции с фиксированными аргументами на основе существующих функций. Это удобно для сокращения вызовов функций или создания функций-обёрток с предопределёнными параметрами.

➡️ Пример:

from functools import partial

def power(base, exponent):
return base ** exponent

# Фиксируем аргумент exponent = 2
square = partial(power, exponent=2)

print(square(5)) # 25
print(square(10)) # 100


🗣️ В этом примере partial создаёт новую функцию square, которая всегда возводит число в квадрат. Это упрощает вызовы функций и улучшает читаемость кода.


🖥 Подробнее тут
Please open Telegram to view this post
VIEW IN TELEGRAM
👩‍💻 Как Python помогает восстанавливать древние фрески: алгоритмы цифровой реставрации

Рассказал, как с Python и OpenCV восстанавливал фрески: писал свои алгоритмы, экспериментировал с нейросетями и пытался вернуть прошлое в настоящем. IT встречает вечность, серьёзно.

Читать...
Please open Telegram to view this post
VIEW IN TELEGRAM
👩‍💻 Ищем похожие иероглифы при помощи искусственного интеллекта

Пишу про свой мини-инструмент для изучения китайского — он показывает похожие иероглифы, чтобы не путаться. Объясняю архитектуру, выбор компонентов и кидаю код. Всё на Python и чуть SQL.

Читать...
Please open Telegram to view this post
VIEW IN TELEGRAM
👍1
👩‍💻 Безопасный парсинг query string с типами

Напишите функцию parse_query(query_string), которая принимает строку запроса из URL (например, "age=25&name=John&active=true") и возвращает словарь, где значения автоматически приводятся к корректным Python-типам:

"true" / "false"bool
— числа → int или float
— остальное → str

Поведение:

• Ключи и значения из строки должны быть декодированы (%20 → пробел и т.п.).

• Повторяющиеся ключи игнорируются — берётся первое вхождение.

• Пустые значения (key=) считаются None.


Решение задачи🔽

from urllib.parse import parse_qsl, unquote_plus

def convert_value(val):
if val == "":
return None
if val.lower() == "true":
return True
if val.lower() == "false":
return False
try:
if "." in val:
return float(val)
return int(val)
except ValueError:
return val

def parse_query(query_string):
result = {}
pairs = parse_qsl(query_string, keep_blank_values=True)

for key, value in pairs:
if key not in result: # Берем только первое вхождение
decoded_key = unquote_plus(key)
decoded_value = unquote_plus(value)
result[decoded_key] = convert_value(decoded_value)

return result

# Пример использования
query = "age=25&name=John%20Doe&height=1.82&active=true&admin=false&bio=&age=999"
print(parse_query(query))
# Ожидаемый результат:
# {'age': 25, 'name': 'John Doe', 'height': 1.82, 'active': True, 'admin': False, 'bio': None}
Please open Telegram to view this post
VIEW IN TELEGRAM
👍1
👩‍💻 Проверка теории повторяемости биржевых графиков

Данная статья навеяна мнением о том, что все участки биржевых графиков в прошлом уже повторялись, потому что поведение участников рынка подчиняется типовым сценариям. И если оцифровать все графики, то можно находить похожие участки в текущий момент времени и предполагать, какое движение будет в ближайшее время.

Читать...
Please open Telegram to view this post
VIEW IN TELEGRAM
1
👩‍💻 Пишем небольшой терминал на python #1. Файловая система

Рассказываю, как начать писать терминал на Python с собственной примитивной файловой системой — первая часть серии. Стартуем с filesystem.py и классов для диска и файлов.

Читать...
Please open Telegram to view this post
VIEW IN TELEGRAM
1
⚙️ Что такое enumerate() в Python и зачем он нужен?

enumerate() — это встроенная функция, которая добавляет счётчик к итерируемому объекту. Полезна, когда нужно получить и индекс, и значение при переборе списка, строки или любого итератора.

➡️ Пример:

fruits = ['яблоко', 'банан', 'вишня']

for index, fruit in enumerate(fruits):
print(f"{index}: {fruit}")

0: яблоко
1: банан
2: вишня


🗣️ Без enumerate() пришлось бы вручную управлять счётчиком. Это делает код чище, читаемее и более "питоничным".


🖥 Подробнее тут
Please open Telegram to view this post
VIEW IN TELEGRAM