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

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

По вопросам рекламы или разработки: @g_abashkin
Download Telegram
Подборка каналов IT от наших друзей:

🦥 Lazy_Programmer – Для ленивых

🎬 videos_it  — База видеоуроков по IT

🐧 Linux_Club — Для Linuxоидов

📔 BOOKS — Читать не перечитать

🇷🇺 our_computer — У нас как в СССР

🔐 LazySecurity — Канал по ИБ

🤩 iwannabeprogrammer  — IT-мемы

🔥 floppydisky — ITUMOR

📱 codebase_frontend — Красим кнопки

➡️ LazyDevOps —  Канал для дев и псов

🐈‍⬛️ LazyTester — Протестируй канал!
Please open Telegram to view this post
VIEW IN TELEGRAM
1
👩‍💻 Задачка по Python

Напишите функцию, которая принимает список email-адресов и возвращает уникальные домены из этого списка. Домен — это часть адреса после символа @.

➡️ Пример:

["[email protected]", "[email protected]", "[email protected]", "[email protected]"]

#{"example.com", "test.com", "sample.com"}


Решение задачи ⬇️

def get_unique_domains(emails):
domains = {email.split('@')[1] for email in emails}
return domains

# Пример использования:
emails = ["
[email protected]", "[email protected]", "[email protected]", "[email protected]"]
result = get_unique_domains(emails)
print(result) # Ожидаемый результат: {'
example.com', 'test.com', 'sample.com'}
Please open Telegram to view this post
VIEW IN TELEGRAM
👩‍💻 Файловая система без фокусов: как hard links и XOR сэкономят ваши гигабайты

Статья объясняет концепцию символьных и жёстких ссылок на файлы, акцентируя внимание на hard links в Windows, малоизвестных многим веб-разработчикам. В простых примерах раскрывается принцип работы ссылок и их отличия от привычных ярлыков.

Читать...
Please open Telegram to view this post
VIEW IN TELEGRAM
👩‍💻 Задачка по Python

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

➡️ Пример:

"A man, a plan, a canal, Panama"

True


Решение задачи ⬇️

import re

def is_palindrome(s):
# Оставляем только буквы и цифры, приводим к нижнему регистру
cleaned = re.sub(r'[^a-zA-Z0-9]', '', s).lower()
return cleaned == cleaned[::-1]

# Пример использования:
input_string = "A man, a plan, a canal, Panama"
result = is_palindrome(input_string)
print(result) # Ожидаемый результат: True
Please open Telegram to view this post
VIEW IN TELEGRAM
👩‍💻 Давайте-ка наваяем PumpKeen Game. Как Commander Keen, только про Pumpkin (тыкву). Хэллоуин же

В статье показано, как создать свою страшилку на Хэллоуин с помощью Python и p5py, прямо в онлайн-IDE. Без лишних установок и настроек — просто открывай браузер и начинай программировать.

Читать...
Please open Telegram to view this post
VIEW IN TELEGRAM
👩‍💻 Приложение на Go шаг за шагом. Часть первая: скелет, НТТР-сервер и конфигурация

Статья предлагает структурированный подход к обучению Go для новичков. Автор курса «Go-разработчик с нуля» делится опытом и помогает пошагово создать API для управления библиотекой книг, чтобы закрепить полученные знания.

Читать...
Please open Telegram to view this post
VIEW IN TELEGRAM
1
👩‍💻 Задачка по Python

Напишите функцию, которая принимает строку и два дополнительных аргумента — слово для замены и новое слово. Функция должна заменить все вхождения указанного слова в строке на новое слово.

➡️ Пример:

Входная строка:
"The weather is nice today. Nice weather makes me happy."
Слово для замены: "nice"
Новое слово: "great"

Ожидаемый вывод:
"The weather is great today. Great weather makes me happy."


Решение задачи ⬇️

def replace_word(text, old_word, new_word):
return text.replace(old_word, new_word)

# Пример использования:
input_text = "The weather is nice today. Nice weather makes me happy."
result = replace_word(input_text, "nice", "great")
print(result) # Ожидаемый результат: "The weather is great today. Great weather makes me happy."
Please open Telegram to view this post
VIEW IN TELEGRAM
👩‍💻 Разрабатываем первое AI приложение

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

Читать...
Please open Telegram to view this post
VIEW IN TELEGRAM
👩‍💻 Возможности функции scatterplot() библиотеки seaborn

Статья объясняет использование функции scatterplot() из seaborn для визуализации взаимосвязи числовых переменных. Рассказывается о параметрах настройки цвета, размера и стиля точек, что помогает в многомерном анализе данных.

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

Модуль os в Python предоставляет инструменты для взаимодействия с операционной системой. С его помощью можно управлять файлами и директориями, получать информацию о системе и переменных окружения, а также выполнять системные команды. Этот модуль особенно полезен для кроссплатформенных сценариев.

➡️ Пример:

import os

# Получение текущей директории
current_dir = os.getcwd()
print('Текущая директория:', current_dir)

# Создание новой директории
os.mkdir('new_folder')
print('Создана директория new_folder')


🗣 os позволяет удобно и кроссплатформенно работать с файловой системой, выполнять команды и настраивать окружение.
Please open Telegram to view this post
VIEW IN TELEGRAM
👩‍💻 Укрощение монстров: мониторинг и управление ресурсоемкими запросами в Django + PostgreSQL

Каждый Django-разработчик рано или поздно сталкивается с неожиданно «тяжелыми» запросами, способными превратить быстрое приложение в неповоротливого слона. Рассказываем, как с помощью django-pgactivity выследить и обезвредить такие запросы, прежде чем они создадут проблемы вашим пользователям.

Читать...
Please open Telegram to view this post
VIEW IN TELEGRAM
😱 Страх ошибки — худший тормоз для роста.

Сколько раз ты избегал нового только потому, что боялся облажаться? Ошибка кажется концом света, но на деле это просто этап обучения. Сидя в зоне уверенности, ты никогда не узнаешь, насколько можешь быть сильнее, умнее, опытнее.

🎯 Что делать: начни с маленьких рисков. Возьми задачу, в которой пока не уверен, или предложи идею на митинге, даже если есть сомнения. Фейлы — это не клеймо, а возможность показать, как ты умеешь справляться и двигаться дальше. Чем раньше примешь это, тем быстрее начнёшь расти.
Please open Telegram to view this post
VIEW IN TELEGRAM
👩‍💻 Пишем небольшое приложение на Python для повышения продуктивности с помощью ИИ и BotHub API

Статья объясняет, как создать приложение для автоматического анализа онлайн-встреч. Используя API BotHub (Whisper-1 + Claude 3.5 Sonnet), вы научитесь извлекать ключевые идеи, распределять задачи и генерировать отчёты в формате PDF.

Читать...
Please open Telegram to view this post
VIEW IN TELEGRAM
👩‍💻 Задачка по Python

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

➡️ Пример:

[10, 20, 4, 45, 99]
45

[5, 5, 5]
None


Решение задачи ⬇️

def find_second_largest(numbers):
# Удаляем дубликаты и сортируем список в порядке убывания
unique_numbers = sorted(set(numbers), reverse=True)
# Если уникальных чисел меньше двух, возвращаем None
return unique_numbers[1] if len(unique_numbers) >= 2 else None

# Пример использования:
print(find_second_largest([10, 20, 4, 45, 99])) # Ожидаемый результат: 45
print(find_second_largest([5, 5, 5])) # Ожидаемый результат: None
Please open Telegram to view this post
VIEW IN TELEGRAM
👩‍💻 Кастомизация Django Admin. Часть 1: Структура шаблонов

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

Читать...
Please open Telegram to view this post
VIEW IN TELEGRAM
👩‍💻 Задачка по Python

Напишите функцию, которая принимает строку и возвращает список всех её подстрок. Подстрока — это непрерывная последовательность символов, содержащаяся в строке.

➡️ Пример:

"abc"
['a', 'ab', 'abc', 'b', 'bc', 'c']


Решение задачи ⬇️

def generate_substrings(s):
substrings = []
for i in range(len(s)):
for j in range(i + 1, len(s) + 1):
substrings.append(s[i:j])
return substrings

# Пример использования:
input_string = "abc"
result = generate_substrings(input_string)
print(result) # Ожидаемый результат: ['a', 'ab', 'abc', 'b', 'bc', 'c']
Please open Telegram to view this post
VIEW IN TELEGRAM
👩‍💻 Состояние производительности Python 3.13: Free-Threading

Статья посвящена новому free-threaded режиму в CPython 3.13, который открывает возможности параллельного выполнения потоков. Рассматриваются особенности его использования и влияние на производительность.

Читать...
Please open Telegram to view this post
VIEW IN TELEGRAM
Forwarded from Frontender's notes [ru]
Supply Chain атака на npm: Shai-Hulud — угроза, которая заражает проекты

Недавняя атака на экосистему npm под названием Shai-Hulud привлекла внимание разработчиков по всему миру. Это масштабная supply chain атака, которая затронула более 500 пакетов, включая популярные библиотеки, такие как ngx-toastr, tinycolor, react-jsonschema-form-extras и пакеты от CrowdStrike.

Заражённые пакеты содержат вредоносный скрипт bundle.js. Этот скрипт запускает TruffleHog для поиска секретных данных, таких как GitHub токены, NPM ключи или AWS креды, и отправляет их на внешний сервер. Дополнительно создаётся вредоносный workflow в папке .github/workflows, который будет автоматически запускаться при каждом CI-процессе. В итоге, атака действует как червь, распространяясь через каждый новый пакет, заражая downstream-проекты.


ℹ️ Что делать разработчикам

Проверить проекты на наличие заражённых версий пакетов
Ротировать npm-токены, GitHub PAT и облачные креды, чтобы минимизировать последствия
Аудитировать CI/CD конфигурации для выявления подозрительных изменений
Обновлять пакеты только из доверенных источников, избегать использования сомнительных версий


📌 Supply chain атаки становятся всё более изощрёнными и опасными. Ранее мы переживали только за typosquatting, а теперь столкнулись с реальными «npm-червями», которые могут заразить проекты на всех уровнях. Если вы работаете с публичными пакетами, регулярный аудит зависимостей и CI/CD — теперь часть обязательной практики.

🚪 Frontender's notes
Please open Telegram to view this post
VIEW IN TELEGRAM