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

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

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

РКН реестр:
https://knd.gov.ru/license?id=67847dd98e552d6b54a511ed&registryType=bloggersPermission
Download Telegram
⚡️ Задачка с собеседования | #Medium

Условие:

Нужно написать специальный кодировщик. Если буква повторяется один раз, на его месте пишем "(", иначе — ")". Система не чувствительна к регистру. Учитываются все символы, кроме пробела, переноса строки и другие (string.whitespace).

Пример:

encode('no rep*at') -> '(( (((((('
encode('HeLlo world!') -> '(())) ()()(('
encode(' ') -> ' '

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

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

Модуль textwrap хранит в себе функции для обработки текста: ограничение строки, переносы и другие декорации. Подробнее — в документации.

wrap(text, width=70) — Оборачивает текст так, чтобы длина каждой строки не превышала width.

fill(то же, что и wrap) — сокращение для "n".join(wrap(text, ...)).

shorten(text, width, placeholder=' [...]') — Ограничивает текст до width и добавляет в конце placeholder.

indent(text, prefix) — Добавляет prefix к строкам, разделённым с помощью text.splitlines(True).

#миниурок #textwrap
⚡️ Безопасность превыше всего

Пользователи — главный страх программиста. И чтобы они ничего не сломали при вводе команд в терминал, воспользуйтесь shlex.

split(s) — разделяет строку на основе командного синтаксиса.

join(commands) — объединяет команды в одну строку.

quote(s) — возвращает экранированную строку s.

На самом деле, это лексический анализатор sh, поэтому предназначение его чуть шире, чем просто забота о безопасности (подробнее).

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

Условие:

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

Пример:

is_sum(1, [0, 1])
is_sum(9, [2, 4, 5, 7])
is_sum(13, [5, 6, 3, 4])

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

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

— Название Python пошло в честь «Монти Пайтона (Monty Python)» из любимого шоу разработчика — «Летающий цирк Монти Пайтона».

— Он стал интереснее французского языка. Родители и дети в 2015 году в Великобритании выбирали Python, а не французский язык.

— Python считают молодым языком, но на данный момент ему уже примерно 28 лет. Python 1.0 вышла в январе 1994 года.

#теория
Что выведет код выше?
Anonymous Quiz
34%
Hello
3%
world!
4%
Hello world!
54%
Ошибку
5%
Узнать ответ
Simpsonsv2.gif
27 MB
⚡️ Видео в терминале

Здесь будет описание одного интересного модуля, созданного на Python. А именно — video-to-ascii.

Установка: pip3 install video-to-ascii

Устанавливаете, вводите video-to-ascii -f название_видео.mp4 и наблюдаете. Стоит отметить, что модуль использует ffmpeg.

На видео выше вы видите результат перевода изображения в текст. А посмотреть исходники можно тут.
⚡️ Задачка с собеседования | #Easy

Условие:

Вам нужно найти сумму N минимальных чисел из входящего списка. На вход идёт целое число — количество чисел, что надо сложить и список с целыми числами.

Пример:

find_sum_n(3, [6, 4]) -> 10 # 6 + 4 = 10
find_sum_n(2, [0, 1, 2, 3]) -> 1 # 0 + 1 = 1
find_sum_n(3, [16, -10, -5, 100, 14]) -> -1 # -10 + (-5) + 14 = -1

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

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

mechanize
— модуль, позволяющий автоматизировать работу с веб-страницами из Python.

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

Вы можете с его помощью посещать страницы, отвечать на формы и симулировать работу браузера.

Он проще чем requests и может использоваться для тестирования сайта (документация).

#миниурок #mechanize
⚡️ Классы и особые атрибуты

__init__ — вызывается при создании объекта. Перед ним вызывается __new__ — статический класс для создания образца класса.

__str__, __repr__ — строковое представление объекта для пользователя (__str__) и для программиста (__repr__).

__gt__, __eq__, __lt__ — методы сравнения >, ==, <. Отдельные методы для !=, >=, <= и других операторов.

#теория
Мы ищем Python-разработчиков в штат Яндекс.Практикума.
Создаём социально значимый продукт и бизнес: помогаем нашим студентам получить новую цифровую профессию или навык.

Бэкенд-разработчику в Практикуме предстоит:
→ проектировать и внедрять новые форматы прохождения курсов, проектных работ;
→ добавлять на платформу новые тренажёры для студентов;
→ внедрять запуск кода на новых языках программирования;
→ развивать инструменты для машинного обучения и анализа данных;
→ проектировать архитектуру и инфраструктуру для новых внешних и внутренних сервисов;
→ ускорять работу платформы во всем мире, чтобы помогать Практикуму завоевывать новые рынки.

Мы будем рады видеть в нашей команде человека, который
— умеет программировать на языке Python,
— знает SQL и работал с реляционными базами данных,
— работал в Docker и с различными облачными сервисами,
— разрабатывал веб-сервисы.

Вас ждёт работа с гибким графиком: удалённая или в офисе с тренажёрным залом и йогой. А ещё:
◾️ интересные задачи, возможность влиять на процесс и результат;
◾️ сильная команда, с которой можно расти;
◾️ опционная программа;
◾️ программа жилищных заи‌мов под 3% или без процентов;
◾️ ДМС для вас и 80% стоимости ДМС для супругов и детеи‌;
◾️ премии каждые полгода для всех, кто успешно прошел ревью;
◾️ компенсация оплаты питания и мобильнои‌ связи;
◾️ оплата обучения и участия в профильных конференциях
◾️ скидки у партнёров компании.

Если вы не из Москвы — поможем с переездом.
→Почитать подробности и откликнуться на вакансию
⚡️ Задачка с собеседования | #Medium

Условие:

Вам нужно создать мексиканскую волну) — список со словами, в которых буквы по очереди становятся в верхнем регистре. На вход идёт слово, состоящее из букв английского алфавита, из которого надо сделать волну.

Пример:

wave('Hello') -> ['Hello', 'hEllo', 'heLlo', 'helLo', 'hellO']
wave('wave') -> ['Wave', 'wAve', 'waVe', 'wavE']
wave('TeST') -> ['Test', 'tEst', 'teSt', 'tesT']

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

#Задачка_с_собеседования