54326
№ 4931117861 Публикуем интересные/полезные фичи/библиотеки языка. По вопросам сотрудничества: @adv_and_pr Канал на бирже: https://telega.in/c/seniorpy
⚙️ reversed()
В Python встроенная функция reversed() возвращает итератор, который перебирает элементы последовательности в обратном порядке. Это удобно для работы с последовательностями, когда нужен обратный порядок.
#вопросы_с_собеседований
Что выведет программа?
Ответ:
Кажется, ничего сложного. create_multipliers вернёт список из 5 функций (назовём их list_lamba_f). Каждая list_lamba_f будет умножать свой аргумент на свой индекс в результирующем массиве.
Получается, что на экране мы увидим:
0
2
4
6
8
Дальнейший разбор предполагает, что вам знакомо замыкание (closure) при использовании вложенных функций (nested functions).
Свои коррективы в наивное объяснение выше вносит позднее связывание. Согласно ему, значение переменной из замыкания (это переменная i) вычисляется в тот момент, когда вызывается внутренняя функция (наши list_lamba_f).
Получается, что значение i в list_lamba_f вычисляется в момент вызова multiplier(2) в пятой строчке. Но в этот момент create_multipliers уже отработала целиком. и значение i — это 4. То есть для всех list_lamba_f значение i равно 4.
Итак, ответ:
8
8
8
8
8.
Узнаем расстояние между городами
Геодезическое расстояние – это длина кратчайшего пути между двумя точками на любой поверхности Земли. В следующем примере мы покажем, как пользователь может вычислить геодезическое расстояние на основе данных широты и долготы.
В нашем примере мы узнаем, ято расстояние между городами Нью-Йорк и Техас 2507 километров.
Преобразование WORD в PDF
Устали от необходимости использовать онлайн-конвертеры docx в PDF с плохими интерфейсами и ограничениями? Тогда начинайте пользоваться модулем docx2pdf. :)
Установка модуля — pip install docx2pdf. Подробнее с модулем можно ознакомиться здесь.
👮 Raspberry Pi начеку: делаем за час охранную систему с помощью датчика расстояния и камеры
Создаем охранную систему с помощью Raspberry Pi, датчика расстояния HC-SR04 и камеры. Снимки нарушителя границ безопасности отправляем на почту и получаем уведомление в мобильное приложение IFTTT.
https://proglib.io/p/raspberry-pi-nacheku-delaem-za-chas-ohrannuyu-sistemu-s-pomoshchyu-datchika-rasstoyaniya-i-kamery-2021-11-17
Аннотация типов
Тайп хинтинг был добавлен в python еще в версии 3.5 вместе с библиотекой typing, в которой содержались структуры нужные для создания дженериков для аннотирования переменных. Тогда синтаксис аннотирования работал при инициализации переменных. В последствии в версии 3.6 эта возможность была расширена и стало возможно объявлять типы переменных вообще в любом месте кода.
В python 3.9 была добавлена возможность использовать в качестве дженериков для аннотирования встроенные коллекции, вместо структур typing'а (List, Dict, Tuple...).
И наконец в 3.10 на замену перечисления возможных принимаемых типов через typing.Union пришел опреатор | (or). Также в 3.10 был изменен синтаксис создания тайпалиасов, чтобы разграничить с присваиванием переменной, теперь лучше это делать непосредственно через TypeAlias.
Создание и чтение изображения
В этом примере мы создадим новое изображение в режиме RGB с размером (400, 300). Мы не будем указывать цвет, поэтому методы new() считают значение цвета по умолчанию 0 – для каналов RGB будет черным цветом.
Ознакомиться подробнее можно здесь.
Функция asctime()
Функция asctime() модуля time преобразует кортеж или struct_time, представляющие время, возвращаемое time.gmtime() или time.localtime(), в строку следующего вида: 'Fri Apr 24 15:13:37 2022'.
Поле с указанием дня имеет длину два символа и дополняется пробелом, если день представляет собой одну цифру.
Если аргумент t не указан, используется текущее время, возвращаемое функцией time.localtime().
Функция time.asctime() не использует информацию о локали и не добавляет завершающий символ новой строки.
Создание словаря из двух списков
Встроенная функция zip() принимает несколько итерируемых объектов и возвращает последовательность кортежей. Каждый кортеж группирует элементы объектов по их индексу.
Генераторы словарей и множеств
Вы, конечно, пользовались генераторами списков. Но знаете ли вы о генераторах множеств и словарей?
В случае словарей отличие только в парах ключ-значение. Такие генераторы удобны для начальной инициализации значений последовательностей.
Как переименовать файл с помощью Python
С помощью метода rename модуля os мы можем с легкостью изменить имя файла.
#вопросы_с_собеседований
Как в классе сослаться на родительский класс?
Ответ на картинке (Функция super принимает класс и экземпляр).
🔥 Собираемся на Pytup — митап для Python-разработчиков и ML-инженеров
Екатеринбург | 27 ноября | 17.00 (по Екб)
Встречаемся в Екатеринбурге и онлайн, чтобы поговорить о Python, машинном обучении и технологиях, которые двигают индустрию вперед.
В программе — практические доклады, живое общение с экспертами из Яндекса, VK и других компаний, дискуссии, гонки на игрушечных роверах и соревнования по классической змейке.
Среди спикеров: разработчик системы контроля качества умных устройств на производстве (Яндекс Алиса) Арсений Саблин, который расскажет, как используется Python при тестировании станций с Алисой, и техлид VK Tech Никита Улько, который разберет чистую архитектуру с практической точки зрения.
Полная программа митапа доступна на сайте.
💥 Регистрируемся здесь
Поиск уникальных слов в текстовом файле в Python
Чтобы найти уникальные слова в текстовом файле в Python, необходимо очистить текст, найти слова, а затем найти уникальные.
Подробнее можно почитать здесь.
Ключевое слово assert
Если нужно симулировать или выполнить отладку кода, чтобы узнать, что именно происходит на определенном этапе, то assert в Python отлично для этого подходят.
Именно инструмент отладки останавливает программу, как только возникает какая-то ошибка. Он также показывает, где именно она произошла.
В нашем примере мы проверяем будет ли массив пуст или нет.
Подробнее про assert можно почитать здесь.
Комьюнити, полезное для всех бекенд-разработчиков
Как работает VK изнутри? Что происходит за интерфейсами, когда миллионы пользователей одновременно отправляют сообщения, загружают фото и смотрят клипы?
В канале Backend VK Hub мы рассказываем о работе всех наших сервисах: от VK Play до Tarantool. Делимся подходами к масштабированию, оптимизации и новым архитектурным решениям. Открыто дискутируем, а также регулярно публикуем вакансии в нашу команду.
Здесь — реальные кейсы, технические разборы, советы от наших экспертов и возможность поговорить с ними в любой момент. Подписывайся!
Реклама. ООО "ВК" ИНН 7743001840
Поймай меня, если сможешь: руководство по обработке исключений в Python
Люди, которые пишут код, часто воспринимают работу с исключениями как необходимое зло. Но освоение системы обработки исключений в Python способно повысить профессиональный уровень программиста, сделать его эффективнее.
Смотреть статью
Пароль на код
Этот трюк с Python отлично подходит для защиты вашего кода паролем. Мы будем использовать функцию getpass() из библиотеки getpass , которая кодирует ваш ввод. Это предотвратит запуск кода без пароля.
Работа с датами
Модуль python-dateutil предоставляет мощное расширение для стандартного datetime. Устанавливается он следующим образом:
Установка библиотеки - pip3 install python-dateutilВыше приведен пример парсинга даты из логов.
Документацию пакета можно найти здесь.
art
Всё, что вам может понадобится для вывода красивых надписей или артов в терминал. Ставится с помощью команды pip install art. Полный список возможностей есть в документации.
#вопросы_с_собеседований
Что будет в результате выполнения данного кода?
Ответ:
Данный код выдаст в виде результата пустой список [], а ошибка IndexError не возникнет.
Как известно, попытка доступа к элементу списка с использованием индекса, превышающего число элементов (например, операция list[10] в списке выше), приводит к ошибке IndexError. Однако, попытка получить доступ к срезу списка с начальным индексом, превышающем количество элементов в списке, не приведет к IndexError и просто вернет пустой список.
Особенно неприятным это обстоятельство делает то, что оно может привести к ошибкам, которые действительно трудно отследить, поскольку во время выполнения кода не возникает никаких ошибок.
try-except-else
В конструкцию try-except можно добавить также блок else. Он отработает только в случае выполнения кода без ошибок.
Использовать блок else предпочтительнее, чем добавлять дополнительный код в блок try. Это позволяет избежать случайного перехвата исключений, которые не были вызваны кодом, защищенным конструкцией try-except.
Как работать с датами в pandas
Библиотека Pandas — это весьма эффективный инструмент для обработки данных, представляющих собой временные ряды.
В данной статье вы узнаете: Как извлечь информацию о месяце и годе, прибавить временной интервал, найти интервал в днях, последовательность между начальной и конечной датами.
👉 Ссылка на статью
Функция sleep()
Чтобы понять смысл функции sleep(), разберём простой пример. Три строки выводятся в определённый промежуток времени – задержку обеспечивает sleep. Сперва выводится первая строка, затем идёт функция sleep(), которая задерживает вывод на 2 секунды. Точно так же для следующего print мы используем sleep на 5 секунд.
В тексте этого не видно, но после запуска кода строки выводятся через указанные интервалы времени.
Разбиение на фрагменты
Этот пример покажет, как разбить список на фрагменты и разделить его на меньшие части.
Метод file.writelines()
Метод файла file.writelines() записывает последовательность (список) строк в файл file.
Последовательностью может быть любой итерируемый объект, содержащий в качестве элементов строки. Обычно это список строк.
Обратите внимание, что метод file.writelines() не добавляет разделители строк автоматически. Если они требуются, то добавляйте их вручную.
Визуализация 5 алгоритмов сортировки на Python
В статье вы посмотрите на реализацию и визуализацию пяти популярных алгоритмов сортировки.
Смотреть статью
Template из string
Класс Template — это такой легаси-способ форматировать строки. Полезно знать, как он работает, чтобы не растеряться при встрече со старым кодом.
Данный способ поддерживает передачу переменных по имени и использует $-синтаксис. В актуальных проектах, конечно, использовать его не стоит, f-строки гораздо проще.
🤖👩💻🤖 Научим нейросеть распознавать рукописные буквы прямо на занятии!
Приглашаем на открытый урок.
🗓 18 ноября в 20:00 МСК
🆓 Бесплатно. Урок в рамках старта курса «Python Developer. Professional».
Машинное обучение часто кажется чем-то абстрактным и сложным. Но на самом деле основы можно понять на практическом примере. На открытом уроке прямо в Jupyter Notebook мы загрузим данные, обучим модель на Python и посмотрим, как она «угадывает» буквы на картинках. Это позволит наглядно увидеть, как работает искусственный интеллект.
На вебинаре разберём:
✔️ Как устроен процесс обучения модели машинного обучения
✔️ Как использовать Python и Jupyter Notebook для решения задачи распознавания
✔️ Как проверить результат: модель в действии на примере распознавания букв
В результате вебинара вы:
✔️Поймёте, из чего состоит процесс обучения нейросети
✔️Научитесь запускать простой эксперимент по машинному обучению самостоятельно
✔️Увидите, как модель применяет полученные знания на реальных примерах
🔗 Ссылка на регистрацию: https://otus.pw/6RUp/
Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576
Очищаем строки
В данном примере мы видим, как при помощи словаря со значениями для замены символов и метода translate, символы:
• переноса строки "\n"
• табуляции "\t"
• перехода на один символ назад "\b"
заменяются на обычные пробелы.