Python Community
13.1K subscribers
1.24K photos
24 videos
15 files
708 links
Python Community RU - СНГ сообщество Python-разработчиков

Чат канала: @python_community_chat

Сотрудничество: @cyberJohnny и @Sergey_bzd

РКН реестр:
https://knd.gov.ru/license?id=67847dd98e552d6b54a511ed&registryType=bloggersPermission
Download Telegram
Что выведет этот код?
Anonymous Quiz
41%
True
29%
False
16%
Ошибку
14%
[1, -1, 5, -6, 10]
⚡️ Полезные команды из модуля itertools

Модуль itertools
— это набор функций для эффективной работы с циклами. Сегодня мы рассмотрим бесконечные итераторы.

chain(args) — Возвращает все элементы из первого итерируемого объекта до конца args.

zip_longest(arr1, arr2, fillvalue) — делает то же самое, что и zip (arr1, arr2), но если у arr1 и arr2 разная длина возвращает fillvalue.

compress(arr1, arr2) — "Сохраняет" элемент из arr1, если элемент из arr2 с этим же индексом является True

filterfalse(func, iter) — Работает так же как и filter, но сохраняет значения, только если результат функции false
Что выведет этот код?
Anonymous Quiz
14%
1
26%
4
42%
2
18%
3
⚡️ Оператор with в python

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

Вместо использования try или, например, finally, мы можем воспользоваться оператором with.

Оператор вызывает __enter__ у обрабатывающего класса, а в случае появления ошибки или окончания работы с объектом — __exit__.

Также, можно использовать декоратор contextmanager из contextlib для обработки файла используя yield.

#теория #операторы
Что выведет этот код?
Anonymous Quiz
22%
(4, 2)
27%
4, 2
14%
8, 1
18%
16, 1
19%
(16, 1)
⚡️ Работаем с файлами конфигурации

Модуль configparser используется для обработки файлов конфигурации. Он использует базовый язык, похожий на Microsoft Windows INI. Весь функционал можно найти на сайте в документации.

Устанавливать модуль не требуется, он уже идёт вместе с Python 3.

ConfigParser() — это основной класс для работы с файлом конфигурации.

Метод read (filename) считывает значения с файла, write(file_obj) записывает все изменения в переданный файл.

Основные методы в действии можно увидеть на картинке.

#миниурок #configparser
⚡️ Работаем с файловыми путями

Модуль pathlib, который установлен в Python по умолчанию, позволяет легко взаимодействовать с путями к файлам.

В библиотеке есть два основных класса — PurePosixPath, для Unix-подобных систем и PureWindowsPath для ОС Windows.

Если вы не желаете писать под определённую операционную систему, вы можете воспользоваться PurePath.

Windows и Unix-подобные системы работают с файловыми система по-разному.

Например Windows не чувствителен к регистру, использует вместо / и имеет разные диски — библиотека это знает, и позаботится об этом за вас.

Учтите, что для копирования файлов вам потребуется другой модуль — shutil.

#миниурок #pathlib
Что выведет код выше?
Anonymous Quiz
39%
False True
22%
True False
12%
False False
27%
True True
⚡️ Обфускация исходного кода. Работаем с pyarmor

Python никак не скрывает свой исходный код и каждый, кто получит файл, может легко его прочитать.

Это может стать серьёзной проблемой в безопасности и, чтобы скрыть и запутать исходник, используют обфускаторы.

Обфускатор
— это программа, которая различными способами усложняет скрипт. Меняет названия переменных, потоки и так далее.

Это затрудняет анализ скрипта, сохраняя функциональность. Одна из таких программ — pyarmor.

Установка: pip install pyarmor

Пример кода взят из этой статьи, а выше — можете видеть результат.

#миниурок #pyarmor
Что выведет этот код?
Anonymous Quiz
26%
Error
18%
False
35%
True
21%
one or two
⚡️ Простая проверка данных

Довольно часто случается, что необходимо проверить ссылку или, например, почту на правильность ввода.

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

Установка: pip install validators

Библиотека может проверять почту, узнавать, находится ли число между максимальным и минимальным числом, показываться домен, ip и даже mac-адрес.

Подробнее — в документации.

#мини_урок #validators
⚡️ Задача на собеседование: скрытие символов банковской карты

Условие:

На вход идёт строка с номером карты. Она может иметь внутри себя пробелы, что функция и должна предусматривать. Результат — 12 символов * и 4 последних символа от входной строки.

Пример:

hidecard("3459 0054 1234 6674") → ************6674
hidecard("1234567890987654") → ************7654

📌 Пишите ваше решение в комментариях. Решение будет через 4 часа на этом канале.

#Задача_с_собеседования
⚡️ Ответ на предыдущую задачу
⚡️ Ищем файлы по шаблону

В этом нам поможет простой модуль glob. Он разыскивает файлы по паттерну принятой в Unix-системе.

Библиотека является встроенной, так что установка не требуется.

Чаще всего употребляется два знака — * (на его месте может быть неограниченное количество символов) и ? (только один символ).

Подробнее все шаблоны можно рассмотреть на этом сайте.

Также, если вы импортируете pathlib, можете воспользоваться методом pathlib.glob, который выполняет ту же самую функцию.

#миниурок #glob