• Как работает bytearray в Python? Смотрим реализацию на C
• Большой гайд по миграциям в Django: готовимся к миграциям и избегаем конфликтов
• Как я создал Telegram-бота для хранения файлов и чуть не стал библиотекарем
• Как за 6 промтов к ChatGPT создать Python скрипт, скачивающий видео с YouTube для просмотра на телевизоре через Kodi
• KAN 2.0: Kolmogorov-Arnold Networks Meet Science
Please open Telegram to view this post
VIEW IN TELEGRAM
История о том, как я пытался реализовать подпись файлов с помощью сертификата на 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. Без этого ваши тесты — сказки. Пример с брокерскими API и питоновским скриптом для поиска активных бумаг.
Читать...
Please open Telegram to view this post
VIEW IN TELEGRAM
В статье — что такое t-строки в Python 3.14, зачем они вообще нужны, чем отличаются от f-строк и как устроены под капотом. Новый способ форматирования, который может перевернуть привычки.
Читать...
Please open Telegram to view this post
VIEW IN TELEGRAM
Автор делится опытом создания 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, в том числе для видеокарт 50xx серии, а также настройки NVIDIA Container Toolkit. Эта инструкция актуальна для Linux-систем на базе Ubuntu и других Debian-совместимых дистрибутивов.
Читать...
Please open Telegram to view this post
VIEW IN TELEGRAM
Обсуждение, планирование, идеи — всё звучит круто, пока не превращено в конкретные действия.
Please open Telegram to view this post
VIEW IN TELEGRAM
Сегодня рассмотрим почему 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 и OpenCV восстанавливал фрески: писал свои алгоритмы, экспериментировал с нейросетями и пытался вернуть прошлое в настоящем. IT встречает вечность, серьёзно.
Читать...
Please open Telegram to view this post
VIEW IN TELEGRAM
• Большой гайд по миграциям в Django: полезные советы и обход типичных подводных камней
• Когда уверенность становится самонадеянностью: история одной фатальной ошибки
• Как создать свой веб-фреймворк на Python
• Рекурсивные запросы в SQLAlchemy
• С бумаги на цифровую карту: генерация файла из таблицы для импорта на карту и геокодирование адресов с помощью Python
Please open Telegram to view this post
VIEW IN TELEGRAM
❤1
Пишу про свой мини-инструмент для изучения китайского — он показывает похожие иероглифы, чтобы не путаться. Объясняю архитектуру, выбор компонентов и кидаю код. Всё на Python и чуть SQL.
Читать...
Please open Telegram to view this post
VIEW IN TELEGRAM
👍1
Напишите функцию
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 с собственной примитивной файловой системой — первая часть серии. Стартуем с 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