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

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

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

РКН реестр:
https://knd.gov.ru/license?id=67847dd98e552d6b54a511ed&registryType=bloggersPermission
Download Telegram
⚡️ Замыкание

Это возможность вложенной функции получить доступ к данным во внешней даже после того, как та выполнилась.

На его основе строится около половины алгоритмов в функциональном программировании. А ещё замыкание позволяет инкапсулировать код.

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

#теория
👍8
🤔5👍1
⚡️ Три помощника при работе с циклами

enumerate(iter, start=0) — проходится по итератору и возвращает кортеж (индекс, значение). Если задать второй параметр, то индекс сместиться на start единиц.

zip(a, b, c...) — параллельно проходит по всем объектам, возвращая по элементу с каждого.

reversed(obj) — просто переворачивает obj. Если это не возможно — возвращает ошибку.

Если вы что-то не поняли, то можете посетить документацию: enumerate, zip и reversed.

#теория
👍3
Что выведет этот код?
Anonymous Quiz
15%
101
39%
0b101
39%
5
7%
Узнать ответ
⚡️ Немного про регулярные выражения

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

Один разработчик нашёл способ как это исправить используя f-строки в Python. Вот его статья.

#миниурок #re
👍3
⚡️ Задачка с собеседования | #Easy

Условие:

Список [0, 1, 3, 6, 10] можно разделить на части: [0, 1, 3, 6, 10], [1, 3, 6, 10], [3, 6, 10], ..., []. Вам надо найти сумму всех этих частей.

Пример:

partssums([0, 1, 3, 6, 10]) ➞ [20, 20, 19, 16, 10, 0]
partssums([1, 2, 3, 4, 5, 6]) ➞ [21, 20, 18, 15, 11, 6, 0]


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

#Задачка_с_собеседования
👍2
⚡️ Ответ на предыдущую задачу
⚡️ Переопределяем поведение

Python используется магические методы (__eq__, __add__) при работе с операторами (==, +) и не только. Список действий и магических методом можно найти в operator.

Суть в том, что мы можем менять поведение операторов за счёт переопределения этих самых магических методов. Хорошим примером является pathlib с делением.

Кстати, магическими методами называют всё, что окружено двойными подчёркиваниями. Это и __init__, и __str__ и остальные.

#теория
👍1
👍2🤔2
⚡️ Быстро поднимаем HTTP сервер

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

В таком случае нам надо зайти в папку с нужными файлами и ввести python3 -m http.server. Понятное дело, там должен быть Python.

Потом на другом устройстве вводим wget <IP пк, на котором запустили сервер>:порт/файл. Для загрузки secret.txt, например, пишем: 192.168.0.108:8000/secret.txt.

Проблемы могут возникнуть только если устройства не в одной локальной сети, мешает брандмауэр или вы что-то неправильно ввели.

#теория
👍4
⚡️ Задачка с собеседования | #Easy

Условие:

Ваша задача посчитать формулу (1 / n!) * (1! + 2! + 3! + ... + n!), где n! это factorial(n) и округлить результат до 6 чисел.

Пример:

going(5) ➞ 1.275
going(6) ➞ 1.2125
going(10) ➞ 1.11274

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

#Задачка_с_собеседования
👍2
⚡️ Ответ на предыдущую задачу
⚡️ Создаём интерфейс командной строки

Если вы пишите консольное приложение, то обязаны позаботиться о том, чтобы пользователям было удобно им пользоваться. CLI вам поможет создать fire.

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

Модуль придерживается ООПшного стиля, что сильно упрощает интеграцию к себе в проект.

Также он предоставляет доступ ко всем атрибутам, которые переданы в него. Об этом и не только подробнее в документации.

#миниурок #fire
👍1🔥1
⚡️ Оператор with

Используется для оборачивания выполнения блока инструкций менеджером контекста. Выглядит намного проще и красивее, чем try/except/finally.

Первым делом вызывается __enter__, где класс выполняет важные операции. Например, открывает файл.

Если блок закончил свою работу или, вдруг, появилась ошибка, выполняется __exit__. Там выполняется, например, закрытие файла.

Подробнее об этом операторе написали в PEP 343.

#теория
👍4