seniorpy | Unsorted

Telegram-канал seniorpy - Senior Python Developer

54326

№ 4931117861 Публикуем интересные/полезные фичи/библиотеки языка. По вопросам сотрудничества: @adv_and_pr Канал на бирже: https://telega.in/c/seniorpy

Subscribe to a channel

Senior Python Developer

Генерируем ip адреса

С помощью следующего фрагмента кода мы можем с легкостью сгенерировать ip адрес.

Читать полностью…

Senior Python Developer

#вопросы_с_собеседований
Как работает функция zip() в Python, что произойдет, если переданные итерируемые объекты имеют разную длину, и как можно преобразовать результат работы этой функции обратно в оригинальные последовательности?

Ответ ⬇️
Функция zip() берет несколько итерируемых объектов и объединяет их в один итератор, который возвращает кортежи, сформированные из элементов входных последовательностей. Если переданные итерируемые объекты имеют разную длину, zip() завершает свою работу, как только самая короткая из последовательностей исчерпается.

Чтобы преобразовать результат zip() обратно в исходные последовательности, можно использовать распаковку с * (оператор звездочка), которая разделяет кортежи на отдельные списки.


Пример использования ⚙️

# Объединяем два списка
names = ['Alice', 'Bob', 'Charlie']
ages = [25, 30]

# zip объединяет элементы двух списков
zipped = zip(names, ages)
print(list(zipped)) # [('Alice', 25), ('Bob', 30)]

# Разъединяем с помощью распаковки
zipped_again = zip(names, ages) # Создаем заново, так как zip() исчерпаем
unzipped_names, unzipped_ages = zip(*zipped_again)

print(unzipped_names) # ('Alice', 'Bob')
print(unzipped_ages) # (25, 30)

Читать полностью…

Senior Python Developer

⚙️heapq.nlargest() и heapq.nsmallest()

В Python функции heapq.nlargest() и heapq.nsmallest() позволяют получить n наибольших или наименьших элементов из коллекции. Это удобно для задач, связанных с выборкой экстремальных значений.

Читать полностью…

Senior Python Developer

⚙️ string.Template

В Python класс string.Template из модуля string позволяет подставлять значения в строки с использованием плейсхолдеров. Это удобный способ работы с шаблонами текста.

Читать полностью…

Senior Python Developer

Что будет выведено при выполнении кода?

Пояснение
⬇️

Статические методы вызываются напрямую через имя класса, без необходимости создавать экземпляр. Метод static_method возвращает строку "Static Method". Метод class_method получает ссылку на класс cls и использует её для возвращения строки "Class Method from MyClass".

Читать полностью…

Senior Python Developer

Комьюнити, полезное для всех бекенд-разработчиков

Как работает VK изнутри? Что происходит за интерфейсами, когда миллионы пользователей одновременно отправляют сообщения, загружают фото и смотрят клипы?
В канале Backend VK Hub мы рассказываем о работе всех наших сервисах: от VK Play до Tarantool. Делимся подходами к масштабированию, оптимизации и новым архитектурным решениям. Открыто дискутируем, а также регулярно публикуем вакансии в нашу команду.

Здесь — реальные кейсы, технические разборы, советы от наших экспертов и возможность поговорить с ними в любой момент. Подписывайся!

Реклама. ООО "ВК" ИНН 7743001840

Читать полностью…

Senior Python Developer

Поймай меня, если сможешь: руководство по обработке исключений в Python

Люди, которые пишут код, часто воспринимают работу с исключениями как необходимое зло. Но освоение системы обработки исключений в Python способно повысить профессиональный уровень программиста, сделать его эффективнее.

Смотреть статью

Читать полностью…

Senior Python Developer

Пароль на код

Этот трюк с Python отлично подходит для защиты вашего кода паролем. Мы будем использовать функцию getpass() из библиотеки getpass , которая кодирует ваш ввод. Это предотвратит запуск кода без пароля.

Читать полностью…

Senior Python Developer

Работа с датами

Модуль python-dateutil предоставляет мощное расширение для стандартного datetime. Устанавливается он следующим образом:

Установка библиотеки - pip3 install python-dateutil

Выше приведен пример парсинга даты из логов.

Документацию пакета можно найти здесь.

Читать полностью…

Senior Python Developer

art

Всё, что вам может понадобится для вывода красивых надписей или артов в терминал. Ставится с помощью команды pip install art. Полный список возможностей есть в документации.

Читать полностью…

Senior Python Developer

#вопросы_с_собеседований
Что будет в результате выполнения данного кода?

Ответ:
Данный код выдаст в виде результата пустой список [], а ошибка IndexError не возникнет.

Как известно, попытка доступа к элементу списка с использованием индекса, превышающего число элементов (например, операция list[10] в списке выше), приводит к ошибке IndexError. Однако, попытка получить доступ к срезу списка с начальным индексом, превышающем количество элементов в списке, не приведет к IndexError и просто вернет пустой список.

Особенно неприятным это обстоятельство делает то, что оно может привести к ошибкам, которые действительно трудно отследить, поскольку во время выполнения кода не возникает никаких ошибок.

Читать полностью…

Senior Python Developer

try-except-else

В конструкцию try-except можно добавить также блок else. Он отработает только в случае выполнения кода без ошибок.

Использовать блок else предпочтительнее, чем добавлять дополнительный код в блок try. Это позволяет избежать случайного перехвата исключений, которые не были вызваны кодом, защищенным конструкцией try-except.

Читать полностью…

Senior Python Developer

Как работать с датами в pandas

Библиотека Pandas — это весьма эффективный инструмент для обработки данных, представляющих собой временные ряды. 

В данной статье вы узнаете: Как извлечь информацию о месяце и годе, прибавить временной интервал, найти интервал в днях, последовательность между начальной и конечной датами.

👉 Ссылка на статью

Читать полностью…

Senior Python Developer

Функция sleep()

Чтобы понять смысл функции sleep(), разберём простой пример. Три строки выводятся в определённый промежуток времени – задержку обеспечивает sleep. Сперва выводится первая строка, затем идёт функция sleep(), которая задерживает вывод на 2 секунды. Точно так же для следующего print мы используем sleep на 5 секунд.

В тексте этого не видно, но после запуска кода строки выводятся через указанные интервалы времени.

Читать полностью…

Senior Python Developer

Разбиение на фрагменты

Этот пример покажет, как разбить список на фрагменты и разделить его на меньшие части.

Читать полностью…

Senior Python Developer

👩‍💻 Задача по Python: Поиск первого неповторяющегося символа в строке

Напишите функцию, которая находит первый символ в строке, который не повторяется. Если все символы повторяются, функция должна вернуть None.

Пример:

print(first_unique_char("swiss"))  # Ожидаемый результат: "w"
print(first_unique_char("aabb")) # Ожидаемый результат: None


Решение задачи на картинке

Читать полностью…

Senior Python Developer

⚙️ itertools.accumulate()

В Python функция itertools.accumulate() вычисляет накопительные суммы или результаты других операций (например, произведение) над итерируемым объектом. Полезна для анализа последовательностей.

Читать полностью…

Senior Python Developer

От первой строчки кода — до миллионов запросов в секунду.

В VK бэкендеры решают задачи, которые действительно меняют цифровой ландшафт. Узнайте об их принципах работы и драгоценных победах. По ссылке — истории из первых рук и вакансии для тех, кто не боится вызовов.

Читать полностью…

Senior Python Developer

👩‍💻 Задача по Python: Объединение и сортировка двух списков

Напишите функцию, которая принимает два списка чисел, объединяет их, удаляет дубликаты и возвращает отсортированный список.

Пример:

list1 = [3, 1, 4, 1, 5]
list2 = [9, 2, 6, 5, 3, 5]
result = merge_and_sort(list1, list2)
print(result)
# Ожидаемый результат: [1, 2, 3, 4, 5, 6, 9]


Решение задачи на картинке ☝️

Читать полностью…

Senior Python Developer

⚙️ reversed()

В Python встроенная функция reversed() возвращает итератор, который перебирает элементы последовательности в обратном порядке. Это удобно для работы с последовательностями, когда нужен обратный порядок.

Читать полностью…

Senior Python Developer

#вопросы_с_собеседований
Что выведет программа?

Ответ:
Кажется, ничего сложного. 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.

Читать полностью…

Senior Python Developer

Узнаем расстояние между городами

Геодезическое расстояние – это длина кратчайшего пути между двумя точками на любой поверхности Земли. В следующем примере мы покажем, как пользователь может вычислить геодезическое расстояние на основе данных широты и долготы.

В нашем примере мы узнаем, ято расстояние между городами Нью-Йорк и Техас 2507 километров.

Читать полностью…

Senior Python Developer

Преобразование WORD в PDF

Устали от необходимости использовать онлайн-конвертеры docx в PDF с плохими интерфейсами и ограничениями? Тогда начинайте пользоваться модулем docx2pdf. :)

Установка модуля — pip install docx2pdf. Подробнее с модулем можно ознакомиться здесь.

Читать полностью…

Senior Python Developer

👮 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

Читать полностью…

Senior Python Developer

Аннотация типов

Тайп хинтинг был добавлен в python еще в версии 3.5 вместе с библиотекой typing, в которой содержались структуры нужные для создания дженериков для аннотирования переменных. Тогда синтаксис аннотирования работал при инициализации переменных. В последствии в версии 3.6 эта возможность была расширена и стало возможно объявлять типы переменных вообще в любом месте кода.

В python 3.9 была добавлена возможность использовать в качестве дженериков для аннотирования встроенные коллекции, вместо структур typing'а (List, Dict, Tuple...).

И наконец в 3.10 на замену перечисления возможных принимаемых типов через typing.Union пришел опреатор | (or). Также в 3.10 был изменен синтаксис создания тайпалиасов, чтобы разграничить с присваиванием переменной, теперь лучше это делать непосредственно через TypeAlias.

Читать полностью…

Senior Python Developer

Создание и чтение изображения

В этом примере мы создадим новое изображение в режиме RGB с размером (400, 300). Мы не будем указывать цвет, поэтому методы new() считают значение цвета по умолчанию 0 – для каналов RGB будет черным цветом.

Ознакомиться подробнее можно здесь.

Читать полностью…

Senior Python Developer

Функция asctime()

Функция asctime() модуля time преобразует кортеж или struct_time, представляющие время, возвращаемое time.gmtime() или time.localtime(), в строку следующего вида: 'Fri Apr 24 15:13:37 2022'.

Поле с указанием дня имеет длину два символа и дополняется пробелом, если день представляет собой одну цифру.

Если аргумент t не указан, используется текущее время, возвращаемое функцией time.localtime().

Функция time.asctime() не использует информацию о локали и не добавляет завершающий символ новой строки.

Читать полностью…

Senior Python Developer

Создание словаря из двух списков

Встроенная функция zip() принимает несколько итерируемых объектов и возвращает последовательность кортежей. Каждый кортеж группирует элементы объектов по их индексу.

Читать полностью…

Senior Python Developer

Генераторы словарей и множеств

Вы, конечно, пользовались генераторами списков. Но знаете ли вы о генераторах множеств и словарей?
В случае словарей отличие только в парах ключ-значение. Такие генераторы удобны для начальной инициализации значений последовательностей.

Читать полностью…

Senior Python Developer

Как переименовать файл с помощью Python

С помощью метода rename модуля os мы можем с легкостью изменить имя файла.

Читать полностью…
Subscribe to a channel