fa
Feedback
Python академия

Python академия

رفتن به کانال در Telegram

Учи Python быстро и легко. Ежедневно публикуем практические задачи, разборы, готовые решения, объяснения логики, советы по алгоритмам. ✔ Подходит для прокачки навыков кодирования. По всем вопросам @evgenycarter

نمایش بیشتر
7 189
مشترکین
اطلاعاتی وجود ندارد24 ساعت
-77 روز
-3930 روز
آرشیو پست ها
Метод get для словарей У словарей есть метод get, который возвращает значение по ключу, переданному в аргументах функции. Одн
Метод get для словарей У словарей есть метод get, который возвращает значение по ключу, переданному в аргументах функции. Однако если такого ключа в словаре нет, то исключение не выбрасывается, а возвращается значение по умолчанию, которое передаётся вторым аргументом, или же None, если второй аргумент не передан. В качестве примера создадим словарь с именами, которые можно получить по определенным значениям, и напишем функцию, которая возвращает приветственную фразу со взятием имени из этого словаря. 📲 Мы в MAX Подписывайтесь на канал 👉@pythonofff

"Быстрый" контейнер deque Структура deque предпочтительнее, чем обычный список, в тех случаях, когда нам нужны более быстрые
"Быстрый" контейнер deque Структура deque предпочтительнее, чем обычный список, в тех случаях, когда нам нужны более быстрые операции добавления и вытягивания элементов из обоих концов контейнера. К тому же, контейнер deque обеспечивает линейную сложность O(1) для операций добавления и выталкивания по сравнению со стандартным списком, у которого сложность по времени для тех же операций составляет O(n). Также для deque есть возможность использовать такие стандартные функции, как sum, min, max и другие. 📲 Мы в MAX Подписывайтесь на канал 👉@pythonofff

⁠Блок else в циклах for Хауди хо, друзья. Практически все новички теряются при виде блока else после циклов, поэтому сейчас н
⁠Блок else в циклах for Хауди хо, друзья. Практически все новички теряются при виде блока else после циклов, поэтому сейчас немного проясним ситуацию. В Python блок else может быть представлен не только в условных конструкциях после if, но и в циклах после for и while. В данном случае код внутри else выполняется, только если цикл не был прерван с помощью break. Типичный пример использования – поиск чего-либо в цикле с использованием ключевого слова break при нахождении, как показано на картинке. Исходный код текстом можете найти в нашем чате. 📲 Мы в MAX Подписывайтесь на канал 👉@pythonofff

Логические any и all Одна из многих причин, почему Python является таким популярным языком, заключается в том, что он читаем
Логические any и all Одна из многих причин, почему Python является таким популярным языком, заключается в том, что он читаем и выразителен. Предлагаю взглянуть на прикрепленный ниже код. Функция any возвращает значение True, если хотя бы одно из переданных утверждений верно, all – в случае, если все верны. На мой взгляд, эти две функции заслуживают отдельного внимания всего лишь из-за их простоты в использовании. 📲 Мы в MAX Подписывайтесь на канал 👉@pythonofff

⌨️ Многозадачность в python. Асинхронность, процессы, потоки Приглашаем на открытый урок. 🗓 04 августа в 20:00 МСК 🆓 Беспла
⌨️ Многозадачность в python. Асинхронность, процессы, потоки Приглашаем на открытый урок. 🗓 04 августа в 20:00 МСК 🆓 Бесплатно. Урок в рамках старта курса «Python-разработчик. Продвинутый уровень». Что будет на вебинаре? ✔️ Разберём особенности различных способов реализации многозадачности. ✔️ Рассмотрим оптимальные случаи применения каждого из способов ✔️ Увидим изменения в реализации многозадачности в различных версиях Python Что в результате вебинара узнают слушатели? Как/где смогут применить полученные навыки? - Выбирать оптимальную реализацию многозадачности в зависимости от решаемой проблемы - Получать значения метрик, необходимых для анализа преимуществ внедрения многозадачности - Создавать код, использующий аппаратные ресурсы более оптимальным способом. 🔗 Ссылка на регистрацию: https://vk.cc/cZYkTk Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576

⁠Автоматический счетчик во время итераций по коллекциям Привет. Достаточно часто я наблюдаю ситуации, в которых новички созда
⁠Автоматический счетчик во время итераций по коллекциям Привет. Достаточно часто я наблюдаю ситуации, в которых новички создают "костыли", когда им необходим счетчик во время обхода коллекции. И вот решение проблемы. Итак, встроенная в Python функция enumerate применяется для итерируемых коллекций (строки, списки, словари и другие) и создает объект, который генерирует кортежи, состоящие из двух элементов – индекса элемента и самого элемента. И это еще не все, enumerate также принимает необязательный второй аргумент, который позволяет указать, с какого числа начинать отсчет. По умолчанию индекс начинается с нуля, но в данном примере я передал единицу. 📲 Мы в MAX Подписывайтесь на канал 👉@pythonofff

Вычисляем размер объектов в памяти Чтобы вычислить размер какого-либо объекта, можно воспользоваться функцией sys.getsizeof(o
Вычисляем размер объектов в памяти Чтобы вычислить размер какого-либо объекта, можно воспользоваться функцией sys.getsizeof(object[, default]). Поскольку Python написан в полном соответствии с парадигмой ООП, таким объектом может быть все что угодно. Однако, следует помнить, что хотя все built-in (встроенные) объекты и вернут правильный размер, в общем случае это не должно быть верно для каких-либо пользовательских объектов. Аргумент default позволяет определить значение, которое будет возвращено, если тип объекта не предоставляет средства для извлечения размера и вызовет TypeError . Функция getsizeof вызывает метод sizeof объекта и добавляет дополнительные служебные данные сборщика мусора, если конечно объект управляется сборщиком мусора. 📲 Мы в MAX Подписывайтесь на канал 👉@pythonofff

🚀 Подборка полезных IT каналов в Max Системное администрирование, DevOps 📌 https://max.ru/i_odmin Все для системного администратора https://max.ru/bash_srv Bash Советы https://max.ru/sysadminof Книги для админов, полезные материалы https://max.ru/i_odmin_book Библиотека Системного Администратора https://max.ru/i_devops DevOps: Пишем о Docker, Kubernetes и др. https://max.ru/tipsysdmin Типичный Сисадмин https://max.ru/channel_win_sysadmin Системный Администратор Windows https://max.ru/channel_linux_admin Linux: Системный администратор https://max.ru/channel_linuxmod Linux https://max.ru/channel_i_linux Системный администратор https://max.ru/channel_devopslib DevOps, SRE, Sysadmin https://max.ru/channel_devops_star DevOps Star (Звезда Девопса) Excel лайфхак 📌 https://t.me/Excel_lifehack Excel лайфхак Английский с нуля 🇬🇧 https://max.ru/UchuEnglish 1C разработка 📌 https://max.ru/odin1c_rus Cтатьи, курсы, советы, шаблоны кода 1С https://max.ru/channel_DevLab1C 1С:Предприятие 8 Программирование C++📌 https://max.ru/cpp_lib Библиотека C/C++ разработчика https://max.ru/channel_cpp_geek C++ geek Программирование Go📌 https://max.ru/golang_lib Библиотека Go (Golang) разработчика Программирование React📌 https://max.ru/react_lib React Программирование Rust📌 https://max.ru/channel_rust_lib Программирование Python 📌 https://max.ru/python_of Python академия. https://max.ru/BookPython Библиотека Python разработчика Java разработка 📌 https://max.ru/bookjava Библиотека Java разработчика https://max.ru/channel_java_geek Java Geek GitHub Сообщество 📌 https://max.ru/githublib Интересное из GitHub Базы данных (Data Base) 📌 https://max.ru/database_info Все про базы данных Фронтенд разработка 📌 https://max.ru/frontend_1 Подборки для frontend разработчиков Библиотеки 📌 https://max.ru/programmist_of Книги по программированию https://max.ru/proglb Библиотека программиста https://max.ru/bfbook Книги для программистов Программирование 📌 https://max.ru/bookflow Лекции, видеоуроки, доклады с IT конференций https://max.ru/itmozg Программисты, дизайнеры, новости из мира IT https://max.ru/php_lib Библиотека PHP программиста 👨🏼‍💻👩‍💻 Шутки программистов 📌 https://max.ru/itumor Шутки программистов Защита, взлом, безопасность 📌 https://max.ru/thehaking Канал о кибербезопасности https://max.ru/xakkep_1 Хакер Free Книги, статьи для дизайнеров 📌 https://max.ru/odesigners Статьи, книги для дизайнеров Математика 📌 https://max.ru/Pomatematike Канал по математике https://max.ru/phismat_1 Обучающие видео, книги по Физике и Математике Вакансии в IT📌 https://max.ru/progjob https://max.ru/channel_rabotait Мир технологий 📌 https://max.ru/mir_teh Канал для любознательных Бонус 📌 https://max.ru/piterspb_78 Свежие новости Санкт-Петербурга https://max.ru/mockva_life Свежие новости Москвы https://max.ru/piterspb Питер Новости: Санкт-Петербург / СПБ / ДТП

Explicit Conversion Flag Флаг явного преобразования используется для преобразования значения поля format перед его непосредст
Explicit Conversion Flag Флаг явного преобразования используется для преобразования значения поля format перед его непосредственным форматированием. Это поле можно использовать для переопределения поведения format для какого либо конкретного типа и форматирования значения. В настоящее время распространены два явных флага преобразования: !r – преобразует значение в строку, используя функцию repr() !s – преобразует значение в строку, используя функцию str() В примере, в случае с флагом !r строка 'Hello' будет напечатана с кавычками в поле шириной не менее 20 символов, а в случае с флагом !s – без кавычек (в более удобном для чтения виде). 📲 Мы в MAX Подписывайтесь на канал 👉@pythonofff

Ускоряем код с помощью векторизации Одним из приемов для ускорения работы циклов является векторизация вычислений, т. е. испо
Ускоряем код с помощью векторизации Одним из приемов для ускорения работы циклов является векторизация вычислений, т. е. использование функций, которые поддерживают операции над векторами. Вообще лучший способ ускорить любой цикл – это отказаться от него. В примере выше для работы с функцией my_func мы могли бы вызвать ее в цикле для каждого элемента списка, но гораздо проще использовать vectorize. По сути, vectorize преобразует функцию таким образом, что она начинает принимать весь вектор целиком, а не отдельный его элемент. Надо помнить, что такой подход не всегда приводит к значительному ускорению. 📲 Мы в MAX Подписывайтесь на канал 👉@pythonofff

⁠Кэширование функций Кэширование может сэкономить время, когда связанная с вводом или выводом функция периодически вызывается
⁠Кэширование функций Кэширование может сэкономить время, когда связанная с вводом или выводом функция периодически вызывается с одинаковыми аргументами. Раньше приходилось создавать свою реализацию, но в Python 3.2+ появился декоратор lru_cache, который позволяет нам быстро кэшировать и вскрывать возвращаемые значения функции. Давайте реализуем калькулятор чисел Фибоначчи с использованием кэша. Советую попробовать запустить любую рекурсивную функцию с кэшированием и без него, прирост в скорости замечается сразу. 📲 Мы в MAX Подписывайтесь на канал 👉@pythonofff

Генерация уникальных идентификаторов В этот пятничный вечер Адриан подготовил для вас небольшой, но крайне полезный приём, ко
Генерация уникальных идентификаторов В этот пятничный вечер Адриан подготовил для вас небольшой, но крайне полезный приём, который часто применяется на практике. Стандартный модуль uuid — быстрый и простой способ сгенерировать UUID (universally unique identifier), глобально уникальный идентификатор. Так, мы можем создать случайное 128-битное число, которое наверняка будет уникальным. Существует более 2¹²² возможных UUID. Это более 5 ундециллионов, то есть 36 нулей. Вероятность нахождения дубликатов в заданном наборе крайне мала. Даже при наличии триллиона UUID вероятность того, что среди них есть дубликат, гораздо меньше, чем один к миллиарду. Вполне недурно для двух строк кода. 📲 Мы в MAX Подписывайтесь на канал 👉@pythonofff

Switch-конструкция с помощью словаря Привет, на связи Адриан. Начинающие программисты достаточно часто спрашивают меня про sw
Switch-конструкция с помощью словаря Привет, на связи Адриан. Начинающие программисты достаточно часто спрашивают меня про switch-конструкции, а в Python их вобщем-то нет. Однако существует одно хитрое решение – использовать словарь, где значениями будут функции. В качестве примера напишем словарь, который будет использован для математических операторов. В этом примере я использовал lambda-функции для упрощения кода, но вместо них можете подставить любые другие. Объясню немного подробнее, lambda – объявление анонимной функции, x и y - принимаемые аргументы, x + y – возвращаемый результат. 📲 Мы в MAX Подписывайтесь на канал 👉@pythonofff

Именование среза с использованием функции slice Работа с множеством значений, которые заданы индексами, может быстро обернуть
Именование среза с использованием функции slice Работа с множеством значений, которые заданы индексами, может быстро обернуться беспорядком – как в плане поддержки, так и в плане читабельности кода. Один из вариантов улучшения ситуации заключается в использовании констант для значений, задаваемых индексами. Но есть и более удачный способ написания качественного кода, как показано на картинке 📲 Мы в MAX Подписывайтесь на канал 👉@pythonofff

Частичное применение Сегодня поговорим об одном интересном концепте из области функционального программирования. Использовать
Частичное применение Сегодня поговорим об одном интересном концепте из области функционального программирования. Использовать будем функцию partial из стандартной библиотеки functools. Предоставление функции меньшего количества аргументов, чем она ожидает, называется частичным применением функций. Другими словами, это такая функция, которая принимает другую функцию с несколькими параметрами и возвращает функцию, но уже с меньшим количеством параметров. Подписывайтесь на канал 👉@pythonofff

Правильным ответом является [1, 2] Происходит так из-за того, что дефолтные параметры хранятся в неизменном кортеже в атрибут
Правильным ответом является [1, 2] Происходит так из-за того, что дефолтные параметры хранятся в неизменном кортеже в атрибуте функции defaults, который создается один раз в момент определения функции. А для того, чтобы добиться правильного поведения функции, следует воспользоваться ключевым словом None при о 📲 Мы в MAX Подписывайтесь на канал 👉@pythonofff

Разработка ИИ-приложений с Claude Code. Бесплатный урок курса «Вайб-кодинг: создание цифровых продуктов с ИИ» Claude Code пом
Разработка ИИ-приложений с Claude Code. Бесплатный урок курса «Вайб-кодинг: создание цифровых продуктов с ИИ» Claude Code помогает быстрее писать, анализировать и дорабатывать код. Но ценность такого инструмента раскрывается не тогда, когда вы просите «сделай приложение», а когда умеете дробить задачу, задавать контекст, контролировать архитектуру и вести разработку пошагово. Иначе вместо ускорения получится набор кусков кода, которые трудно проверить и связать в рабочий продукт. На открытом уроке 21 июля в 20:00 разберём, как использовать Claude Code для практической разработки ИИ-продуктов и сервисов. Посмотрим, как с его помощью создавать Telegram-ботов, ИИ-агентов и внутренние сервисы, генерировать серверную логику, программные интерфейсы, интеграции и автоматизации через текстовые запросы. Отдельно обсудим подходы к работе с большими проектами: структуру промптов, контекст, пошаговую разработку и проверку результата. Также покажем, как применять Claude Code для доработки кода, поиска ошибок и ускорения разработки. Урок поможет понять, как выстроить процесс вайб-кодинга при создании реальных цифровых продуктов, а не просто генерировать отдельные фрагменты. Урок не для тех, кто хочет заменить инженерное мышление одним запросом, не готов проверять результат и считает, что ИИ сам соберёт качественный продукт без постановки задачи, контекста и контроля. 👉 Записаться: https://vk.cc/cZzmqV Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576

3 трюка с itertools Сегодня мы рассмотрим несколько функций из довольно полезного модуля, позволяющих эффективно работать с и
3 трюка с itertools Сегодня мы рассмотрим несколько функций из довольно полезного модуля, позволяющих эффективно работать с итерируемыми объектами. Начнём с очень простой функции – chain. Она позволяет "склеивать" несколько итерируемых элементов в один. Далее, accumulate. Эта функция немного похожа на reduce, но вместо того, чтобы давать одно окончательное значение, она последовательно применяет функцию, заданную вторым аргументом (в данном случае min), к каждому последующему элементу по порядку: min(11), min(11, 3), min(11, 3, 9) и так далее. А для того, чтобы создавать комбинации из элементов выбранного итерируемого объекта, вам понадобится функция combinations. Вторым аргументом можно задать длину этой самой комбинации. 📲 Мы в MAX Подписывайтесь на канал 👉@pythonofff

Ограничьте использование процессора и памяти Если вы не хотите оптимизировать память вашей программы или корректировать работ
Ограничьте использование процессора и памяти Если вы не хотите оптимизировать память вашей программы или корректировать работу процессора, то можно просто установить лимиты. К счастью, в Python для этого есть специальная библиотека 📲 Мы в MAX Подписывайтесь на канал 👉@pythonofff

Методов списков list Напоминаю, списки в Python – упорядоченные последовательности элементов различных типов данных. Списки м
Методов списков list Напоминаю, списки в Python – упорядоченные последовательности элементов различных типов данных. Списки можно изменять, например, добавлять новые элементы. 1. list.append(x) – добавляет элемент, переданный в качестве аргумента, в конец списка. Этот метод является самым простым и распространённым в коде. 2. list.insert(i, x) – вставляет элемент в переданную позицию. Первый аргумент означает индекс элемента, перед которым будет добавлено новое значения. Таким образом, list.insert(0, x) вставит элемент в начало списка, а list.insert(len(list), x) эквивалентно записи list.append(x). 3. list.extend(iterable) – расширяет список, добавляя все элементы другой коллекции. 📲 Мы в MAX Подписывайтесь на канал 👉@pythonofff