Python академия. Учи Python быстро и легко. По всем вопросам @evgenycarter
Бесплатное обучение IT-профессиям!
Базовые знания и практические задания для новичков.
Учитесь на практике.
Выберите свой путь в IT!
Узнать больше
#реклама 16+
free.skillfactory.ru
О рекламодателе
Получение срезов итераторов
Воспользовавшись методом itertools.islice можно создать объект islice, который представляет собой итератор, выдающий нужные элементы. Однако здесь важно отметить то, что эта конструкция использует все элементы генератора вплоть до начала среза и все элементы в объекте islice.
Подписывайтесь на канал 👉@pythonofff
3 трюка с itertools
Начнем с функции combinations: она позволяет составлять комбинации элементов из итерируемых объектов без повторений. Первый аргумент это сам объект, а второй — длина комбинации.
Для того, чтобы составить комбинацию с повторениями, используют функцию combinations_with_replacement. Делает она абсолютно все то же самое что и предыдущая, с одним исключением – теперь в комбинации могут быть повторы.
Ну и в заключение, рассмотрим функцию compress, применяющую "маску" из второго аргумента функции к первому. То есть, если в маске на этом месте стоит единица, то в исходном массиве элемент остается нетронутым, и наоборот.
Подписывайтесь на канал 👉@pythonofff
Итерируемые объекты
Иногда нужно работать с файлом, который, как заранее известно, начинается с некоторого числа ненужных строк — вроде строк с комментариями. Для того чтобы пропустить эти строки, можно, снова, прибегнуть к возможностям itertools
Подписывайтесь на канал 👉@pythonofff
Курс «Разработчик 1С» от Яндекса.
За 6 месяцев освоите один из самых простых языков программирования и пройдёте стажировку
Зарегистрироваться
#реклама 16+
practicum.yandex.ru
О рекламодателе
Подборка Telegram каналов для программистов
Системное администрирование 📌
/channel/tipsysdmin Типичный Сисадмин (фото железа, было/стало)
/channel/sysadminof Книги для админов, полезные материалы
/channel/i_odmin Все для системного администратора
/channel/i_odmin_book Библиотека Системного Администратора
/channel/i_odmin_chat Чат системных администраторов
/channel/i_DevOps DevOps: Пишем о Docker, Kubernetes и др.
/channel/sysadminoff Новости Линукс Linux
/channel/tikon_1 Новости высоких технологий, науки и техники💡
/channel/mir_teh Мир технологий (Technology World)
/channel/rust_lib Полезный контент по программированию на Rust
/channel/golang_lib Библиотека Go (Golang) разработчика
/channel/itmozg Программисты, дизайнеры, новости из мира IT.
/channel/phis_mat Обучающие видео, книги по Физике и Математике
/channel/php_lib Библиотека PHP программиста 👨🏼💻👩💻
/channel/nodejs_lib Подборки по Node js и все что с ним связано
/channel/ruby_lib Библиотека Ruby программиста
1C разработка 📌
/channel/odin1C_rus Cтатьи, курсы, советы, шаблоны кода 1С
Программирование C++📌
/channel/cpp_lib Библиотека C/C++ разработчика
/channel/cpp_knigi Книги для программистов C/C++
/channel/cpp_geek Учим C/C++ на примерах
Программирование Python 📌
/channel/pythonofff Python академия. Учи Python быстро и легко🐍
/channel/BookPython Библиотека Python разработчика
/channel/python_real Python подборки на русском и английском
/channel/python_360 Книги по Python Rus
Java разработка 📌
/channel/BookJava Библиотека Java разработчика
/channel/java_360 Книги по Java Rus
/channel/java_geek Учим Java на примерах
GitHub Сообщество 📌
/channel/Githublib Интересное из GitHub
Базы данных (Data Base) 📌
/channel/database_info Все про базы данных
Мобильная разработка: iOS, Android 📌
/channel/developer_mobila Мобильная разработка
/channel/kotlin_lib Подборки полезного материала по Kotlin
Фронтенд разработка 📌
/channel/frontend_1 Подборки для frontend разработчиков
/channel/frontend_sovet Frontend советы, примеры и практика!
/channel/React_lib Подборки по React js и все что с ним связано
Разработка игр 📌
/channel/game_devv Все о разработке игр
Вакансии 📌
/channel/sysadmin_rabota Системный Администратор
/channel/progjob Вакансии в IT
Чат программистов📌
/channel/developers_ru
Библиотеки 📌
/channel/book_for_dev Книги для программистов Rus
/channel/programmist_of Книги по программированию
/channel/proglb Библиотека программиста
/channel/bfbook Книги для программистов
/channel/books_reserv Книги для программистов
БигДата, машинное обучение 📌
/channel/bigdata_1 Data Science, Big Data, Machine Learning, Deep Learning
Программирование 📌
/channel/bookflow Лекции, видеоуроки, доклады с IT конференций
/channel/coddy_academy Полезные советы по программированию
QA, тестирование 📌
/channel/testlab_qa Библиотека тестировщика
Шутки программистов 📌
/channel/itumor Шутки программистов
Защита, взлом, безопасность 📌
/channel/thehaking Канал о кибербезопасности
/channel/xakep_1 Статьи из "Хакера"
Книги, статьи для дизайнеров 📌
/channel/ux_web Статьи, книги для дизайнеров
Английский 📌
/channel/UchuEnglish Английский с нуля
Математика 📌
/channel/Pomatematike Канал по математике
Excel лайфхак📌
/channel/Excel_lifehack
Получите диплом от НИТУ МИСИС в веб-разработке
Яндекс Практикум и НИТУ МИСИС приглашают на онлайн-программу «Веб-разработчик»
Полноценная учёба в онлайн-формате
Зачёты, сессии, лекции и семинары с гибким графиком.
На платформе Практикума
Гибкая теория, автоматическая проверка заданий и встроенная YandexGPT.
Преподаватели НИТУ МИСИС и наставники Яндекс Практикума
Они будут проводить занятия и учить вас применять теорию на практике.
Студенческий, льготы и диплом гособразца
У вас будут все преимущества студента-очника. Доступ к инфраструктуре вуза — кампусам, библиотекам и мероприятиям.
Оплатить учёбу можно разными способами: всю сумму сразу, по семестрам или с помощью госкредита — тогда ежемесячный платёж составит от 500 ₽, а государство погасит часть кредита за вас.
Подать заявку
#реклама 16+
practicum.yandex.ru
О рекламодателе
Сортировка списков по ключу
У списков есть метод sort(), который сортирует элементы. Также есть аргумент reverse, с помощью которого можно отсортировать в обратном порядке при значении True.
Но еще есть аргумент key, отвечающий за критерий сортировки. Он принимает функцию, которая применяется к каждому элементу. Возвращаемый результат и есть критерий, по которому произойдет сортировка.
В коде на картинке у нас есть список из словарей, которые содержать описания машин. И в качестве мы отсортировали список по годам их выпуска, то есть по ключу 'year'.
Подписывайтесь на канал 👉@pythonofff
emoji
$ pip install emoji
Подписывайтесь на канал 👉@pythonofff
Ответ на 1 вопрос и подписка на Яндекс Музыку ваша
✨Ответьте на 1 вопрос и получите в подарок доступ к Яндекс Музыке до конца лета бесплатно!✨
Слушайте любимые треки и подкасты в HQ качестве без рекламы.
Для 4 аккаунтов и 10 устройств. Кинопоиск тоже в подписке!
Попробуйте!👍
Попробовать
#реклама 18+
mrqz.me
О рекламодателе
Словари вместо switch-case
В Python до сих пор нет switch-case конструкций, но иногда встречается одно хитрое решение — использовать словарь, где значениями будут функции.
Для примера напишем словарь, который будет использован для математических операцией. Ключами будут операторы в виде строк, значениями — соответствующие функции.
В этом примере я использовал lambda-функции для упрощения кода.
Но вместо анонимных функций можно подставить и обычные, предварительно объявив их.
Подписывайтесь на канал 👉@pythonofff
Просмотр содержимого внешнего файла
Часто вам может понадобиться скопировать в свой код несколько строк кода из внешнего файла. Команда %pycat избавит вас от долгой процедуры извлечения определенных данных из файла и их копирования в другой файл. Она позволяет просматривать содержимое любого файла в любом каталоге.
Подписывайтесь на канал 👉@pythonofff
Магистратура Data Science в Центральном университете
Поступите на магистратуру в Центральный университет.
За два года вы станете квалифицированным специалистом. Много практики и полезная теория. Учитесь на реальных бизнес-задачах и кейсах ведущих ИТ-компаний. Стажировки в течение первого года обучения и трудоустройство.
Выберите свою специализацию: ML-инженер, аналитик данных или продакт-менеджер. Старт программы 15.09. Успейте подать заявку!
Узнать больше
#реклама
apply.centraluniversity.ru
О рекламодателе
Параметры *args и **kwargs
Все хоть раз видели такую запись, и сейчас мы узнаем, что это за символы. Сообщу сразу, что args и kwargs – общепринятые имена переменных, а разбирать мы будем звездочки перед ними.
В примере функция принимает обязательный аргумент value, а остальных аргументов она как бы не ожидает. В таком случае *args упаковывает все не именованные аргументы в кортеж, а **kwargs – все именованные в словарь.
Конструкция с *args, **kwargs получается достаточно полезной, если мы не знаем, кто и в каких целях будет использовать нашу функцию. То есть, мы можем запихнуть в аргументы практически что угодно.
Подписывайтесь на канал 👉@pythonofff
Данные пользователя на главной странице | is_authenticated
Обновим шаблон base.html таким образом, чтобы пользователи могли увидеть сообщение вне зависимости от того, прошли они аутентификацию или нет. Для этого будем использовать атрибут is_authenticated.
Теперь нужно просто разместить следующий код в нужном месте нашего шаблона. Обновим файл base.html, вставив новый код под закрывающимся тегом </header>.
Подписывайтесь на канал 👉@pythonofff
Определение литеральных типов
Когда нам может понадобится определить из полученной строки литеральный тип (строки, числа, списки, кортежи, словари, логические значения и None), мы можем воспользоваться функцией literal_eval() из модуля ast.
Данная функция поможет безопасно определить литеральный тип, а в случае если был передан не литерал, то выбросит исключение. Это можно использовать для оценки выражений из внешних источников при парсинге файлов, либо пользовательского ввода.
Подписывайтесь на канал 👉@pythonofff
Ведем набор учеников 3-10 классов на новый учебный год!
Московская школа программистов - это не курсы, а школа с государственной лицензией, которая обучает детей IT с 2001 года. Мы сотрудничаем с МФТИ, НИУ ВШЭ, Яндекс и Физтехпарк
Что получит ребенок, в результате обучения:
- Участие и победы в олимпиадах всероссийского и международного уровня
- Поступление в престижные технические вузы России и работу в известных IT-компаниях: Apple, Google, Yandex, Nvidia и других
- Практику на реальных IT-проектах
- Усидчивость, целеустремленность и умение работать в команде
- Сдача ЕГЭ/ОГЭ на высокие баллы
Сейчас идет набор в виртуальный класс. В этом формате, дети в небольших группах обучаются с преподавателем онлайн в реальном времени.
Эффективно как очно.
Позаботьтесь о том, чтобы ребенок стал востребованным IT-специалистом!
Зарегистрироваться
#реклама
vc.informatics.ru
О рекламодателе
Получи грант на обучение в Центральном университете
Получи несгораемый грант до 2 800 000 ₽ на учебу в бакалавриате Центрального университета. Гранты покрывают от 25 до 100% стоимости обучения. Сумма гранта не уменьшается, а может увеличиться за дополнительные достижения и успехи в учебе
Мы подготовили два этапа испытаний: тестирование и бизнес-игру. Количество попыток не ограничено. Участвуй в отборе!
Для выпускников 11-х классов и колледжей.
Подать заявку
#реклама
apply.centraluniversity.ru
О рекламодателе
Сохранение документации функции при декорировании
У декораторов существует ряд проблем, одна из которых заключается в том, что, после оборачивания функции в декоратор, на выходе мы не можем получить информацию атрибутов __name__ и __doc__, нужные для документации функции.
Вместо значений данных атрибутов исходной функции мы будем получать значения функции обертки.
Для решения этой проблемы можно воспользоваться декоратором functools.wraps, применяя его к обертке нашего декоратора. В результате имя и сигнатура функции, передаваемой в декоратор, будут копироваться в обертку.
Подписывайтесь на канал 👉@pythonofff
F-строки
Сложно делать что-либо без строк в Python и чтобы сохранить адекватность, вам нужно иметь структурированный способ работы со строками. Большая часть людей, работающих с Python, предпочитают метод format python.
Подписывайтесь на канал 👉@pythonofff
Слоты в классах
По умолчанию в Python в классах используется словарь __dict__ для хранения атрибутов, который создается по умолчанию при создании экземпляра класса. Данная особенность позволяет динамически в рантайме добавлять атрибуты, но от сюда появляются соответствующие проблемы с производительностью.
В случаях, когда мы сразу точно знаем все атрибуты, используемые в классе, мы можем воспользоваться атрибутом __slots__, который позволяет задать ограниченный список аргументов для класса. В этом случае словарь __dict__ не будет создаваться, что позволит сэкономить память и поднять производительность.
Подписывайтесь на канал 👉@pythonofff
Перечисления enum
Python 3 поддерживает простой способ написания перечислений через класс Enum. Этот класс можно назвать удобным способом инкапсуляции списка констант, чтобы они не были разбросаны по всему коду без структуры.
Подписывайтесь на канал 👉@pythonofff
Выиграйте подписку на Яндекс Музыку
✨Ответьте на 1 вопрос и получите в подарок доступ к Яндекс Музыке до конца лета бесплатно!✨
Слушайте любимые треки и подкасты в HQ качестве без рекламы.
Для 4 аккаунтов и 10 устройств. Кинопоиск тоже в подписке!
Попробуйте!👍
Попробовать
#реклама 18+
music.yandex.ru
О рекламодателе
Отлавливаем баги с assert
При выполнении инструкции assert с логическим выражением, результат которого равен True, ничего не произойдет.
Но если попробовать выполнить инструкцию assert с логическим выражением, которое равно False, то будет сгенерировано исключение AssertionError.
Исключения AssertionError предназначены скорее для отладки. При написании программ на этапе разработки мы можем видеть, что делаем что-то не так (например, передали в метод некорректное значение).
Также не нужно, к примеру, обрабатывать пользовательский ввод и пытаться обработать исключение AssertionError блоком try-except.
Если в вашем коде будет очень много assert'ов, то это затронет и производительность программы.
Подписывайтесь на канал 👉@pythonofff
Копирование содержимого во внешний файл
В большинстве случаев возникает необходимость скопировать содержимое вашей ячейки в скрипт python или текстовый файл непосредственно из вашего блокнота Jupyter.
Вместо того чтобы копировать все и создавать новый файл, вы можете напрямую экспортировать свои данные, добавив команду writefile в ячейку перед кодом.
Подписывайтесь на канал 👉@pythonofff
Обучаем Java-разработчиков оплата после выхода на работу
В Kata Academy можно выучиться на Java-разработчика бесплатно, а заплатить уже после трудоустройства по специальности из фактической зарплаты.
Если задуматься, то все в выигрыше:
— ты получаешь работу в Москве или Санкт-Петербурге с хорошей зарплатой, мы получаем процент за инвестиции в тебя;
— в наших интересах научить тебя так, чтобы твоя зарплата была как можно выше;
— мы прокачиваем твои навыки еще 2 года после курса: проводим выездные мероприятия и мастер-классы — и доходы наших выпускников растут;
— мы не зависим от банков и их рассрочек — кризис не повлиял на доступность курсов.
Чтобы попасть на курс, нужно выполнить небольшое тестовое задание. Переходи по ссылке и оставляй заявку!
Узнать больше
#реклама 16+
kata.academy
О рекламодателе
Что такое lambda-функции
Анонимные функции — крайне полезный аспект языка, которым либо пренебрегают, либо чрезмерно пользуются. Начинающим они могут показаться сложными, но это совсем не так.
Структура очень простая — lambda <arguments>: <expression> . Сначала пишете ключевое слово lambda, далее аргументы через запятую, двоеточие и какое-то выражение, результат которого автоматически вернется.
Такие функции чаще всего используются, когда они больше нигде не понадобятся, то есть определять полноценную функцию нет смысла. Типичные примеры использования — map и filter.
Подписывайтесь на канал 👉@pythonofff
Список всех переменных
Эта команда выдает список всех глобальных переменных, используемых в вашем блокноте.
Если мы используем %who, она перечислит все 3 переменные, которые мы задали.
Подписывайтесь на канал 👉@pythonofff
Прокачаем ваш frontend скилл с junior до middle
Научим писать код, который не стыдно показать
Первые 7 дней бесплатно. Попробуй!
Узнать больше
#реклама 16+
ykul.ru
О рекламодателе
Динамическая замена class
Многие знают, что с помощью type можно получить тип объекта. Но не все так просто, по сути type служит динамической заменой инструкции class и позволяет создавать новые объекты типа во время исполнения.
Первый принимаемый аргумент является именем класса и становится атрибутом __name__; второй аргумент является кортежем с перечисленными базовыми типами и становится атрибутом __base__; словарь будет являться телом класса и станет атрибутом __dict__.
Подписывайтесь на канал 👉@pythonofff