Генератор списка с одним и несколькими условиями if и else
Давайте посмотрим, как мы можем добавить else после if в генератор списка. Напишем простой генератор списка, который будет сохранять в список e все значения lst, большие 4. Если же какое-то значение меньше 4, вместо него будет сохранена строка less than 4.
Давайте посмотрим, как мы можем добавить else после if в генератор списка. Напишем простой генератор списка, который будет сохранять в список e все значения lst, большие 4. Если же какое-то значение меньше 4, вместо него будет сохранена строка less than 4.
Хотите начать карьеру IT-разработчика?
Для старта отлично подойдёт универсальный язык С++ 😉 На нём пишут игры и бизнес-приложения, серверы для сетевых служб, драйверы устройств и многое другое. Изучите перспективный язык программирования на бесплатном онлайн-интенсиве и создайте сервер для чатов, рассчитанный на высокую нагрузку ⚡️
Регистрируйтесь по ссылке: https://clc.to/2PxHZQ
Участие бесплатное! ☝️
✔️ Изучите основы C++ и научитесь работать в среде разработки.
✔️ Разберётесь в применении стандартной библиотеки языка.
✔️ Поймёте, как работают сетевые соединения.
✔️ Узнаете, как собирать код в финальный исполняемый файл.
✔️ Попрактикуетесь в организации многопоточного сервера.
🎁 За регистрацию вы получите чек-лист полезных материалов для разработчика на C++. После интенсива подарим участникам электронную книгу Пола Доэрти и Джеймса Уилсона «Человек + машина» издательства МИФ. Подключайтесь к прямым эфирам и используйте возможность получить сертификат на 10 тысяч рублей на любой курс Skillbox.
Ждём вас 26–28 мая в 21:00 по московскому времени! Успейте зарегистрироваться 😉
Для старта отлично подойдёт универсальный язык С++ 😉 На нём пишут игры и бизнес-приложения, серверы для сетевых служб, драйверы устройств и многое другое. Изучите перспективный язык программирования на бесплатном онлайн-интенсиве и создайте сервер для чатов, рассчитанный на высокую нагрузку ⚡️
Регистрируйтесь по ссылке: https://clc.to/2PxHZQ
Участие бесплатное! ☝️
✔️ Изучите основы C++ и научитесь работать в среде разработки.
✔️ Разберётесь в применении стандартной библиотеки языка.
✔️ Поймёте, как работают сетевые соединения.
✔️ Узнаете, как собирать код в финальный исполняемый файл.
✔️ Попрактикуетесь в организации многопоточного сервера.
🎁 За регистрацию вы получите чек-лист полезных материалов для разработчика на C++. После интенсива подарим участникам электронную книгу Пола Доэрти и Джеймса Уилсона «Человек + машина» издательства МИФ. Подключайтесь к прямым эфирам и используйте возможность получить сертификат на 10 тысяч рублей на любой курс Skillbox.
Ждём вас 26–28 мая в 21:00 по московскому времени! Успейте зарегистрироваться 😉
Как отформатировать строку «по-старому»: print ‘Hello %s’ % name
Этот подход чаще использовался в Python 2, когда язык был еще молод и развивался. Его легко понять опытным разработчикам, имеющим опыт программирования на языке C.
Для форматирования строки этим методом мы определяем плейсхолдер с указанием типа данных и аргументом (или аргументами) в конце предложения. Подобный метод используется в языке C (да и в других языках тоже).
Этот подход чаще использовался в Python 2, когда язык был еще молод и развивался. Его легко понять опытным разработчикам, имеющим опыт программирования на языке C.
Для форматирования строки этим методом мы определяем плейсхолдер с указанием типа данных и аргументом (или аргументами) в конце предложения. Подобный метод используется в языке C (да и в других языках тоже).
Сделайте первые шаги в Data Science всего за 3 дня! Попробуйте свои силы на бесплатном интенсиве Skillbox.
Перейдите по ссылке, заполните форму и узнайте все подробности: 🔜 https://clc.to/dt46ww.
Что вас ждёт:
✔️ введение в анализ данных и знакомство с основными инструментами;
✔️ погружение в машинное обучение;
✔️ простое объяснение сложной математики в Data Science;
✔️ знакомство с ML и нейросетями;
✔️ «обогащение» данных с помощью Feature Engineering;
✔️ исследование GridSearch и кросс-валидации.
💡 Убедитесь, что вы тоже можете стать специалистом в области машинного обучения!
🎁Участвуйте, задавайте вопросы и получите сертификат на 10 тысяч рублей на любой курс Skillbox. А всем, кто дойдёт до конца интенсива, подарим электронную книгу Пола Доэрти и Джеймса Уилсона «Человек + машина» издательства МИФ.
Используйте возможность! Присоединяйтесь к трансляции 30 мая в 21:00 по московскому времени.
Перейдите по ссылке, заполните форму и узнайте все подробности: 🔜 https://clc.to/dt46ww.
Что вас ждёт:
✔️ введение в анализ данных и знакомство с основными инструментами;
✔️ погружение в машинное обучение;
✔️ простое объяснение сложной математики в Data Science;
✔️ знакомство с ML и нейросетями;
✔️ «обогащение» данных с помощью Feature Engineering;
✔️ исследование GridSearch и кросс-валидации.
💡 Убедитесь, что вы тоже можете стать специалистом в области машинного обучения!
🎁Участвуйте, задавайте вопросы и получите сертификат на 10 тысяч рублей на любой курс Skillbox. А всем, кто дойдёт до конца интенсива, подарим электронную книгу Пола Доэрти и Джеймса Уилсона «Человек + машина» издательства МИФ.
Используйте возможность! Присоединяйтесь к трансляции 30 мая в 21:00 по московскому времени.
Сохраняем параметры слайсинга для последующего использования
Если нам необходимо выполнять слайсинг несколько раз в одной программе, было бы эффективно заключить нужные параметры в переменную. Таким образом мы сможем уменьшить количество «хардкода» («принудительное» присвоение переменной какого- либо значения, вместо того чтобы присваивать его динамически, в зависимости от ситуации).
Если нам необходимо выполнять слайсинг несколько раз в одной программе, было бы эффективно заключить нужные параметры в переменную. Таким образом мы сможем уменьшить количество «хардкода» («принудительное» присвоение переменной какого- либо значения, вместо того чтобы присваивать его динамически, в зависимости от ситуации).
Лямбда-выражения
Пару недель назад мы получили вопрос от читателя, который и сподвиг нас на написание данной статьи. Вопрос был такой: «Почему объект типа x = map(lambda x: x * 2, [1 ,2, 3, 4, 5]) совсем не занимает места, а вот после применения функции list(x) к данному объекту в памяти оказываются все значения этого выражения?»
Мы надеемся, что на данный момент вы уже понимаете, что тут происходит. Объект на выходе функции map также ленивый и может быть проитерирован. Вычисление x * 2 выполняется только для одного элемента в каждом цикле. Если вы примените функцию list(x), то вычислите сразу все элементы списка. Таким образом, если вы хотите итерировать объект map, функцию list() применять не нужно.
Пару недель назад мы получили вопрос от читателя, который и сподвиг нас на написание данной статьи. Вопрос был такой: «Почему объект типа x = map(lambda x: x * 2, [1 ,2, 3, 4, 5]) совсем не занимает места, а вот после применения функции list(x) к данному объекту в памяти оказываются все значения этого выражения?»
Мы надеемся, что на данный момент вы уже понимаете, что тут происходит. Объект на выходе функции map также ленивый и может быть проитерирован. Вычисление x * 2 выполняется только для одного элемента в каждом цикле. Если вы примените функцию list(x), то вычислите сразу все элементы списка. Таким образом, если вы хотите итерировать объект map, функцию list() применять не нужно.
Сомневаешься в решении? Регистрируйся на бесплатный курс по программированию от GeekBrains, научись работать с алгоритмами за 3 занятия и узнай решение задачи:
https://clc.to/Ekkjyg
Бонус: до 31 мая тебе бонусом откроют доступ на воркшоп по Python.
Для тебя это будет хороший старт. После прохождения курса ты сможешь:
– Понять, насколько серьезно ты хочешь заниматься программированием, или выбрать другую специальность.
– Лучше понять, как выстроить свое обучение и что действительно необходимо знать в этой сфере.
– Более осознанно и грамотно самостоятельно изучать материалы в интернете.
– Получить реальные практические навыки программиста.
Всё это в бесплатном курсе «Основы программирования». GeekBrains открывает доступ к платным программам, сегодня это абсолютно бесплатно. Забери свое место на курсе:
https://clc.to/Ekkjyg
https://clc.to/Ekkjyg
Бонус: до 31 мая тебе бонусом откроют доступ на воркшоп по Python.
Для тебя это будет хороший старт. После прохождения курса ты сможешь:
– Понять, насколько серьезно ты хочешь заниматься программированием, или выбрать другую специальность.
– Лучше понять, как выстроить свое обучение и что действительно необходимо знать в этой сфере.
– Более осознанно и грамотно самостоятельно изучать материалы в интернете.
– Получить реальные практические навыки программиста.
Всё это в бесплатном курсе «Основы программирования». GeekBrains открывает доступ к платным программам, сегодня это абсолютно бесплатно. Забери свое место на курсе:
https://clc.to/Ekkjyg
Поверхностное копирование
Поверхностное копирование создает отдельный новый объект или список, но вместо копирования дочерних элементов в новый объект, оно просто копирует ссылки на их адреса памяти. Следовательно, если вы сделаете изменение в исходном объекте, оно будет отражено в скопированном объекте, и наоборот.
Поверхностное копирование создает отдельный новый объект или список, но вместо копирования дочерних элементов в новый объект, оно просто копирует ссылки на их адреса памяти. Следовательно, если вы сделаете изменение в исходном объекте, оно будет отражено в скопированном объекте, и наоборот.
🚀Присоединяйтесь к нам на первые бесплатные уроки и исследуйте самые востребованные и легкие профессии IT!
На наших вебинарах вы найдете ответы на все интересующие вас вопросы. Переходите по ссылке https://crst.co/nUnQt, выбирайте понравившуюся тему и регистрируйтесь.До встречи в прямом эфире!
▶️ 26 мая - Manual QA Course. Первый урок бесплатный!
▶️ 10 мая - Best Tech Remote Careers 2022: Systems Engineer
▶️ 2 июня - Systems Engineer. Первый урок бесплатный!
Специальное предложение всем участникам!
️✅ Регистрация по ссылке https://crst.co/AXzUV
На наших вебинарах вы найдете ответы на все интересующие вас вопросы. Переходите по ссылке https://crst.co/nUnQt, выбирайте понравившуюся тему и регистрируйтесь.До встречи в прямом эфире!
▶️ 26 мая - Manual QA Course. Первый урок бесплатный!
▶️ 10 мая - Best Tech Remote Careers 2022: Systems Engineer
▶️ 2 июня - Systems Engineer. Первый урок бесплатный!
Специальное предложение всем участникам!
️✅ Регистрация по ссылке https://crst.co/AXzUV
Чтение JSON из файла
Чтение JSON из файла такое же простое, как и запись. С помощью библиотеки json мы можем спарсить JSON-строку прямо из файла.
json.load — очень важный метод, запомните его. С его помощью происходит чтение файла, парс JSON-данных. После этого все данные записываются в словарь и возвращаются вам.
Как и у json.dump, у json.load есть дополнительный метод. Он позволяет работать со строками напрямую, ведь чаще всего у вас не будет файлоподобного объекта, содержащего JSON. Как вы уже догадались, называется он json.loads. Допустим, вы вызываете конечную точку REST с помощью GET, который возвращает строку. Ее мы и можем напрямую передать в json.loads.
Чтение JSON из файла такое же простое, как и запись. С помощью библиотеки json мы можем спарсить JSON-строку прямо из файла.
json.load — очень важный метод, запомните его. С его помощью происходит чтение файла, парс JSON-данных. После этого все данные записываются в словарь и возвращаются вам.
Как и у json.dump, у json.load есть дополнительный метод. Он позволяет работать со строками напрямую, ведь чаще всего у вас не будет файлоподобного объекта, содержащего JSON. Как вы уже догадались, называется он json.loads. Допустим, вы вызываете конечную точку REST с помощью GET, который возвращает строку. Ее мы и можем напрямую передать в json.loads.
Только до 31.05.22 крупнейший ресурс о кибербезопасности в три раза дешевле!
XAKEP.RU доверяют 130 000 ИТ-специалистов, и не просто так. В их базе 66 000 обучающих технических материалов! Чтобы быть в курсе и разбираться в теме кибербезопасности, ИТ-спецу просто необходима подписка на XAKEP.RU!
А сейчас у них еще и огромная скидка!
Подробно о подписке: https://xakep.ru/about-magazine/
XAKEP.RU доверяют 130 000 ИТ-специалистов, и не просто так. В их базе 66 000 обучающих технических материалов! Чтобы быть в курсе и разбираться в теме кибербезопасности, ИТ-спецу просто необходима подписка на XAKEP.RU!
А сейчас у них еще и огромная скидка!
Подробно о подписке: https://xakep.ru/about-magazine/
Глубокое (полное) копирование
Глубокая копия создает новую и отдельную копию всего объекта или списка со своим уникальным адресом памяти. Это означает, что любые изменения, внесенные вами в новую копию объекта или списка, не будут отражаться в исходной. Этот процесс происходит следующим образом: сначала создается новый список или объект, а затем рекурсивно копируются все элементы из исходного в новый.
Короче говоря, оба объекта становятся полностью независимы друг от друга. Это похоже на концепцию передачи по значению в таких языках, как C ++, Java и C #.
Глубокая копия создает новую и отдельную копию всего объекта или списка со своим уникальным адресом памяти. Это означает, что любые изменения, внесенные вами в новую копию объекта или списка, не будут отражаться в исходной. Этот процесс происходит следующим образом: сначала создается новый список или объект, а затем рекурсивно копируются все элементы из исходного в новый.
Короче говоря, оба объекта становятся полностью независимы друг от друга. Это похоже на концепцию передачи по значению в таких языках, как C ++, Java и C #.
Когда стоит использовать замыкания?
Так для чего же нужны замыкания?
Замыкания позволяют избежать использования глобальных (global) значений и обеспечивают некоторую форму сокрытия данных. Для этого также может использоваться объектно-ориентированный подход.
Если в классе необходимо реализовать небольшое количество методов (в большинстве случаев один метод), замыкания могут обеспечить альтернативное и более элегантное решение. Но когда количество атрибутов и методов становится больше, лучше реализовать класс.
Вот простой пример, где замыкание может быть более предпочтительным, чем определение класса и создание объектов. Но выбор остается за вами.
Так для чего же нужны замыкания?
Замыкания позволяют избежать использования глобальных (global) значений и обеспечивают некоторую форму сокрытия данных. Для этого также может использоваться объектно-ориентированный подход.
Если в классе необходимо реализовать небольшое количество методов (в большинстве случаев один метод), замыкания могут обеспечить альтернативное и более элегантное решение. Но когда количество атрибутов и методов становится больше, лучше реализовать класс.
Вот простой пример, где замыкание может быть более предпочтительным, чем определение класса и создание объектов. Но выбор остается за вами.
re.findall()
Этот метод возвращает все совпадения с шаблоном, которые встречаются в строке. При этом строка проверяется от начала до конца. Совпадения возвращаются в том порядке, в котором они идут в исходной строке.
Синтаксис: re.findall(шаблон, строка)
Возвращаемое значение может быть либо списком строк, совпавших с шаблоном, либо пустым списком, если совпадений не нашлось.
Этот метод возвращает все совпадения с шаблоном, которые встречаются в строке. При этом строка проверяется от начала до конца. Совпадения возвращаются в том порядке, в котором они идут в исходной строке.
Синтаксис: re.findall(шаблон, строка)
Возвращаемое значение может быть либо списком строк, совпавших с шаблоном, либо пустым списком, если совпадений не нашлось.
Стать тестировщиком — легко! Присоединяйтесь к бесплатному онлайн-интенсиву 6–8 июня в 19:00 по московскому времени. Вы погрузитесь в процессы тестирования и за 3 дня пройдёте путь от основ юзабилити до автотестов. Попрактикуетесь на реальных задачах и узнаете, как стать гуру в востребованной профессии.
Регистрация уже идёт: 👉 https://clc.to/p2QVAw
На интенсиве узнаете:
✔️ какие soft и hard skills нужны крутому специалисту;
✔️ каковы принципы тестирования и ключевые инструменты;
✔️ каких трёх правил юзабилити нужно придерживаться;
✔️ как качественно описать баг;
✔️ что представляет собой популярное расширение Selenium IDE.
Спикер интенсива — инженер по тестированию в Яндексе, организатор тест-сессий, митапов по тестированию и мастер-классов, участник конференций SQA-days, TechTrain и CodeFest Дмитрий Якин.
🎁 Участвуйте и прокачайте знания! Получите в подарок подборку полезных материалов при регистрации и электронную книгу «Человек + машина», когда дойдёте до конца интенсива.
Подключайтесь к прямым эфирам и используйте возможность получить сертификат на 10 тысяч рублей на любой курс Skillbox.
Регистрация уже идёт: 👉 https://clc.to/p2QVAw
На интенсиве узнаете:
✔️ какие soft и hard skills нужны крутому специалисту;
✔️ каковы принципы тестирования и ключевые инструменты;
✔️ каких трёх правил юзабилити нужно придерживаться;
✔️ как качественно описать баг;
✔️ что представляет собой популярное расширение Selenium IDE.
Спикер интенсива — инженер по тестированию в Яндексе, организатор тест-сессий, митапов по тестированию и мастер-классов, участник конференций SQA-days, TechTrain и CodeFest Дмитрий Якин.
🎁 Участвуйте и прокачайте знания! Получите в подарок подборку полезных материалов при регистрации и электронную книгу «Человек + машина», когда дойдёте до конца интенсива.
Подключайтесь к прямым эфирам и используйте возможность получить сертификат на 10 тысяч рублей на любой курс Skillbox.
Форматирование строк в Python с помощью .format()
Этот способ форматирования был представлен в раннем Python 3. По сути, новый синтаксис удалил символы %. Вместо них он предоставил .format() в качестве строкового метода. Этот метод принимает позиционные аргументы для вставки в места, определенные фигурными скобками.
Аргументы могут быть и именованными, но порой это кажется излишне многословным.
С помощью метода str.format() вы можете сделать больше, чем просто вставить значение переменной в строку. Например, можно указать точность, округление и заполнение нулями.
Этот способ форматирования был представлен в раннем Python 3. По сути, новый синтаксис удалил символы %. Вместо них он предоставил .format() в качестве строкового метода. Этот метод принимает позиционные аргументы для вставки в места, определенные фигурными скобками.
Аргументы могут быть и именованными, но порой это кажется излишне многословным.
С помощью метода str.format() вы можете сделать больше, чем просто вставить значение переменной в строку. Например, можно указать точность, округление и заполнение нулями.
Хотите разбираться в Python-разработке? Пройдите бесплатный интенсив по программированию! Подключайтесь к прямым эфирам с 6 по 8 июня в 21:00 по московскому времени.
Успейте записаться и получить полезные скрипты на Python: ▶️ https://clc.to/uN-TtQ.
📍 Изучите основы Python и разберётесь в типах данных, структурах, функциях и ООП.
📍 Разработаете сервер для прослушивания подключений.
📍 Поработаете с библиотеками PyQT, Kivy, wxWidgets, Тkinter.
📍 Создадите полезную программу для обмена сообщениями.
☝️ Интенсив проведёт специалист, который 17 лет разрабатывает высоконагруженные системы и обрабатывает большие данные, — Михаил Овчинников. Он даст советы и рекомендации, ответит на вопросы.
🎁 Всем участникам, прошедшим интенсив, подарим электронную книгу Пола Доэрти и Джеймса Уилсона «Человек + машина» издательства МИФ. Подключайтесь, задавайте вопросы и получите сертификат на 10 тысяч рублей на любой курс Skillbox.
Успейте записаться и получить полезные скрипты на Python: ▶️ https://clc.to/uN-TtQ.
📍 Изучите основы Python и разберётесь в типах данных, структурах, функциях и ООП.
📍 Разработаете сервер для прослушивания подключений.
📍 Поработаете с библиотеками PyQT, Kivy, wxWidgets, Тkinter.
📍 Создадите полезную программу для обмена сообщениями.
☝️ Интенсив проведёт специалист, который 17 лет разрабатывает высоконагруженные системы и обрабатывает большие данные, — Михаил Овчинников. Он даст советы и рекомендации, ответит на вопросы.
🎁 Всем участникам, прошедшим интенсив, подарим электронную книгу Пола Доэрти и Джеймса Уилсона «Человек + машина» издательства МИФ. Подключайтесь, задавайте вопросы и получите сертификат на 10 тысяч рублей на любой курс Skillbox.
Забудьте о range(len()). Наш выбор — enumerate()
Часто возникают ситуации, когда нужно перебрать коллекцию и отслеживать индексы элементов, к которым вы получили доступ. Для этих целей многие использует range(len(коллекция)).
Функция enumerate возвращает enumerate-объект, который хранит в себе и индексы элементов, и их значения.
С помощью этой функции вы облегчите доступ и к индексам, и к значениям.
Рассмотрим пример, в котором видна разница между range(len(коллекция)) и enumerate(коллекция).
Часто возникают ситуации, когда нужно перебрать коллекцию и отслеживать индексы элементов, к которым вы получили доступ. Для этих целей многие использует range(len(коллекция)).
Функция enumerate возвращает enumerate-объект, который хранит в себе и индексы элементов, и их значения.
С помощью этой функции вы облегчите доступ и к индексам, и к значениям.
Рассмотрим пример, в котором видна разница между range(len(коллекция)) и enumerate(коллекция).
Стать тестировщиком — легко! Присоединяйтесь к бесплатному онлайн-интенсиву 6–8 июня в 19:00 по московскому времени. Вы погрузитесь в процессы тестирования и за 3 дня пройдёте путь от основ юзабилити до автотестов. Попрактикуетесь на реальных задачах и узнаете, как стать гуру в востребованной профессии.
Регистрация уже идёт: 👉 https://clc.to/p2QVAw
На интенсиве узнаете:
✔️ какие soft и hard skills нужны крутому специалисту;
✔️ каковы принципы тестирования и ключевые инструменты;
✔️ каких трёх правил юзабилити нужно придерживаться;
✔️ как качественно описать баг;
✔️ что представляет собой популярное расширение Selenium IDE.
Спикер интенсива — инженер по тестированию в Яндексе, организатор тест-сессий, митапов по тестированию и мастер-классов, участник конференций SQA-days, TechTrain и CodeFest Дмитрий Якин.
🎁 Участвуйте и прокачайте знания! Получите в подарок подборку полезных материалов при регистрации и электронную книгу «Человек + машина», когда дойдёте до конца интенсива.
Подключайтесь к прямым эфирам и используйте возможность получить сертификат на 10 тысяч рублей на любой курс Skillbox.
Регистрация уже идёт: 👉 https://clc.to/p2QVAw
На интенсиве узнаете:
✔️ какие soft и hard skills нужны крутому специалисту;
✔️ каковы принципы тестирования и ключевые инструменты;
✔️ каких трёх правил юзабилити нужно придерживаться;
✔️ как качественно описать баг;
✔️ что представляет собой популярное расширение Selenium IDE.
Спикер интенсива — инженер по тестированию в Яндексе, организатор тест-сессий, митапов по тестированию и мастер-классов, участник конференций SQA-days, TechTrain и CodeFest Дмитрий Якин.
🎁 Участвуйте и прокачайте знания! Получите в подарок подборку полезных материалов при регистрации и электронную книгу «Человек + машина», когда дойдёте до конца интенсива.
Подключайтесь к прямым эфирам и используйте возможность получить сертификат на 10 тысяч рублей на любой курс Skillbox.