Python Ninja | Программирование
6.92K subscribers
1.08K photos
99 videos
918 links
Канал для всех кто хочет освоить или прокачать навыки программирования на Python. Присоединяйся, чтобы стать настоящим Python Ninja!

Связь: @sfoninja
Download Telegram
Совет по Python: как проверить наличие подклассов

Проверить наследование классов вPython для проверки подклассов используется встроенная функция issubclass():
class Vehicle:
pass


class Car(Vehicle):
pass


issubclass(Car, Vehicle)
# True

issubclass(Vehicle, Car)
# False

issubclass(A, B) проверяет:
является ли класс A подклассом класса B.

Полезная особенность можно передать кортеж классов:
issubclass(Car, (list, Vehicle))
# True

Python вернёт True, если класс наследуется хотя бы от одного класса из кортежа

✈️ Python Ninja
Please open Telegram to view this post
VIEW IN TELEGRAM
👍4
Осваиваем вайбкодинг бесплатно

Вице-президент Wix запустил мощную платформу для обучения AI-кодингу в паре с нейросетями. Всё объясняется максимально простым языком, так что разобраться сможет человек, который ни разу не пользовался ChatGPT.

Внутри:

• 14 уровней обучения;
• 150 интерактивных уроков;
• путь от базовой работы в терминале до MCP и автономных AI-агентов.

При этом курс уже успел получить хорошие отзывы его отдельно отметил Борис Черный, создатель Claude Code.

Python Ninja
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥2
Распаковка последовательностей с * в Python

В Python можно распаковывать последовательности с помощью *, чтобы работать с переменным количеством элементов

При этом * можно ставить в любом месте, и он соберёт все «лишние» значения в отдельную переменную-список 👇

a, b, c = 10, 2, 3      # стандартная распаковка
a, *b = 10, 2, 3 # b = [2, 3]
a, *b, c = 10, 2, 3, 4 # b = [2, 3]
*a, b, c = 10, 2, 3, 4 # a = [10, 2]


Удобно, когда не знаешь заранее длину списка или нужно взять только часть элементов

✈️ Python Ninja
Please open Telegram to view this post
VIEW IN TELEGRAM
👍3👀1
Нужно понять какие аргументы переданы в Python-скрипт?

Для этого используется sys.argv список аргументов командной строки.
import sys

print(sys.argv)


Как это работает: sys.argv[0] имя самого скрипта дальше идут все переданные параметры запуска

Пример:
python app.py hello world

Результат:
['app.py', 'hello', 'world']

Простой и базовый способ работать с CLI-аргументами в Python 👉

✈️ Python Ninja
Please open Telegram to view this post
VIEW IN TELEGRAM
👍2
Отличный ресурс по паттернам проектирования с примерами на популярных языках

Собраны все основные паттерны проектирования с примерами кода, схемами и краткими объяснениями. Удобно для повторения, обучения или собеседований 👍

☝️ Ссылка источник

Python Ninja
Please open Telegram to view this post
VIEW IN TELEGRAM
2
Еще минутку 😳

Python Ninja
Please open Telegram to view this post
VIEW IN TELEGRAM
😁5
Media is too big
VIEW IN TELEGRAM
Microsoft буквально выпустили качалку для AI-агентов

Компания представила SkillOpt систему, автоматического улучшения навыков и инструкций агента. По сути AI сам переписывает свои файлы: добавляет полезные инструкции, оптимизирует рабочий процесс и убирает недостатки.

Интересно что результаты выглядят очень серьёзно. В тестах качество работы GPT-5.5 после оптимизации через SkillOpt увеличилось примерно на 23%. Причём прирост наблюдался сразу на нескольких бенчмарках.

☝️ Ссылка источник

✈️ Python Ninja
Please open Telegram to view this post
VIEW IN TELEGRAM
2
Крупнейшая коллекция реализаций алгоритмов «The-Algorithms»

Хотите изучать алгоритмы легко и интересно? Держите крупнейшую коллекцию реализаций алгоритмов на десятках языков программирования. Простой поиск, чистый код, пояснения

Сохраняем за лайк ✍️

☝️ Ссылка источник

✈️ Python Ninja
Please open Telegram to view this post
VIEW IN TELEGRAM
👍4
Как строить box plot'ы в Python?

На этот раз небольшая битва между pandas и seaborn.

Вариант 1. Seaborn
Когда важны красивые графики и удобная работа с категориями:
import seaborn as sns

sns.set_theme(style="whitegrid")

tips = sns.load_dataset("tips")
sns.boxplot(x="day", y="total_bill", data=tips)


Плюсы:
• приятный внешний вид из коробки
• удобно сравнивать категории
• много возможностей для кастомизации


Вариант 2. Pandas
Когда данные уже находятся в DataFrame и нужен быстрый результат:
import numpy as np
import pandas as pd

np.random.seed(1234)

df = pd.DataFrame(
np.random.randn(10, 4),
columns=["Col1", "Col2", "Col3", "Col4"]
)

df.boxplot(column=["Col1", "Col2", "Col3"])


Плюсы:
• минимум кода
• не нужно подключать seaborn
• удобно для быстрого анализа данных


Простое правило: Используйте pandas, если нужен быстрый box plot. Используйте seaborn, если график пойдёт в отчёт, презентацию или дашборд.

Оба инструмента строят box plot'ы отлично выбор зависит от задачи

Python Ninja
Please open Telegram to view this post
VIEW IN TELEGRAM
2
Проверка вхождения подстроки в кортеже

Что выведет код ✏️

Python Ninja
Please open Telegram to view this post
VIEW IN TELEGRAM
3
Варианты
Anonymous Quiz
42%
A
41%
B
18%
C
This media is not supported in your browser
VIEW IN TELEGRAM
На GitHub завирусился плагин который даёт AI-агентам «бесконечную» память

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

Поддерживаются Claude Code, Cursor, Codex и десяток других популярных агентов. Это система которая сама сжимает историю в “воспоминания” и потом автоматически поднимает нужный контекст в будущих задачах.

Разрабы говорят, что таким образом можно экономить до 95% токенов, которые обычно уходят на повторное объяснение проекта

☝️ Ссылка источник

✈️ Python Ninja
Please open Telegram to view this post
VIEW IN TELEGRAM
2
Кладезь для изучения компьютерных сетей: «Сети для самых маленьких»

Это огромная бесплатная база знаний по сетям, которую многие считают уже почти легендарной

Здесь разбираются VLAN, STP, NAT, BGP, MPLS, VPN, QoS, маршрутизация, проектирование сетей и ещё куча тем, которые рано или поздно встречаются каждому сетевику

Причём объясняют всё так, что хочется читать дальше. Однозначно в закладки 🧑‍🍳

☝️ Ссылка источник

✈️ Python Ninja
Please open Telegram to view this post
VIEW IN TELEGRAM
3
Трюк в Python: Скрытый ввод пароля

Обычный способ (небезопасный):
username = input('Введите имя пользователя: ')
password = input('Введите пароль: ')

Вывод:
Введите имя пользователя: admin
Введите пароль: admin123

Когда вы используете стандартный input() для ввода пароля, введённый текст отображается в консоли. Это небезопасно, особенно если кто-то наблюдает за экраном или если вы записываете сессию терминала.

Безопасный способ:
from getpass import getpass
username = input('Введите имя пользователя: ')
password = getpass('Введите пароль: ')

Вывод:
Введите имя пользователя: admin
Введите пароль: ********

Модуль getpass входит в стандартную библиотеку Python. Он позволяет безопасно получать ввод от пользователя без отображения вводимых символов.

✈️ Python Ninja
Please open Telegram to view this post
VIEW IN TELEGRAM
6🆒2
Python срезы: уровень выше среднего

Что выведет код? 😼

Python Ninja
Please open Telegram to view this post
VIEW IN TELEGRAM
👍4
Варианты
Anonymous Quiz
23%
A
18%
B
30%
C
28%
D
Хорошие новости подвезли бесплатный Data Science курс

freeCodeCamp выпустили мощный бесплатный курс по работе с Pandas, NumPy и построением графиков

Много практики, понятные объяснения и никакой скучной теории — perfect для тех, кто хочет уверенно работать с данными в Python.

Если давно хотел прокачаться в анализе данных — залетай 🌪

☝️ Ссылка источник

Python Ninja
Please open Telegram to view this post
VIEW IN TELEGRAM
6
Вот вам типичная «подлянка» в Python которая может съесть кучу времени

Если у вас есть метод, возвращающий либо экземпляр объекта, либо None, может возникнуть соблазн полагаться на истинность значения в условиях

Например:
thing = get_thing()
if thing:
do_stuff_with_thing(thing)


Это работает до тех пор, пока вы не определите метод bool. Тогда вы сами создадите себе очень запутанную ошибку: вдруг иногда do_stuff_with_thing перестаёт вызываться. И если прошло какое-то время, найти причину будет непросто

Правильное решение всегда явно проверять на None:
if thing is not None:
do_stuff_with_thing(thing)


Считайте это «наилучшей практикой». Делайте так даже если пока не видите в этом необходимости. У такого подхода нет недостатков 👍

✈️ Python Ninja
Please open Telegram to view this post
VIEW IN TELEGRAM
👍4
Жиза? ☺️

Python Ninja
Please open Telegram to view this post
VIEW IN TELEGRAM
😁6
Нашёл простой способ узнать, какие LLM потянет ваш компьютер. ( и это не /llmfit)

Устанавливаете:
npm install -g llm-checker


Определяете характеристики железа:
llm-checker hw-detect


Получаете рекомендации моделей под нужную задачу:
llm-checker recommend --category coding


Утилита анализирует ваше железо и подсказывает, какие модели имеет смысл запускать локально, вместо бесконечных экспериментов в духе (а вдруг запустится).

Для тех, кто играет с локальными LLM через Ollama, LM Studio или Open WebUI, штука может сэкономить немало времени.

✈️ Python Ninja
Please open Telegram to view this post
VIEW IN TELEGRAM
👍2