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

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

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

РКН реестр:
https://knd.gov.ru/license?id=67847dd98e552d6b54a511ed&registryType=bloggersPermission
Download Telegram
⚡️ Что такое абстрактный класс?

Это некий план проекта. Вы знаете, что класс должен делать такие-то функции, но как он будет это делать — уже не ваша забота. А также нельзя создавать экземпляр абстрактного класса.

Зачем он нужен? Во первых, он упрощают работу с IDE, ведь теперь редактор кода знает, с чем имеет дело и какие функции подставлять. Type hint'ы в деле.

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

#миниурок #abc
⚡️ Задачка с собеседования | #Medium

Условие:

Вам дан промежуток чисел от 0 от N. Нужно найти сумму всех чисел в этом промежутке, которые делятся на 2 или на 5.

Пример:

solution(4) ➞ 3
solution(10) ➞ 23 # 3 + 5 + 6 + 9 = 23
solution(100) ➞ 2318

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

#Задачка_с_собеседования
⚡️ Ответ на предыдущую задачу
⚡️ Open source проекты

Если вы хотите кодить, но у вас пока ещё нет идеи для собственных проектов, попробуйте поучаствовать в Open source проектах на GitHub.

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

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

#кодинг
Что выведет код выше?
Anonymous Quiz
8%
1
46%
2
3%
3
16%
SyntaxError
18%
TypeError
9%
Узнать ответ
⚡️ Делаем приложение более стабильным

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

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

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

Модуль заново запускает функцию, если она завершилась неудачно или не так, как вы хотели. Всё это очень хорошо контролируется за счёт параметров.

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

Условие:

Нужно перевести RGB в HEX формат.

Пример:

rgb_to_hex(255, 255, 255) ➞ 'FFFFFF'
rgb_to_hex(127, 13, 253) ➞ '7F0DFD'
rgb_to_hex(0, 0, 0) ➞ '000000'

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

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

С помощью функции format или за счёт f-строк мы можем быстро добавлять значения в строку и применять для неё какие-то правила.

Передаются имена переменных, которые надо подставить внутри фигурных скобок ({}). После можем поставить двоеточие (:) и написать правила для форматирования строки.

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

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

#теория
⚡️ Цепочка обязанностей (Chain of Responsibility)

Это паттерн, который позволяет передавать запрос по цепочке обработчиков. Обработчики могут в любой момент прервать передачу запроса.

Также, таким образом мы можем избавится от большого количества if-ов в одном файле и перенести их в отдельные классы.

Возьмём, к примеру, обработку доступа к файлу. Первым делом вы проверяете, авторизован ли пользователь, после является ли он админом. И если вас попросят добавить ещё проверку, сделать это будет намного проще.

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

Условие:

Вам нужно написать простенькую программу для обработки кода. Она работает так, если команда:

· 'i', то мы добавляем к числу 1 (которое изначально 0)
· 'd', то мы забираем у числа единицу
· 's', то мы возводим значение в квадрат
· 'o', то мы добавляем число в массив, который после возвращаем

Если вам встречаются другие символы, просто игнорируйте их.

Пример:

parse('ooo') ➞ [0, 0, 0]
parse('iiisdoso') ➞ [8, 64]
parse('isoisoiso') ➞ [1, 4, 25]

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

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

aztro — проект, предоставляющий информацию о гороскопе и астрологии в режиме реального времени через HTTP API. А PyAztro — интерфейс для взаимодействия с ним.

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

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

Вы можете получить доступ к гороскопу на этот день, предыдущий (yesterday) или завтрашний (tomorrow). Подробнее в документации.

P.S. На фото выше гороскоп на сегодня для Овен. Файл с кодом будет в комментариях.
Что выведет код выше?
Anonymous Quiz
24%
None
45%
[1, 3, 2]
11%
[]
15%
Ошибку
4%
Узнать ответ