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

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

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

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

Условие:

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

Примеры:

delete_nth([1, 1, 1, 1], 2) -> [1, 1]
delete_nth([20, 37, 20, 21], 1) -> [20, 37, 21]
delete_nth([1, 2, 3, 2, 1, 2, 3], 2) -> [1, 2, 3, 2, 1, 3]

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

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

Может быть полезно для поиска опечатки в тексте или при разработке голосового помощника. А реализовано всё в модуле TheFuzz.

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

Для просто сравнения текста используют fuzz.ratio(str, wait_str). Возвращает значение в процентах, насколько они похожи.

Также можно получить наиболее похожее значение из списка: process.extract(str, list) или process.extractOne(str, list).

Почитать об этом чуде можно тут.

P.S. Проект fuzzywuzzy был перемещён и переименован в thefuzz.

#миниурок #thefuzz #fuzzywuzzy
Что выведет код выше?
Anonymous Quiz
54%
True
15%
False
8%
-1
4%
-2
13%
Ошибку
6%
Узнать ответ
⚡️ Текстовый пользовательский интерфейс

textual
— модуль, позволяющий создавать интерфейс внутри терминала. Примеры использования приложения можно увидеть выше.

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

Как только установили модуль, попробуйте его: python -m textual.app. У него довольно большой функционал: например, разделение окон, взаимодействие с мышкой и так далее.

К сожалению, инструмент ещё на стадии разработки и у него не очень хорошие доки, поэтому оставляем ссылку на GitHub.

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

Условие:

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

Примеры:

remove_duplicates([1, 2, 1, 2]) -> []
remove_duplicates([1, 2, 1, 3]) -> [2, 3]
remove_duplicates([2, 5, 6, 7, 5, 2, 6]) -> [7]

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

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

Python очень связан со сторонними библиотеками, поэтому было бы неплохо научится их правильно импортировать:

1. import <package> — простой импорт пакета.

2. from <package> import <obj> — «вытаскивает» obj (функция, класс, переменная) из пакета. Если написать * на месте <obj>, то получим все возможности модуля (есть ограничение в виде __all__)

3. import <package> as <name> — импортирует модель и задаёт имя, записанное после as. Работает и from <package> import <obj> as <name>

4. import <package1>, <package2> — импортирует несколько пакетов в одну строку. Также работает с form и as.

#теория
Что выведет код выше?
Anonymous Quiz
7%
ae
41%
ab
23%
abce
10%
abe
18%
Узнать ответ
⚡️ Особенность булевых операций

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

x or y — если x ложно (False), использует y, иначе x.

x and y — если x ложно, использует x, иначе y.

Таким образом можно сократить несколько строк в одну.

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

Условие:

Возьмите любое положительное целое число, переверните и прибавьте к исходному числу. Повторяйте, пока не получится число-палиндром (то, что читается одинаково слева направо и справа налево).

Пример:

alg192(48) -> 363 # 48 + 84 = 132; 132 + 231 = 363
alg192(23) -> 55 # 23 + 32 = 55
alg192(55) -> 121
# 55 + 55 = 110; 110 + (0)11 = 121

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

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

Есть модуль, позволяющий переводить JS-код в Python объекты, называется js2py.

Установка: pip3 install js2py

Модуль написан на чистом Python и у него нет зависимостей. По сути, это базовая реализация ядра Javascript.

Также вы можете использовать пакеты JS, словно это модули Python, с помощью функции require(name).

#миниурок #js2py
⚡️ Форматируем строку

Python ценит читаемость кода, и чтобы не приходилось совмещать строки с помощью + или непонятных %s придумали f-строки.

Пример — f"some {value}". Все выражения внутри {} переводятся в строку. Именно выражения, будет работать и такая строка: f"{a} + {b} = {a + b}".

Стоит заметить, что внутри {} бэкслеш (символы типа n, t, ") не поддерживается, придётся сохранять результат в отдельную переменную. Пустые выражения также не доступны.

Подробнее

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

Условие:

Вам нужно вернуть число в виде строки в расширенной форме. На входе всегда натуральное число.

Пример:

expanded_form(1) -> '1'
expanded_form(1234) -> '1000 + 200 + 30 + 4'
expanded_form(1001) -> '1000 + 1'

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

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