Академия Яндекса продолжает набор джунов и мидлов с опытом в разработке в Летние школы. В этом году они пройдут и в Казахстане. В Школе мобильной разработки есть отдельный трек по Python.
Обучение в школе длится три месяца. Первый этап (онлайн) — лекции и практическая работа над проектом. Второй этап (4 недели) — работа в командах над настоящим проектом от Яндекса (проходит в офисах компании в Алматы, Белграде или Москве).
Обучение бесплатное. Расходы на транспорт и проживание Яндекс берет на себя. Чтобы попасть в Школу, нужно отправить заявку и пройти конкурсный отбор на основе тестового задания. Обучение по Python будет проходить с 6 июня по 27 августа, а тестовое нужно отправить до 27 апреля.
Обучение в школе длится три месяца. Первый этап (онлайн) — лекции и практическая работа над проектом. Второй этап (4 недели) — работа в командах над настоящим проектом от Яндекса (проходит в офисах компании в Алматы, Белграде или Москве).
Обучение бесплатное. Расходы на транспорт и проживание Яндекс берет на себя. Чтобы попасть в Школу, нужно отправить заявку и пройти конкурсный отбор на основе тестового задания. Обучение по Python будет проходить с 6 июня по 27 августа, а тестовое нужно отправить до 27 апреля.
Используйте генераторы (generators) для создания ленивых (lazy) последовательностей
Генераторы - это способ создания последовательности значений, которые не будут созданы, пока вы не запросите их. Они особенно полезны, когда вам нужно обработать большой объем данных и вы не хотите загружать их все в память одновременно.
Генераторы - это способ создания последовательности значений, которые не будут созданы, пока вы не запросите их. Они особенно полезны, когда вам нужно обработать большой объем данных и вы не хотите загружать их все в память одновременно.
Используйте декораторы (decorators) для изменения поведения функций
Декораторы - это функции, которые принимают другую функцию в качестве аргумента и возвращают новую функцию, которая изменяет поведение оригинальной функции. Они могут использоваться для добавления дополнительной функциональности к существующим функциям без необходимости изменения их кода.
Декораторы - это функции, которые принимают другую функцию в качестве аргумента и возвращают новую функцию, которая изменяет поведение оригинальной функции. Они могут использоваться для добавления дополнительной функциональности к существующим функциям без необходимости изменения их кода.
Используйте контекстные менеджеры (context managers) для управления ресурсами
Контекстные менеджеры - это способ управления ресурсами (например, файлами или сетевыми соединениями) в Python. Они гарантируют, что ресурсы будут освобождены после завершения операции, и могут использоваться для обеспечения безопасной работы с ресурсами в многопоточных приложениях.
Контекстные менеджеры - это способ управления ресурсами (например, файлами или сетевыми соединениями) в Python. Они гарантируют, что ресурсы будут освобождены после завершения операции, и могут использоваться для обеспечения безопасной работы с ресурсами в многопоточных приложениях.
Используйте декораторы для модификации функциональности функций
В этом примере мы определяем декоратор my_decorator, который добавляет дополнительный код до и после выполнения функции. Затем мы применяем этот декоратор к функции my_function с помощью синтаксиса декораторов (@my_decorator). При вызове my_function будет вызван декоратор my_decorator, который изменит ее поведение.
В этом примере мы определяем декоратор my_decorator, который добавляет дополнительный код до и после выполнения функции. Затем мы применяем этот декоратор к функции my_function с помощью синтаксиса декораторов (@my_decorator). При вызове my_function будет вызван декоратор my_decorator, который изменит ее поведение.
Используйте генераторы (generators) для создания итераторов
В этом примере мы определяем генератор my_range, который создает итератор, возвращающий числа от start до stop с заданным шагом step. Вместо того чтобы создавать список чисел и возвращать его целиком, генератор возвращает числа по одному при каждом вызове функции next(). Это может быть полезно при работе с большими наборами данных, когда список чисел может занимать много памяти.
В этом примере мы определяем генератор my_range, который создает итератор, возвращающий числа от start до stop с заданным шагом step. Вместо того чтобы создавать список чисел и возвращать его целиком, генератор возвращает числа по одному при каждом вызове функции next(). Это может быть полезно при работе с большими наборами данных, когда список чисел может занимать много памяти.
Многие недооценивают данный тип, а зря. К примеру, если вам нужно найти количество одинаковых слов, то множества с легкостью вам помогут.
Похожи на списки, но на неупорядоченные. Они больше весят, но намного быстрее. В небольших проектах оправдано такое использование: множество id админов/пользователей (в зависимости от размера ОЗУ), когда требуется только проверить есть ли id в списке. Через стандартный список это займет O(n) или если он отсортирован O(log n) , в то время как у множеств это всегда O(1).
Зная преимущества вы всегда можете выбрать наиболее предпочтительный вариант в той или иной ситуации.
Похожи на списки, но на неупорядоченные. Они больше весят, но намного быстрее. В небольших проектах оправдано такое использование: множество id админов/пользователей (в зависимости от размера ОЗУ), когда требуется только проверить есть ли id в списке. Через стандартный список это займет O(n) или если он отсортирован O(log n) , в то время как у множеств это всегда O(1).
Зная преимущества вы всегда можете выбрать наиболее предпочтительный вариант в той или иной ситуации.
Используйте генераторы (generators), когда не нужно хранить все значения в памяти
Генератор - это функция, которая возвращает итерируемый объект (например, список) вместо того, чтобы возвращать все значения сразу. Это позволяет эффективно использовать память и обрабатывать большие объемы данных. В Python генераторы создаются с помощью ключевого слова yield.
В этом примере мы создаем генератор square_numbers, который возвращает квадраты чисел из переданного списка. Мы используем цикл for для перебора значений, возвращаемых генератором, и выводим их на экран. Заметьте, что генератор не создает список квадратов заранее, а генерирует значения на лету.
Генератор - это функция, которая возвращает итерируемый объект (например, список) вместо того, чтобы возвращать все значения сразу. Это позволяет эффективно использовать память и обрабатывать большие объемы данных. В Python генераторы создаются с помощью ключевого слова yield.
В этом примере мы создаем генератор square_numbers, который возвращает квадраты чисел из переданного списка. Мы используем цикл for для перебора значений, возвращаемых генератором, и выводим их на экран. Заметьте, что генератор не создает список квадратов заранее, а генерирует значения на лету.
Используйте генераторы (generators) для создания итерируемых объектов с помощью функций
В этом примере мы определяем генератор fibonacci, который возвращает бесконечную последовательность чисел Фибоначчи. Ключевое слово yield используется для возврата значения из функции, при этом сохраняя состояние функции для следующего вызова. Затем мы используем цикл for и функцию enumerate, чтобы перебрать первые 10 чисел Фибоначчи из генератора.
В этом примере мы определяем генератор fibonacci, который возвращает бесконечную последовательность чисел Фибоначчи. Ключевое слово yield используется для возврата значения из функции, при этом сохраняя состояние функции для следующего вызова. Затем мы используем цикл for и функцию enumerate, чтобы перебрать первые 10 чисел Фибоначчи из генератора.
Используйте декораторы для расширения функциональности функций
В этом примере мы определяем функцию-декоратор my_decorator, которая принимает функцию func в качестве аргумента и возвращает внутреннюю функцию wrapper. Функция wrapper вызывает функцию func, выполняя дополнительный код до и после вызова func. Затем мы используем декоратор my_decorator перед определением функции my_function, чтобы расширить ее функциональность.
В этом примере мы определяем функцию-декоратор my_decorator, которая принимает функцию func в качестве аргумента и возвращает внутреннюю функцию wrapper. Функция wrapper вызывает функцию func, выполняя дополнительный код до и после вызова func. Затем мы используем декоратор my_decorator перед определением функции my_function, чтобы расширить ее функциональность.
Как анализировать массивы данных, и находить закономерности в цифрах? И как это может помочь бизнесу развиваться и находить новые перспективы? Об этом вы узнаете на курсе от Skillbox «Аналитик данных с нуля».
Бесплатный доступ к первым 3 модулям!
Курс поможет систематизировать разрозненные знания и применить их на практике. Даже если у вас нулевая подготовка! Всё доступно, доходчиво, на реальных кейсах и примерах. Контроль полученных знаний на каждом этапе и общение с коллегами и наставником.
Для первых 20 участников мы подготовили приятную скидку на весь курс! Также есть возможность оплатить обучение в рассрочку.
В подарок вы получаете курс по созданию эффектных презентаций PowerPoint!
А также помощь в трудоустройстве от Центра карьеры Skillbox.
Регистрация по ссылке: https://epic.st/ihe9i
Бесплатный доступ к первым 3 модулям!
Курс поможет систематизировать разрозненные знания и применить их на практике. Даже если у вас нулевая подготовка! Всё доступно, доходчиво, на реальных кейсах и примерах. Контроль полученных знаний на каждом этапе и общение с коллегами и наставником.
Для первых 20 участников мы подготовили приятную скидку на весь курс! Также есть возможность оплатить обучение в рассрочку.
В подарок вы получаете курс по созданию эффектных презентаций PowerPoint!
А также помощь в трудоустройстве от Центра карьеры Skillbox.
Регистрация по ссылке: https://epic.st/ihe9i
Используйте генераторы (generators) для создания итераторов, которые можно перебирать только один раз
В этом примере мы создаем генератор my_generator, который возвращает квадраты чисел от 0 до n-1. Функция yield используется для возврата следующего элемента генератора, а не прекращения выполнения функции, как это происходит с return. Затем мы используем цикл for для перебора элементов генератора squares.
В этом примере мы создаем генератор my_generator, который возвращает квадраты чисел от 0 до n-1. Функция yield используется для возврата следующего элемента генератора, а не прекращения выполнения функции, как это происходит с return. Затем мы используем цикл for для перебора элементов генератора squares.
Используйте модуль collections для работы со специальными типами данных, такими как defaultdict и Counter
В этом примере мы используем модуль collections для создания словаря word_counts, который хранит количество вхождений каждого слова в списке words. Мы также используем класс Counter для создания объекта letter_counts, который хранит количество вхождений каждого символа в строке 'banana'.
В этом примере мы используем модуль collections для создания словаря word_counts, который хранит количество вхождений каждого слова в списке words. Мы также используем класс Counter для создания объекта letter_counts, который хранит количество вхождений каждого символа в строке 'banana'.
Вам нравится находить баги и искать ошибки в коде? Попробуйте себя в разных направлениях тестирования на бесплатном онлайн-интенсиве Skillbox. Подключайтесь к прямому эфиру с 17 по 19 апреля в 15:00 по московскому времени: 👉 https://epic.st/Iehs_S
Что будет:
📎 знакомство с профессией;
📎 изучение основ и ключевых инструментов тестирования;
📎 проведение первых тестов.
Если вы начинающий тестировщик:
📍 структурируете знания, изучите правила юзабилити и стандарты тестирования в крупных IT-компаниях;
📍 научитесь проверять сервисы на баги через API с помощью инструмента Postman.
Спикер интенсива — старший специалист по тестированию, организатор тест-сессий, митапов по тестированию и мастер-классов, участник конференций SQA-days, TechTrain и CodeFest Дмитрий Якин.
🎁 Участвуйте и прокачайте знания. Получите в подарок электронную книгу издательства МИФ и сертификат на скидку 10 000 рублей на любой курс Skillbox.
Что будет:
📎 знакомство с профессией;
📎 изучение основ и ключевых инструментов тестирования;
📎 проведение первых тестов.
Если вы начинающий тестировщик:
📍 структурируете знания, изучите правила юзабилити и стандарты тестирования в крупных IT-компаниях;
📍 научитесь проверять сервисы на баги через API с помощью инструмента Postman.
Спикер интенсива — старший специалист по тестированию, организатор тест-сессий, митапов по тестированию и мастер-классов, участник конференций SQA-days, TechTrain и CodeFest Дмитрий Якин.
🎁 Участвуйте и прокачайте знания. Получите в подарок электронную книгу издательства МИФ и сертификат на скидку 10 000 рублей на любой курс Skillbox.
Используйте модуль functools для функционального программирования
Модуль functools содержит несколько функций для функционального программирования, таких как reduce, partial, cached_property и другие. Например, reduce применяет функцию к элементам последовательности, последовательно сокращая ее до одного значения, partial позволяет частично применять аргументы к функции, возвращая новую функцию, которая ожидает оставшиеся аргументы.
Модуль functools содержит несколько функций для функционального программирования, таких как reduce, partial, cached_property и другие. Например, reduce применяет функцию к элементам последовательности, последовательно сокращая ее до одного значения, partial позволяет частично применять аргументы к функции, возвращая новую функцию, которая ожидает оставшиеся аргументы.
Используйте модуль asyncio для асинхронного программирования
Модуль asyncio предоставляет инструменты для асинхронного программирования в Python, такие как корутины, событийный цикл и другие. Асинхронное программирование позволяет выполнять несколько задач параллельно, не блокируя основной поток выполнения. Например, с помощью asyncio можно создать асинхронные серверы и клиенты, выполнять HTTP-запросы, обрабатывать сигналы и т.д.
Модуль asyncio предоставляет инструменты для асинхронного программирования в Python, такие как корутины, событийный цикл и другие. Асинхронное программирование позволяет выполнять несколько задач параллельно, не блокируя основной поток выполнения. Например, с помощью asyncio можно создать асинхронные серверы и клиенты, выполнять HTTP-запросы, обрабатывать сигналы и т.д.
Используйте модуль multiprocessing для многопроцессорного программирования
Модуль multiprocessing предоставляет инструменты для многопроцессорного программирования в Python, такие как процессы, очереди и т.д. Многопроцессорное программирование позволяет распараллеливать выполнение задач на несколько ядер процессора, ускоряя работу кода.
Модуль multiprocessing предоставляет инструменты для многопроцессорного программирования в Python, такие как процессы, очереди и т.д. Многопроцессорное программирование позволяет распараллеливать выполнение задач на несколько ядер процессора, ускоряя работу кода.
Используйте модуль contextlib для управления контекстом
В этом примере мы используем модуль contextlib для создания контекстного менеджера. Контекстный менеджер - это объект, который используется для управления контекстом выполнения определенного участка кода. Для создания контекстного менеджера мы определяем функцию my_context, которая возвращает генератор, использующий ключевое слово yield. Мы вызываем наш контекстный менеджер с помощью определенного ключевого слова.
В этом примере мы используем модуль contextlib для создания контекстного менеджера. Контекстный менеджер - это объект, который используется для управления контекстом выполнения определенного участка кода. Для создания контекстного менеджера мы определяем функцию my_context, которая возвращает генератор, использующий ключевое слово yield. Мы вызываем наш контекстный менеджер с помощью определенного ключевого слова.
Используйте встроенные функции и модули для ускорения разработки и упрощения кода
Python предоставляет множество встроенных функций и модулей, которые упрощают работу с файлами, базами данных, сетевыми протоколами и другими задачами. Например, для чтения и записи файлов можно использовать функции open, read и write, а для работы с базами данных можно использовать модуль sqlite3.
Python предоставляет множество встроенных функций и модулей, которые упрощают работу с файлами, базами данных, сетевыми протоколами и другими задачами. Например, для чтения и записи файлов можно использовать функции open, read и write, а для работы с базами данных можно использовать модуль sqlite3.
Используйте функции высшего порядка для создания более красивого и гибкого кода
Функции высшего порядка - это функции, которые принимают другие функции в качестве аргументов и/или возвращают другие функции в качестве результата. Такие функции позволяют создавать более красивый и гибкий код, который легко расширять и изменять. Например, можно создать функцию, которая принимает другую функцию в качестве аргумента и применяет ее ко всем элементам списка.
Функции высшего порядка - это функции, которые принимают другие функции в качестве аргументов и/или возвращают другие функции в качестве результата. Такие функции позволяют создавать более красивый и гибкий код, который легко расширять и изменять. Например, можно создать функцию, которая принимает другую функцию в качестве аргумента и применяет ее ко всем элементам списка.