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
⚡️ Алгоритм бинарного поиска

Если вы слышали про теорию алгоритмов, то можете почувствовать разницу между O(log n) (такую стоимость даёт бинарный поиск) и O(n) (а такую — обычный).

Проблема бинарного поиска в том, что все данные должны быть отсортированы. Если у вас есть такой список, то стоит попробовать bisect.

Модуль хранит внутри себя алгоритм бинарного поиска. Сам по себе он бесполезный, но на его основе можно сделать множество классных функций.

Подробнее можете почитать в документации, там также есть парочка неплохих примеров.

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

Условие:

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

Примеры:

sum_miss([1, 6, 3, 2]) -> 9 # 4 + 5 = 9
sum_miss([1, 2, 3]) -> 0
sum_miss([4, 5, 3, 2, 0]) -> 1

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

#Задачка_с_собеседования
⚡️ Ответ на предыдущую задачу
2022 уже совсем скоро, а ты еще не купил себе новогодний подарок?🎅🏼🎁

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

Онлайн университет профессий Skypro проанализировал статистику hh и выяснил, что Python специалисты являются одной из самых востребованных профессий за 2021 год, при этом их зарплата доходит до 300.000₽ в месяц. Именно поэтому они создали курс “Python разработчик”, пройдя который вы станете уверенным разработчиком и сможете начать зарабатывать заветные 300.000₽.

В течение обучения все студенты выполнят 4 проекта, которые сформируют в свое портфолио.
Кроме того, опытные специалисты Skypro помогут найти работу и подготовят к собеседованию с HR💥

По нашей ссылке можно записаться на бесплатную консультацию и получить скидку 10% по промокоду «УЧИСЬ»
https://go.skyeng.ru/Python_Community_ru
⚡️ Работаем с IP адресами

Наиболее эффективно с этой задачей справляется предустановленный модуль ipaddress.

ipaddress.ip_address(address) — возвращает IPv4Address или IPv6Address на основе address.

ipaddress.ip_network(address) — используется для создания сетей, с маской и набором адресов. Возвращает IPv4Network или IPv6Network на основе address.

С этими классами вы можете выполнять различные операции, о которых подробнее узнаете из документации.
Что выведет код выше?
Anonymous Quiz
74%
True
22%
False
3%
Узнать ответ
⚡️ Пишем эмодзи

Эмодзи, в умеренных количествах, могут улучшить текст, но вот их использование в коде несколько затрудняется, поэтому придумали модуль emoji.

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

emoji.emojize(text) — заменяет все особые символы в text на эмодзи.

emoji.demojize(text) — делает наоборот, переводит эмодзи в текст.

emoji.is_emoji(char) — проверяет, является ли char частью набора эмодзи.

Подробнее о модуле вы, как обычно, можете почитать тут.

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

Условие:

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

Примеры:

get_ext('file') -> ''
get_ext('.not_ext.') -> ''
get_ext('.not_ext') -> ''
get_ext('file.py.exe') -> 'exe'
get_ext('
script.py') -> 'py'

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

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

Думаю, работая программистом, гуглить вы уже научились. Теперь, надо бы обучить этому программу: для этого воспользуемся модулем google.

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

googlesearch.search(query)
— Отправляет запрос query и возвращает num ссылок в течении num * pause секунд.

googlesearch.get_page(url) — возвращает страницу в необработанном формате в виде набора байтов.

Модуль, к слову, довольно хорошо настраивается. Вы можете передать в параметры функции user agent, язык, страну и тому подобное.

#миниурок #google
Что выведет код выше?
Anonymous Quiz
4%
[10]
19%
[14]
18%
[10 10]
44%
[6 4 4]
15%
Узнать ответ
⚡️ Асинхронное программирование

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

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

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

А что не так с потоками? При работе с потоками код становится тяжёлым и непонятным, чего мы не любим.

Если вам стало интересно, советуем начать с модуля asyncio.

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

Условие:

Напишите функцию, которая принимает список из целых чисел и возвращает то, что повторяется нечётное кол-во раз.

Во всех входных данных всегда будет только одно такое число.

Примеры:

solution([7]) -> 7
solution([0, 1, 0]) -> 1
solution([0, 1, 0, 1, 0]) -> 0

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

#Задачка_с_собеседования
🖥 Давно хотели приобщить своих младших товарищей к миру IT, но не знали с чего начать?

Онлайн-школа Фоксфорд - идеальное решение. Вот лишь несколько из широкого перечня их курсов для детей:

🔹 Программирование на Python
🔹 Администрирование сервера в Minecraft
🔹 Data Science (Машинное обучение на Python)

И еще одна хорошая новость: у меня есть промокод со скидкой 18 % на их курсы - foxfordskidka

Познакомьте ребенка с профессией его мечты 💫
⚡️ Ответ на предыдущую задачу
⚡️ Передаём пароль программе

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

Что же делать? Воспользуйтесь getpass — предустановленный модуль для решения этой задачи.

getpass.getpass(prompt, stream=None) — ожидает ввода пароля от пользователя, не выводя символы на экран.

getpass.getuser() — возвращает имя пользователя.

Подробнее о модуле можете почитать в документации.

#миниурок #getpass