Программистика
Closed channel
Лучший канал про python Ссылка для друга: https://t.me/+Ai6ughKtf5g2ZmFi Купить рекламу: https://telega.in/c/+Ai6ughKtf5g2ZmFi Админ: @JeyRahol По рекламе: @ReivuManager
Show more5 801
Subscribers
+3224 hours
+187 days
-4030 days
Posts Archive
5 800
🔁 Почему нельзя менять список во время итерации (и как это обойти)
Многие новички пишут цикл
for item in my_listи внутри пытаются удалять или добавлять элементы. Кажется логичным: «нашёл ненужное — удали». Но Python так не работает. Изменяя список во время итерации, вы ломаете внутренний механизм итератора. Результат — пропущенные элементы, исключения или странное поведение. 🧱 Проблема: что происходит под капотом Когда вы пишете
for x in lst:, Python создаёт итератор, который запоминает текущую позицию по индексу. Если внутри цикла вы удаляете элемент, все последующие элементы сдвигаются влево, а итератор продолжает двигаться вперёд. В итоге часть элементов пропускается.
lst = [1, 2, 3, 4, 5]
for x in lst:
if x % 2 == 0:
lst.remove(x)
print(lst) # [1, 3, 5] — может показаться, что работает
Но попробуйте другой список:
lst = [2, 4, 6, 8, 10]
for x in lst:
if x % 2 == 0:
lst.remove(x)
print(lst) # [4, 8] — где остальные?
Потому что после удаления 2, список сдвинулся, итератор перешёл к следующему индексу, где оказалось 6 (изначальное 4 было пропущено). Аналогично с добавлением — можно уйти в бесконечный цикл.
lst = [1, 2, 3]
for x in lst:
lst.append(x) # бесконечный цикл
🧠 Как правильно: 3
безопасных способа
1. Итерируйтесь по копии
Самый простой способ — создать копию списка и итерироваться по ней, а изменения вносить в оригинал.
lst = [1, 2, 3, 4, 5]
for x in lst[:]: # копия
if x % 2 == 0:
lst.remove(x)
print(lst) # [1, 3, 5]
Или через
list(lst)или
.copy()
.
2. Создавайте новый список
Часто проще собрать новый список из нужных элементов, чем мутировать старый.
lst = [1, 2, 3, 4, 5]
lst = [x for x in lst if x % 2 != 0]
print(lst) # [1, 3, 5]
Это самый идиоматичный способ.
3. Итерируйтесь в обратном порядке
Если нужно удалять элементы, можно идти с конца. Тогда сдвиги не влияют на ещё не пройденные элементы.
lst = [1, 2, 3, 4, 5]
for i in range(len(lst)-1, -1, -1):
if lst[i] % 2 == 0:
del lst[i]
print(lst) # [1, 3, 5]
🧪 Что насчёт словарей?
Со словарями ещё строже: изменение размера во время итерации вызывает
RuntimeError.
d = {'a': 1, 'b': 2}
for k in d:
d['c'] = 3 # RuntimeError: dictionary changed size during iteration
Решение — итерироваться по копии ключей:
for k in list(d):. Программистика|| #article
5 800
NVIDIA представила NOOA: фреймворк для разработки ИИ-агентов в рамках одного Python-класса
Компания NVIDIA выпустила открытый фреймворк NOOA (Object-Oriented Agents), который призван решить проблему фрагментации в разработке ИИ-агентов. Платформа объединяет разрозненные элементы инфраструктуры — шаблоны промптов, схемы инструментов, функции обратного вызова (callbacks) и графы рабочих процессов — в единый класс Python.
Проект передан в консорциум Open Secure AI Alliance для совместного развития открытых стандартов безопасности в сфере искусственного интеллекта.
➡️ Читать полностью
Программистика || #article
5 800
NVIDIA представила NOOA: фреймворк для разработки ИИ-агентов в рамках одного Python-класса
Компания NVIDIA выпустила открытый фреймворк NOOA (Object-Oriented Agents), который призван решить проблему фрагментации в разработке ИИ-агентов. Платформа объединяет разрозненные элементы инфраструктуры — шаблоны промптов, схемы инструментов, функции обратного вызова (callbacks) и графы рабочих процессов — в единый класс Python.
Проект передан в консорциум Open Secure AI Alliance для совместного развития открытых стандартов безопасности в сфере искусственного интеллекта.
➡️ Читать полностью
Программистика || #article
5 800
Все о структурах данных в Python для начинающих
Структуры данных — это фундамент Python и основа любой эффективной программы. Без понимания списков, кортежей, множеств и словарей невозможно писать чистый, логичный и производительный код. В курсе вы разберёте все основные структуры данных в Python, их разновидности и назначение, научитесь использовать методы, операторы и генераторы.
🌐 СсылкаПрограммистика || #Course
5 800
⏰ Библиотека Python: Arrow
Arrow — это интуитивная библиотека для работы с датами и временем, предлагающая простой API для создания, форматирования и манипуляции датами. Она поддерживает часовые пояса, человекочитаемые интервалы и значительно упрощает код по сравнению со стандартным datetime.
✔️ Установка:
pip install arrow
🐱 Ссылка на репозиторий
Программистика|| #Library5 800
Micro REPL 💻
Micro-REPL обладает следующими функциями:
✅Терминал для доступа к интерактивной оболочке MicroPython. ✅Файловый менеджер для хранения файлов MicroPython. ✅Интеллектуальный редактор кода с поддержкой синтаксиса Python и автодополнением.
🌐 СсылкаПрограммистика || #Ресурсы
5 800
👩💻 Python-библиотеки для сисадмина
Если ты автоматизируешь серверы, сети и рутину, вот набор библиотек, который реально пригодится:
🔴paramiko — SSH, удалённые команды, копирование файлов. 🔵psutil — нагрузка CPU, RAM, диски, процессы. 🔴requests / httpx — работа с API и веб-сервисами. 🔵pyyaml — удобные конфиги в YAML. 🔴pydantic — валидация конфигов и входных данных. 🔵rich — красивый вывод в терминале. 🔴loguru — простые и удобные логи. 🔵fabric — выполнение команд на нескольких серверах. 🔴dnspython — DNS-проверки. 🔵watchdog — слежение за файлами и директориями.Что поставить первым:
pip install paramiko psutil requests rich pydantic pyyaml loguru
Этого набора уже хватает для большинства админских скриптов: мониторинг, бэкапы, SSH-автоматизация, обработка конфигов и API-интеграции.
Программистика || #Library5 800
Вопрос от подписчика: Почему Python 2 и 3 несовместимы?
Потому что Python 3 — это не “чуть обновили”, а почти пересобрали язык заново.
В нём поменяли вещи, на которых держался старый код: строки стали вести себя по-другому, Unicode сделали нормой, print превратился в функцию, а часть старого синтаксиса просто выкинули.
P.S // Если у вас тоже есть вопросы, не стесняйтесь задавать их комменратиях
Программистика || #вопрос_ответ
5 800
⚠️ Внимание: Опубликована слитая недавно База из 1000+ топовых курсов и материалов для айтишников
Отсортировали их для вашего удобства и выложили в телеграм-каналы по категориям:
🤖 Нейросети – 855+ материалов
🖥 Python — 1558+ материалов
👩💻 Frontend — 1241+ материалов
👩💻 Backend — 1095+ материалов
⚙️ Программы — 978+ материалов
📚 Книги по IT — 779+ материалов
⌛️ Ссылки будут активны 48 часов, сохрани себе, чтобы не потерять!
5 800
Хитрости которые экономят время ⌨️
В программировании важны не только знания языка, но и привычки, которые помогают писать код быстрее и аккуратнее. Хороший разработчик думает не только о том, как код написать, но и о том, как потом его читать, тестировать и дорабатывать.
Один из самых полезных приёмов, это не повторять один и тот же код. Если фрагмент используется несколько раз, его лучше вынести в функцию, модуль или компонент. Так код становится чище и проще в поддержке.
Ещё один важный подход, это быстро проверять идеи на практике. Иногда лучше сначала собрать простой рабочий вариант, а уже потом улучшать его. Это помогает не тратить время на лишнюю сложность.
Очень помогает и грамотная отладка. Когда что то идёт не так, полезно смотреть логи, значения переменных и стек вызовов. Часто это быстрее, чем пытаться угадать причину ошибки.
И, пожалуй, главный секрет в том, чтобы писать код проще. Чем понятнее структура, имена и логика, тем легче с ним работать потом.
Программистика|| #article
5 800
Продвинутые алгоритмы на Python
Этот курс посвящён ключевым алгоритмам на графах и их практической реализации на языке Python. Вы научитесь находить кратчайшие пути, строить минимальное остовное дерево и вычислять максимальный поток, а также применять эти алгоритмы на практике.
🌐 СсылкаПрограммистика || #Course
5 800
🧠 Базы данных на Python и ИИ
Это практическое руководство по работе с данными в экосистеме Python от хранения информации и SQL-запросов до аналитики, оптимизации и построения моделей машинного обучения. Книга знакомит читателя с SQLite, PostgreSQL, MySQL, MongoDB, SQLAlchemy и pandas, показывая, как эти инструменты применяются в реальных проектах. Большая часть материала состоит из готовых примеров кода с подробными пояснениями. Отдельное внимание уделено обработке больших объемов данных, оптимизации производительности, потоковой обработке, эффективному использованию памяти и построению аналитических ИИ-моделейПрограммистика || #doc
5 800
Проходила я пару лет тому назад собеседование в одной фирме.
Меня спросили: - Как написать скрипт для переименования файлов в папке?
И я, не долго думая, ответила: - Ну, это легко! Нужно просто взять файл, открыть его, посмотреть на него строго, сказать: "Теперь ты Петя!" и сохранить!
Интервьюер немного замялся, а потом говорит: - А если файлов тысяча?
Я задумалась и говорю: - Тогда надо поставить их в ряд и начать перекличку!
На этом моменте интервьюер начал улыбаться, а я добавила: - Но если серьёзно, я могу написать код, просто думала, что вы хотите креативный подход!
На этом меня взяли на работу, но до сих пор в офисе все файлы называют Петями.
Программистика
5 800
Пишем кроссплатформенные приложения на Python: погружение в Kivy
Kivy — это фреймворк, предназначенный для кроссплатформенной разработки приложений на Python. Вы точно не найдете его в топах самых популярных и обсуждаемых инструментов, потому что проект развивается медленно, имеет не самый широкий и современный набор средств верстки интерфейса, а также плохо оптимизирован для сборки ПО.
➡️ Читать статью
Программистика || #article
