Программистика
Закритий канал
Лучший канал про python Ссылка для друга: https://t.me/+Ai6ughKtf5g2ZmFi Купить рекламу: https://telega.in/c/+Ai6ughKtf5g2ZmFi Админ: @JeyRahol По рекламе: @ReivuManager
Показати більше5 783
Підписники
-424 години
+107 днів
-4730 днів
Архів дописів
5 783
👩💻 Magic Wormhole — это библиотека и утилита командной строки для безопасной передачи файлов, папок или текста между компьютерами!
🌟 Процесс передачи организован с использованием уникальных "wormhole-кодов", которые легко произносимы и вводятся вручную или через автодополнение. Эти коды одноразовые, что обеспечивает высокий уровень безопасности.
🐱 Ссылка на GitHub
Программистика || #Library
5 783
Прекрати гуглить — вот полезные каналы по операционкам и харду:
🟢Windows Club
🟢Linux Club
🟢Apple Club
🟢Hardware Club
После подписки ты выжмешь из железа 1000% и поднимешь lvl компьютерной грамотности!
5 783
👩💻 Почему твой 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 783
Если программисту что-то не по душе — он просто переписывает это с нуля. Так и здесь: автор устал от Boosty и сделал собственную платформу.
📱 ПервоисточникПрограммистика|| #video
5 783
🟢 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 783
🚀 Не стройте ракету, пока не собрали бумажный самолёт
Один из главных рисков в запуске IT-продукта — застрять в бесконечной доработке и не выйти на рынок.
В комьюнити Короче, Капитан делают по-другому.
Челлендж: 12 запусков за 12 месяцев.
✅ Разработка и запуск — за 1 месяц
✅ Минимальные вложения (средний бюджет на продвижение — $150)
✅ Честный разбор: что получилось, а что — нет
Формула проста:
1 запуск = 1 функция = решение 1 проблемы
Три главных правила:
⚡️Проверенный спрос, а не догадки
⚡️ Быстрый запуск без перфекционизма
⚡️ Только США и ЕС — там платят за удобство
📎 Канал Короче, Капитан показывает запуск, продвижение и доход по каждому продукту в реальном времени.
🧩 Без иллюзий, без теорий — только работающие подходы и реальные цифры.
👉 Подписаться: @its_capitan
5 783
🟢 Почему нужно писать
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?5 783
❗ТОП 2 канала для тех, кто хочет хочет развиваться в кибербезе
🔤Project Omega — закрытая лаборатория белого хакера. Криптография на практике и разборы популярных инструментов защиты.
🔤no system is safe // cybersec — один из древнейших ресурсов по информационной безопасности в рунете. Книги, курсы, полезные тулсы, уроки по Linux, новости клирнета.
🔤Никаких заявок! Каналы открыты!
5 783
Как живет айтишник, который зарабатывает 5000$ в мес?
Живет хорошо! За глубокие знания и умение решать самые сложные задачи его ценят в любой команде: от стартапа до крупной корпорации. А он умеет продавать себя, получать лучшие предложения на работу и эффективно распределять время.
Для этого нужно всего 5 минут в день читать канал айтишника.
Здесь вы найдёте практические советы, инсайды и секреты от разработчика с 11+ лет опыта, о которых не рассказывают на курсах.
5 минут на канале заменят месяцы самостоятельного изучения.
Подписывайтесь: https://t.me/+IT7CNlGRCpw5YzEy
5 783
5 783
👀 Книга "Python, Django, Data Science"
Показаны основы работы на Python, а также два его основных ответвления – веб-разработка на Django и область прикладного искусственного интеллекта, являющаяся частью Data Science. Для студентов и сотрудников высших технических учебных заведений, а также специалистов прикладной сферы анализа данных.
Программистика|| #doc
5 783
👩💻 Почему
or в Python работает не так, как ты думаешь?
Новички часто используют or, думая, что он возвращает True или False. Но в Python всё устроено немного иначе. И это может привести к неожиданному поведению 👇
📌 Пример:
def get_name(name):
return name or "Anonymous"
print(get_name("Alice")) # ✅ Alice
print(get_name("")) # ❌ Anonymous
🗣 Почему второй результат — "Anonymous", хотя мы передали строку?
Потому что в Python or возвращает первое истинное значение, а не логическое True/False.
📌 Как это работает:
x = "" or "fallback"
print(x) # "fallback" — потому что "" считается ложным значением
x = 0 or 5
print(x) # 5
x = [] or [1]
print(x) # [1]
⚠️ Опасность: ты можешь получить "резервное" значение даже если аргумент технически передан, но он пустой (0, "", [], False и т.д.)
📌 Как избежать ошибок?
1️⃣ Явно проверяй is None, если важно отсутствие значения, а не "пустота":
def get_name(name=None):
if name is None:
return "Anonymous"
return name
2️⃣ Не полагайся на or, если ноль или пустая строка — валидные значения.
💡 Запомни:
✔️ or возвращает одно из значений, а не True/False
✔️ or — это не "если пусто — подставь", а "возьми первое истинное"
✔️ Будь осторожен с 0, [], "", False — они все считаются ложными
❓ А у тебя бывало, что or подставлял значение, которого ты не ждал?5 783
🐍💩👩💻👩💻🧑💻🧑💻🐧👩💻🧑💻👩💻👩💻
В сети начали массово сливать курсы и книги известных онлайн школ по айти
Вот отсортированная база с тонной материала (постепенно пополняется):
(363 видео, 87 книги) — Python
(415 видео, 68 книги) — Frontend
(143 видео, 33 книги) — ИБ/Хакинг
(352 видео, 89 книги) — С/С++/C#
(343 видео, 87 книги) — Java/QA
(176 видео, 32 книги) — Git/Linux
(174 видео, 91 книги) — DevOps
(167 видео, 53 книги) — PHP/1С
(227 видео, 83 книги) — SQL/БД
(114 видео, 77 книги) — Сисадмин
(107 видео, 43 книги) — BA/SA
(181 видео, 32 книги) — Go/Rust
(167 видео, 43 книги) — Kotlin/Swift
(112 видео, 24 книги) — Flutter
(137 видео, 93 книги) — DS/ML
(113 видео, 82 книги) — GameDev
(183 видео, 37 книги) — Дизайн
(136 видео, 33 книги) — PM/HR
Скачивать ничего не нужно — все выложили в Telegram
5 783
👩💻 Почему
+= может вести себя не так, как ты ожидаешь?
Многие думают, что += всегда создаёт новый объект. Но в Python всё зависит от типа данных. Особенно опасно это с списками и другими изменяемыми типами.
📌 Пример с числом (всё нормально):
x = 10
x += 5
print(x) # ✅ 15 — создалось новое число
📌 А теперь со списками:
a = [1, 2]
b = a
a += [3]
print(a) # ✅ [1, 2, 3]
print(b) # 😱 [1, 2, 3] — тоже изменился!
🗣 Почему так?
+= для списков — это не создание нового списка. Это мутабельное изменение на месте (list.__iadd__).
То есть a и b указывают на один и тот же объект в памяти — и += меняет его.
📌 Что делать?
1️⃣ Если хочешь создать новый список — используй +, а не +=:
a = [1, 2]
b = a
a = a + [3] # Новый объект!
print(a) # [1, 2, 3]
print(b) # [1, 2]
2️⃣ Или делай copy() заранее:
a = [1, 2]
b = a.copy()
a += [3]
print(a) # [1, 2, 3]
print(b) # [1, 2]
💡 Запомни:
✔️ += изменяет объект на месте, если он мутабельный
✔️ Список, словарь, множество — всё меняется по ссылке
✔️ Для создания нового объекта — используй + или copy()
❓ А ты знал, что a += b может затронуть и другие переменные?5 783
Айтишник, который не умеет использовать командную строку bash – так себе специалист.
Если посетить несколько собеседований уровня от миддл, то можно убедиться, что вопросы про опыт работы в консоли появляются довольно часто.
Сходу научиться всем командам bash нереально – их очень много.
К счастью, появился канал BashMaster, в котором каждый день можно узнавать по одной небольшой связке команд и сразу же внедрять их в свою работу.
Подпишись, освоишь bash на изи 👍
