Программистика
Закритий канал
Лучший канал про python Ссылка для друга: https://t.me/+Ai6ughKtf5g2ZmFi Купить рекламу: https://telega.in/c/+Ai6ughKtf5g2ZmFi Админ: @JeyRahol По рекламе: @ReivuManager
Показати більше5 573
Підписники
-324 години
-427 днів
-12130 день
Архів дописів
5 571
👀 Книга "Learning Python"
Получите исчерпывающее и углубленное представление об основном языке Python с помощью этой практической книги. Это обновленное шестое издание, основанное на популярном учебном курсе Марка Лутца, поможет вам быстро писать эффективный и высококачественный код на Python. Это идеальный способ начать, независимо от того, новичок вы в программировании или профессиональный разработчик, разбирающийся в других языках.Программистика|| #doc
5 571
СРОЧНО❗️Закидываем мастхев-каналы для Python и Java разработчиков.
➡️Прокачай свои хард-скиллы на максимум:
Pythoner и Javer
➡️Сотни гигов платных материалов, книг и статей:
Книжный python и Библиотека Java
➡️Скрипты, фишки и конечно же мемы:
IT HUB и Memes
Доступ открыли на 48 часов, успейте подписаться! ⚡
5 571
👩💻 Ошибки при работе с аргументами по умолчанию в Python (`mutable default arguments`).
🟢 Почему нельзя использовать изменяемые значения по умолчанию в аргументах функций?
Это одна из самых коварных ошибок в Python, на которой спотыкаются даже опытные разработчики. Давай разложим всё по полочкам 👇
📌 В чём проблема?
Когда ты используешь изменяемый объект (например, список или словарь) как значение по умолчанию в аргументах функции — он сохраняется один раз при определении функции, а не каждый раз при вызове.
🔧 Плохой пример (та самая ошибка):
def add_item(item, container=[]):
container.append(item)
return container
print(add_item(1)) # [1]
print(add_item(2)) # [1, 2] — 😱 неожиданный результат!
print(add_item(3)) # [1, 2, 3] — каждый раз список продолжает накапливаться
🗣 Почему так?
👉 Потому что один и тот же список `container` используется повторно во всех вызовах функции.
✅ Как правильно делать?
Используй None и создавай новый список внутри функции:
def add_item(item, container=None):
if container is None:
container = []
container.append(item)
return container
print(add_item(1)) # [1]
print(add_item(2)) # [2]
print(add_item(3)) # [3]
👉 Теперь каждый вызов функции использует новый независимый список.
📦 Ещё пример с dict:
🔴 Плохо:
def update_dict(key, value, data={}):
data[key] = value
return data
Каждый вызов будет работать с одним и тем же data!
🟢 Правильно:
def update_dict(key, value, data=None):
if data is None:
data = {}
data[key] = value
return data
📌 Почему это важно?
✅ Такие баги сложно отследить — особенно в больших проектах
✅ Они ломают логику, создают неожиданные побочные эффекты
✅ Это классика собеседований и must-know для каждого Python-разработчика
💡 Запомни:
✔️ Никогда не используй изменяемые значения (list, dict, set) в качестве аргументов по умолчанию
✔️ Вместо этого используй None и создавай объект внутри функции
✔️ Это простое правило избавит тебя от кучи скрытых багов
❓ Пиши свои темы — не стесняйся, мы сделаем крутой пост специально для тебя 👋5 571
👩💻 Лямбда-функции в Python — как и зачем их использовать?
Ты точно встречал странные конструкции вроде
lambda x: x + 1 и, возможно, пропускал их мимо глаз. А зря. Лямбда-функции — мощный инструмент Python, который может сделать твой код чище, короче и быстрее.
Давай разбираться что это, как работает и где реально применимо 👇
📌 Что такое lambda?
🟢 Это анонимная функция: функция без имени.
🟢 Она создаётся прямо «на лету» и может быть сохранена в переменную или передана в другую функцию.
👉 Синтаксис:
lambda arguments: expression
📦 Простой пример:
add = lambda x, y: x + y
print(add(3, 5)) # ✅ 8
То же самое через обычную функцию:
def add(x, y):
return x + y
📌 Зачем тогда нужна lambda?
➡️ Чтобы не плодить лишние функции там, где нужна простая операция «здесь и сейчас».
🔧 Где реально использовать lambda?
1️⃣ При работе с sorted()
words = ["apple", "banana", "cherry", "date"]
sorted_words = sorted(words, key=lambda word: len(word))
print(sorted_words) # ['date', 'apple', 'banana', 'cherry']
🗣 Мы сортируем список по длине слова — без создания отдельной функции.
2️⃣ При работе с map() и filter()
📌 Умножим все элементы списка на 2:
nums = [1, 2, 3, 4, 5]
doubled = list(map(lambda x: x * 2, nums))
print(doubled) # [2, 4, 6, 8, 10]
📌 Отфильтруем только чётные:
even = list(filter(lambda x: x % 2 == 0, nums))
print(even) # [2, 4]
3️⃣ Используем lambda в reduce()
📌 Считаем произведение всех чисел списка:
from functools import reduce
nums = [1, 2, 3, 4]
product = reduce(lambda x, y: x * y, nums)
print(product) # 24
4️⃣ Лямбда в GUI (например, Tkinter)
📌 При написании GUI на Python часто нужны короткие функции для кнопок:
import tkinter as tk
root = tk.Tk()
button = tk.Button(root, text="Click me", command=lambda: print("Button clicked!"))
button.pack()
root.mainloop()
🛑 Когда НЕ нужно использовать lambda:
✔️ Когда логика сложная — лучше написать обычную def-функцию
✔️ Когда важна читаемость
✔️ Когда нужно добавить аннотации типов
💡 Запомни:
✔️ lambda = короткая функция без имени
✔️ Используй для простых одноразовых действий: сортировка, фильтрация, обработка событий
✔️ Не используй для сложных многострочных операций
✔️ Всегда думай о читаемости
❓ А ты используешь lambda в проектах или всегда пишешь обычные функции?
❗️ Если хочешь пост на другую тему — не стесняйся, пиши! Мы сделаем полезный разбор именно для тебя 👋5 571
🌐Нашли для вас самый крутой блог 1С-разработчика
На своëм канале он уже осветил такие темы, как:
— Общая информация про JSON
— Основных сценариев использования JSON
— Настройка обмена через 1С:Документооборот
— Работа с кластерами серверов 1С
— Размещение баз 1С на удалённых серверах
👀Подписывайся, чтобы не потерять
5 571
👩💻 Лучший по Python. Для всех начинающих!!
Этот курс для каждого, кто захотел научиться программировать! С ним сможет справится: • Любой 5-классник. • Студент 1 курса. • Любой взрослый, захотевший узнать что-то новое.
🌐 СсылкаПрограммистика || #Course
5 571
👩💻 Magic Wormhole — это библиотека и утилита командной строки для безопасной передачи файлов, папок или текста между компьютерами!
🌟 Процесс передачи организован с использованием уникальных "wormhole-кодов", которые легко произносимы и вводятся вручную или через автодополнение. Эти коды одноразовые, что обеспечивает высокий уровень безопасности.
🐱 Ссылка на GitHub
Программистика || #Library
5 571
Прекрати гуглить — вот полезные каналы по операционкам и харду:
🟢Windows Club
🟢Linux Club
🟢Apple Club
🟢Hardware Club
После подписки ты выжмешь из железа 1000% и поднимешь lvl компьютерной грамотности!
5 571
👩💻 Почему твой Python-код медленный? И как это починить!
У многих код на Python работает медленно — и вместо решения проблемы все сразу ищут «быстрые» языки. Но чаще всего виноват не Python, а ты. Давай разбираться 👇
📌 Главные причины медленного кода:
🟢 Ненужные циклы и вложенные структуры
🟢 Работа с большими списками и словарями без оптимизации
🟢 Частые вызовы тяжёлых функций
🟢 Плохая работа с памятью и коллекциями
🔧 Пример 1: Медленные списки вместо множеств
items = [1, 2, 3, 4, 5]
if 5 in items:
print("Есть!") # Медленно при больших списках
✅ Исправляем:
items = {1, 2, 3, 4, 5} # set — поиск мгновенный
if 5 in items:
print("Есть!")
🗣 В списке поиск — O(n), в set — O(1). Это важно!
🔧 Пример 2: Списки vs генераторы
🔴 Плохо:
result = sum([x for x in range(10**6)])
🟢 Лучше:
result = sum(x for x in range(10**6))
✅ Генератор экономит память — потому что не создаёт весь список сразу.
🔧 Пример 3: Лишние функции внутри циклов
🔴 Плохо:
for i in range(10**6):
value = expensive_function(i)
🟢 Лучше — мемоизация (кэширование результатов):
from functools import lru_cache
@lru_cache(maxsize=None)
def expensive_function(x):
# Тяжёлая операция
return x * x
for i in range(10**6):
value = expensive_function(i)
🧠 Часто вызываешь с одними и теми же данными? Кэшируй.
🔧 Пример 4: Используй библиотеки под капотом на C
Если считаешь в лоб — это медленно. Используй numpy, pandas, collections:
from collections import Counter
data = ['a', 'b', 'a', 'c', 'b', 'a']
count = Counter(data)
print(count) # Counter({'a': 3, 'b': 2, 'c': 1})
✅ В 100 раз быстрее ручного подсчёта.
💡 Запомни:
✔️ Множества (set) для поиска
✔️ Генераторы вместо списков
✔️ Кэшируй тяжёлые функции
✔️ Используй готовые быстрые библиотеки
✔️ Измеряй скорость через timeit или cProfile, а не на глаз
❓ А если хотите предложить свою тему — не стесняйтесь и пишите! Мы с радостью сделаем пост специально для вас 👋5 571
Если программисту что-то не по душе — он просто переписывает это с нуля. Так и здесь: автор устал от Boosty и сделал собственную платформу.
📱 ПервоисточникПрограммистика|| #video
5 571
🟢 Walrus-оператор
:= в Python — как работает и когда применять
С Python 3.8 в языке появился новый синтаксис: :=. Он позволяет присваивать переменные внутри выражений — без лишнего кода. Но новички часто не понимают, когда его использовать и зачем.
📌 Что делает :=?
➡️ Выполняет присваивание внутри выражения
➡️ Возвращает это же значение
🗣 Другими словами: можно одновременно *присвоить* и *использовать* переменную.
👍Пример 1: Цикл while без повторного input()
🔴 Старый способ:
data = input("Введите что-то: ")
while data != "exit":
print(f"Вы ввели: {data}")
data = input("Введите что-то: ")
🟢 С :=:
while (data := input("Введите что-то: ")) != "exit":
print(f"Вы ввели: {data}")
✅ Стало компактнее, логика — та же.
Особенно удобно, если внутри while ты используешь переменную, полученную снаружи.
👍 Пример 2: Условие с присваиванием
Допустим, ты парсишь строки и хочешь проверить, есть ли число в строке. Без :=:
match = re.search(r"\d+", text)
if match:
number = match.group()
print("Нашли число:", number)
С :=:
if (match := re.search(r"\d+", text)):
print("Нашли число:", match.group())
📌 Меньше кода — не дублируется re.search(...).
👍 Пример 3: List comprehension с промежуточным значением
🔴 Без := приходится писать громоздко:
squares = []
for x in range(10):
sq = x * x
if sq > 20:
squares.append(sq)
🟢 С :=:
squares = [sq for x in range(10) if (sq := x * x) > 20]
➡️ Здесь sq := x * x сохраняет значение, а затем используется сразу же в условии.
👍 Пример 4: Чтение файла построчно
Допустим, ты читаешь большой файл и хочешь работать с построчно обработанными значениями. Раньше:
line = f.readline()
while line:
process(line)
line = f.readline()
Теперь:
while (line := f.readline()):
process(line)
🔍 Краткий итог
💡 Walrus-оператор полезен, когда:
✔️ Тебе нужно одновременно присвоить и использовать значение
✔️ Ты хочешь избежать повторной операции (input, вызов функции и т.п.)
✔️ Ты пишешь компактный генератор или условие
⚠️ Не злоупотребляй:
✖️ Если := ухудшает читаемость — лучше не использовать
✖️ Не путай с обычным = — := можно использовать только внутри выражения, = — в теле инструкции
💡 Запомни:
✔️ := = присвоение + возврат значения
✔️ Работает в Python 3.8+
✔️ Упрощает код, если использовать с умом
❓ А ты уже использовал walrus-оператор? Где он реально помог упростить код?5 571
🚀 Не стройте ракету, пока не собрали бумажный самолёт
Один из главных рисков в запуске IT-продукта — застрять в бесконечной доработке и не выйти на рынок.
В комьюнити Короче, Капитан делают по-другому.
Челлендж: 12 запусков за 12 месяцев.
✅ Разработка и запуск — за 1 месяц
✅ Минимальные вложения (средний бюджет на продвижение — $150)
✅ Честный разбор: что получилось, а что — нет
Формула проста:
1 запуск = 1 функция = решение 1 проблемы
Три главных правила:
⚡️Проверенный спрос, а не догадки
⚡️ Быстрый запуск без перфекционизма
⚡️ Только США и ЕС — там платят за удобство
📎 Канал Короче, Капитан показывает запуск, продвижение и доход по каждому продукту в реальном времени.
🧩 Без иллюзий, без теорий — только работающие подходы и реальные цифры.
👉 Подписаться: @its_capitan
5 571
🟢 Почему нужно писать
is None, а не == None?
Многие проверяют x == None, не задумываясь. Но в Python это антипаттерн. Есть причина, почему правильно писать x is None. Разберёмся!
📌 Пример:
x = None
if x == None:
print("None!") # ✅ Сработает
if x is None:
print("Тоже None!") # ✅ Тоже сработает
🗣 Кажется, разницы нет. Но она есть — и важная.
📌 В чём подвох?
✔️ == вызывает метод __eq__(), и поведение может быть переопределено
✔️ is сравнивает идентичность объектов в памяти
📦 Представь, у тебя класс:
class MyObject:
def __eq__(self, other):
return True # всё равно, что сравниваешь
obj = MyObject()
print(obj == None) # ✅ True
print(obj is None) # ❌ False
🔴 == None может вернуть True даже если объект не None!
🟢 Только is None гарантирует точную проверку.
💡 Запомни:
✔️ Пиши if x is None
✔️ И наоборот: if x is not None
✔️ Никогда не используй == None — это баг, ждущий своего часа
❓ А ты где-нибудь в проекте встречал == None?
Вже доступно! Дослідження Telegram за 2025 — головні інсайти року 
