en
Feedback
Программистика

Программистика

Closed channel

Лучший канал про python Ссылка для друга: https://t.me/+Ai6ughKtf5g2ZmFi Купить рекламу: https://telega.in/c/+Ai6ughKtf5g2ZmFi Админ: @JeyRahol По рекламе: @ReivuManager

Show more
5 573
Subscribers
-324 hours
-427 days
-12130 days
Posts Archive
👀 Книга "Learning Python" Получите исчерпывающее и углубленное представление об основном языке Python с помощью этой практич
👀 Книга "Learning Python"
Получите исчерпывающее и углубленное представление об основном языке Python с помощью этой практической книги. Это обновленное шестое издание, основанное на популярном учебном курсе Марка Лутца, поможет вам быстро писать эффективный и высококачественный код на Python. Это идеальный способ начать, независимо от того, новичок вы в программировании или профессиональный разработчик, разбирающийся в других языках.
Программистика|| #doc

СРОЧНО❗️Закидываем мастхев-каналы для Python и Java разработчиков. ➡️Прокачай свои хард-скиллы на максимум: Pythoner и Javer
СРОЧНО❗️Закидываем мастхев-каналы для Python и Java разработчиков. ➡️Прокачай свои хард-скиллы на максимум: Pythoner и Javer ➡️Сотни гигов платных материалов, книг и статей: Книжный python и Библиотека Java ➡️Скрипты, фишки и конечно же мемы: IT HUB и Memes Доступ открыли на 48 часов, успейте подписаться!

👩‍💻 Ошибки при работе с аргументами по умолчанию в 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 и создавай объект внутри функции ✔️ Это простое правило избавит тебя от кучи скрытых багов ❓ Пиши свои темы — не стесняйся, мы сделаем крутой пост специально для тебя 👋

👩‍💻 Лямбда-функции в 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 в проектах или всегда пишешь обычные функции? ❗️ Если хочешь пост на другую тему — не стесняйся, пиши! Мы сделаем полезный разбор именно для тебя 👋

👩‍💻 Шпаргалка по типам данных Python Программистика || #doc
👩‍💻 Шпаргалка по типам данных Python Программистика || #doc

👩‍💻 Лучший по Python. Для всех начинающих!! Этот курс для каждого, кто захотел научиться программировать! С ним сможет спра
👩‍💻 Лучший по Python. Для всех начинающих!! Этот курс для каждого, кто захотел научиться программировать! С ним сможет справится: • Любой 5-классник. • Студент 1 курса. • Любой взрослый, захотевший узнать что-то новое.
🌐 Ссылка
Программистика || #Course

👩‍💻 Magic Wormhole — это библиотека и утилита командной строки для безопасной передачи файлов, папок или текста между компь
👩‍💻 Magic Wormhole — это библиотека и утилита командной строки для безопасной передачи файлов, папок или текста между компьютерами! 🌟 Процесс передачи организован с использованием уникальных "wormhole-кодов", которые легко произносимы и вводятся вручную или через автодополнение. Эти коды одноразовые, что обеспечивает высокий уровень безопасности. 🐱 Ссылка на GitHub Программистика || #Library

Недалёкое будущее Программистика|| #Мемы
Недалёкое будущее Программистика|| #Мемы

Прекрати гуглить — вот полезные каналы по операционкам и харду: 🟢Windows Club 🟢Linux Club 🟢Apple Club 🟢Hardware Club После подписки ты выжмешь из железа 1000% и поднимешь lvl компьютерной грамотности!

👩‍💻 Почему твой 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, а не на глаз ❓ А если хотите предложить свою тему — не стесняйтесь и пишите! Мы с радостью сделаем пост специально для вас 👋

Если программисту что-то не по душе — он просто переписывает это с нуля. Так и здесь: автор устал от Boosty и сделал собственную платформу.
📱 Первоисточник
Программистика|| #video

🟢 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-оператор? Где он реально помог упростить код?

👩‍💻 Графическая шпаргалка Python 🌐 Ссылка Программистика // #doc
👩‍💻 Графическая шпаргалка Python
🌐 Ссылка
Программистика // #doc

🚀 Не стройте ракету, пока не собрали бумажный самолёт Один из главных рисков в запуске IT-продукта — застрять в бесконечной доработке и не выйти на рынок. В комьюнити Короче, Капитан делают по-другому. Челлендж: 12 запусков за 12 месяцев. ✅ Разработка и запуск — за 1 месяц ✅ Минимальные вложения (средний бюджет на продвижение — $150) ✅ Честный разбор: что получилось, а что — нет Формула проста: 1 запуск = 1 функция = решение 1 проблемы Три главных правила: ⚡️Проверенный спрос, а не догадки ⚡️ Быстрый запуск без перфекционизма ⚡️ Только США и ЕС — там платят за удобство 📎 Канал Короче, Капитан показывает запуск, продвижение и доход по каждому продукту в реальном времени. 🧩 Без иллюзий, без теорий — только работающие подходы и реальные цифры. 👉 Подписаться: @its_capitan

🟢 Почему нужно писать 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?

Программистика - Statistics & analytics of Telegram channel