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

Связь: @sfoninja
Download Telegram
Варианты
Anonymous Quiz
30%
A
40%
B
20%
C
10%
D
Откопал полезный репо — коллекция шпаргалок для разработчиков

Здесь есть буквально всё, короткие удобные шпаргалки по самым нужным темам. Git, SQL-запросы, Docker, RegEx, Bash, Python, JS, HTTP-коды, архитектура REST и многое другое.

Держи под рукой чтобы ускорить рабочий процесс ⌨️

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

✈️ Python Ninja
Please open Telegram to view this post
VIEW IN TELEGRAM
3
Ловите подгон «101 Linux Commands» системный путеводитель команд Linux

Представьте опытный админ садится рядом и подробно объясняет вам, как устроен Linux. «101 Linux Commands» именно эта книга: дружный проводник, который шаг за шагом открывает мир терминала, не пугая сложностями

Практичный справочник для новичков и специалистов нуждающихся в мини компактном источнике базовых и часто используемых команд 📖

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

✈️ Python Ninja
Please open Telegram to view this post
VIEW IN TELEGRAM
5
Динамическая диспетчеризация функций

Динамическая диспетчеризация функций означает принятие решения во время выполнения программы о том, какую функцию вызвать, основываясь на некоторых динамических условиях — часто на типе аргумента, значении или атрибутах объекта. Это можно представить как более «умную» версию конструкции if-elif, в которой Python сам решает, какую функцию исполнить, исходя из контекста, а не заранее заданного потока кода. Это является ключевой идеей полиморфизма и гибкого проектирования

Замена длинных цепочек if-else на словарь диспетчеризации (dispatch dictionary) дает значительные преимущества в читаемости, масштабируемости и сопровождаемости кода

В примере ниже, вместо того чтобы использовать громоздкие if-else мы используем карту команд (command map), которую можно легко обновить, если потребуется добавить новые команды. Никаких вложенных условий или «адского» отступа. Такой подход делает код более читаемым, масштабируемым и простым в обновлении
def start_engine():
return "Запуск двигателя..."

def stop_engine():
return "Остановка двигателя..."

def pause_engine():
return "Приостановка двигателя..."

# Диспетчер команд
command_map = {
"start": start_engine,
"stop": stop_engine,
"pause": pause_engine,
# Здесь можно добавить больше команд
}

def handle_command(command):
action = command_map.get(command)
if action:
return action()
else:
return "Неверная команда"

print(handle_command("pause"))


Вывод:
Приостановка двигателя...


✈️ Python Ninja
Please open Telegram to view this post
VIEW IN TELEGRAM
5
Лицо Валеры когда вчера починил а сегодня опять сломали 🙈

✈️ Python Ninja
Please open Telegram to view this post
VIEW IN TELEGRAM
😁12🔥2
Совет по Python

Метод startswith()

Если у вас есть список строк и вы хотите получить все строки, которые начинаются с определённого значения, вы можете использовать метод списка startswith()

В приведённом ниже примере мы хотим получить все строки из списка, начинающиеся с буквы "a"
a = ['Lemon', 'Orange', 'apple', 'apricot']
list1 = [i for i in a if i.startswith('a')]
print(list1)

# Вывод:
['apple', 'apricot']


Важные уточнения:

Чувствительность к регистру – метод startswith('a') проверяет строго с маленькой буквы

Если нужно искать строки, начинающиеся на 'a' или 'A' используйте:
[i for i in a if i.lower().startswith('a')]

Проверка нескольких префиксов – можно передавать кортеж префиксов:
[i for i in a if i.startswith(('a', 'A'))]


✈️ Python Ninja
Please open Telegram to view this post
VIEW IN TELEGRAM
5👍2
Хочешь строить приложение на Python и избежать фронтенда

Тогда тебе безусловно понравится этот современный декларативный UI‑фреймворк на Python, без HTML/CSS/JS. Он реализует модель в духе React/Flutter, где все компоненты — Python‑классы с атрибутами‑dataclass и методом build()

Более 50 встроенных компонентов: rio.Button, rio.Text, rio.Switch и др.

Автодополнение и type safety благодаря полным аннотациям типов

Запуск: локально (окно) или веб (через WebSocket, FastAPI/Uvicorn) — один и тот же код

Dev‑фичи: hot reload, встроенный devtools, интеграция с Python debugger

Лично мне он нравится уже даже по описанию 😏

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

✈️ Python Ninja
Please open Telegram to view this post
VIEW IN TELEGRAM
3
Полезная тулза «Port Kill» приложение для быстрого управления процессами

Помогает разработчикам быстро находить и завершать процессы, мешающие работе на нужных портах

Автоматически определяет активные процессы ( Docker), показывает статус цветными индикаторами и позволяет завершать их выборочно или все сразу

Сохраняем пригодится

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

✈️ Python Ninja
Please open Telegram to view this post
VIEW IN TELEGRAM
4
Двойное подчёркивание и name mangling в Python

Что выведет код 👍

✈️ Python Ninja
Please open Telegram to view this post
VIEW IN TELEGRAM
3
Варианты
Anonymous Quiz
44%
A
23%
B
28%
C
5%
D
Как я стал Python разработчиком 👦

✈️ Python Ninja
Please open Telegram to view this post
VIEW IN TELEGRAM
😁5🙉43
Подарок новичкам самый наглядный и дружелюбный инструмент изучения Git

Learn Git Branching настоящий подарок для новичков: интерактивные задания и живое визуальное дерево коммитов превращают изучение Git в игру, здесь каждое твоё действие тут же оживает на экране, делая даже сложные темы лёгкими и понятными

Каждый коммит это шаг. Главное начать идти 💪

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

✈️ Python Ninja
Please open Telegram to view this post
VIEW IN TELEGRAM
5
Эффективное освоение алгоритмов через паттерны LeetCode

Ресурс группирует задачи LeetCode по фундаментальным паттернам решения, превращая разрозненные задачи в понятную систему подходов

Каждый паттерн объяснён, подкреплён примерами и визуализациями что помогает не просто «зубрить» задачи, а понимать сам подход, который легко переносится на новые задачи

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

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

✈️ Python Ninja
Please open Telegram to view this post
VIEW IN TELEGRAM
👍2
Совет по Python

Возвращаем несколько значений из функции с помощью namedtuple

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

Пример:
from collections import namedtuple

def multiple_values():
MyTuple = namedtuple("MyTuple", ["name", "age", "car"])
name = "Mark"
age = 21
car = "Ford"
return MyTuple(name, age, car)

# Использование функции
result = multiple_values()
print(f"Name: {result.name}, Age: {result.age}, Car: {result.car}")

Вывод:
Name: Mark, Age: 21, Car: Ford


Преимущества:

Четкая структура: поля name, age и car заданы явно

Доступ к значениям по именам (result.name), а не по индексам

Улучшает читаемость и поддерживаемость кода

✈️ Python Ninja
Please open Telegram to view this post
VIEW IN TELEGRAM
2🔥2
Логические операторы и приоритеты в Python

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

✈️ Python Ninja
Please open Telegram to view this post
VIEW IN TELEGRAM
👍3
Варианты
Anonymous Quiz
10%
A
35%
B
56%
C
5
Трюк в Python: Последовательность Фибоначчи

Классический способ
f1 = 0
f2 = 1
fib = []
for i in range(0, 10):
fib.append(f1)
temp = f1 + f2
f1 = f2
f2 = temp
print(fib)

Вывод: [0, 1, 1, 2, 3, 5, 8, 13, 21, 34]

В первом способе используются переменные f1 и f2, которые изначально равны 0 и 1 — первым двум числам последовательности. В цикле for текущее значение f1 добавляется в список fib, после чего вычисляется следующее число как сумма f1 и f2. Затем значения переменных обновляются: f1 принимает значение f2, а f2 — вычисленную сумму. Этот процесс повторяется 10 раз, в результате чего формируется список из первых 10 чисел Фибоначчи

Компактный способ (с использованием list comprehension)
fib = [0, 1]
[fib.append(fib[-2] + fib[-1]) for _ in range(8)]
print(fib)

Вывод: [0, 1, 1, 2, 3, 5, 8, 13, 21, 34]

Второй способ короче и использует list comprehension. Создается начальный список fib = [0, 1], а затем в цикле 8 раз (поскольку первые два числа уже заданы) добавляется новое число, равное сумме двух последних элементов списка (fib[-2] + fib[-1]). Таким образом, list comprehension модифицирует список "на лету", добавляя очередное число Фибоначчи на каждой итерации

✈️ Python Ninja
Please open Telegram to view this post
VIEW IN TELEGRAM
6
И не таких роняли 💪

✈️ Python Ninja
Please open Telegram to view this post
VIEW IN TELEGRAM
😁13
This media is not supported in your browser
VIEW IN TELEGRAM
А вы знали что внутри в VS Code можно пройти курс по Git

GitByBit предлагает практический формат обучения прямо внутри VS Code: задания выполняются в рабочей среде, где каждое действие проверяется автоматически

Такой подход позволяет быстро и эффективно освоить Git, укрепить навыки работы с репозиториями и научиться уверенно управлять историей проекта без скучной теории 💯

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

✈️ Python Ninja
Please open Telegram to view this post
VIEW IN TELEGRAM
4
Запускаем эксперимент обычный «Hello world» на разных языках и с секундомером

Тестировали всё в один поток, в контейнерных песочницах и на старом процессоре так что цифры не про рекорды, а про сравнение между собой

У интерпретируемых языков измеряли только старт, без компиляции. Kotlin, как обычно, размахнулся полоску пришлось подрезать, чтобы она влезла в 80 символов 😅

Да, в настоящих проектах с зависимостями всё будет иначе. Но даже такой примитивный тест показывает, как по-разному ведут себя языки

✈️ Python Ninja
Please open Telegram to view this post
VIEW IN TELEGRAM
👍3
Нашел учебный курс по продвинутому Python

Иногда попадаются материалы, которые реально меняют взгляд на язык. Этот курс по продвинутому Python как раз из таких: он учит думать на Python, а не просто писать код

Генераторы, итераторы, корутины, дизайн кода и другие вещи, до которых редко доходят в обычных туториалах

Если кажется, что вы «и так знаете Python», этот курс быстро покажет, где знания были поверхностными ✏️

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

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