tgindex

Python академия

описание

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

7 199
подписчиков

Лучшие посты

за три месяца
  • 22 июл.526 просмотров1 реакций4 пересылок

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

  • 20 июл.520 просмотров

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

  • 1 авг.505 просмотров1 реакций5 пересылок

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

  • 31 июл.497 просмотров1 реакций4 пересылок

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

  • 21 июл.496 просмотров2 реакций5 пересылок

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

  • 29 июл.475 просмотров2 реакций6 пересылок

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

  • 30 июл.467 просмотров2 реакций5 пересылок

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

  • 23 июл.466 просмотров1 реакций4 пересылок

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

  • 3 авг.463 просмотров1 реакций5 пересылок

    Pyperclip Модуль pyperclip имеет функции copy() и paste(), которые позволяют отправлять текст в буфер обмена вашего компьютера и получать его оттуда. Таким образом, можно прямо через код копировать вывод программы в буфер обмена вместо того, чтобы делать это вручную. Установить этот модуль можно привычным способом через пакетный менеджер pip. 📲 Мы в MAX Подписывайтесь на канал 👉@pythonofff

  • 4 авг.450 просмотров2 реакций2 пересылок

    Как легко отсортировать объект по нескольким ключам? Перед нами стоит задача отсортировать список машин. Но сделать это нужно не просто по названию бренда или году производства, а сразу по обоим полям. Решить эту задачу можно очень просто с помощью operator.itemgetter(). В результате все бренды сгруппированы и отсортированы по возрасту. 📲 Мы в MAX Подписывайтесь на канал 👉@pythonofff

  • 28 июл.424 просмотров4 пересылок

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

  • 27 июл.412 просмотров1 реакций4 пересылок

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

  • 28 июл.386 просмотров1 реакций6 пересылок

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

  • 6 авг.380 просмотров1 реакций3 пересылок

    Немного про цифры и юникод 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 – не единственные символы, которые считаются цифрами. Python следует правилам Юникода и обрабатывает несколько сотен символов как цифры. Это влияет на такие функции, как int, unicode.isdecimal и даже re.match. Предупрежден – значит вооружен. 📲 Мы в MAX Подписывайтесь на канал 👉@pythonofff

  • 25 июл.367 просмотров1 пересылок

    🚀 Подборка полезных 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 Питер Новости: Санкт-Петербург / СПБ / ДТП

  • 9 авг.357 просмотров4 реакций3 пересылок

    Форматирование строк Привет, в этом посте разберем возможные в Python методы форматирования строк. Все примеры использования можете посмотреть на прикрепленной ниже картинке. Самый древний и уже редко используемый способ – с помощью оператора %. Написание %s и %d зависит от того, что мы туда передаем и что хотим увидеть в итоге, но это уже тема отдельного поста. В Python 2.6 появился метод .format() с немного отличающимся синтаксисом от существующего оператора %. К слову, этот метод активно используется и по сей день, в отличии от его предшественника. Начиная с версии Python 3.6, доступны f-строки – свежий и наиболее производительный способ форматирования строк. 📲 Мы в MAX Подписывайтесь на канал 👉@pythonofff

  • 11 авг.312 просмотров2 реакций4 пересылок

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

  • 12 авг.293 просмотров1 реакций3 пересылок

    Списковые включения. В python можно заменить громоздкие циклы, которые используются для заполнения списков. Самый простой пример использования списковых включений представлен в первом примере. В примере 2 показано как можно добавить немного математики. Вы даже можете использовать свои функции, как в примере 3. 📲 Мы в MAX Подписывайтесь на канал 👉@pythonofff

  • 8 авг.293 просмотров

    🚀 Подборка полезных 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 Питер Новости: Санкт-Петербург / СПБ / ДТП https://max.ru/channel_krasnodar_novosty Краснодар Новости https://max.ru/channel_novosibirsk_novosti Новосибирск https://max.ru/channel_samara_novosti Новости Самары https://max.ru/channel_ekaterinburg_novosti Новости Екатеринбурга https://max.ru/channel_kazan_novosti Новости Казани https://max.ru/channel_omsk_novosti Новости Омска https://max.ru/channel_moskva_24 Москва 24

  • 13 авг.274 просмотров1 реакций4 пересылок

    Нахождение наиболее частых элементов списка Если необходимо найти несколько наиболее часто повторяющихся значений, лучше воспользоваться счетчиком Counter из библиотеки collections. Метод Counter.most_common(x) возвращает x кортежей, в которых первое значение – элемент, а второе – количество его повторений. 📲 Мы в MAX Подписывайтесь на канал 👉@pythonofff