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

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

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

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

Условие:

Необходимо проверить, является ли слово изограммой — то, в котором не повторяется ни одна буква.

Примеры:

is_isogram('Dermatoglyphics') -> True
is_isogram('isogram') -> True
is_isogram('aba') -> False
is_isogram('') -> True

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

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

Все мы любим пасхалки в играх, так почему бы не сделать их в языке программирования? Для этого введите команды ниже в интерпретатор Python:

import this

import __hello__

import types
help(types.CodeType)

• Для начала установите pip install antigravity, после — введите import antigravity.

#теория
⚡️ Всё случайное — не случайно

Так можно описать псевдослучайные значения. А для работы с ними используется предустановленный модуль random.

randint(a, b) — берёт псевдослучайное целое число в промежутке от a до b.

random.choice(seq) — возвращает любое значение из последовательности. Это может быть список или множество.

random.shuffle(x)перемешивает элементы последовательности x.

Это, понятное дело, ещё не всё — весь функционал можно найти в документации.

#миниурок #random
⚡️ Задачка с собеседования | #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
⚡️ Ответ на предыдущую задачу