Pythonist.ru - образование по питону
25.7K subscribers
209 photos
5 videos
5 files
1.05K links
Pythonist.ru - помощь в подготовке к собеседованию на позицию Python Developer.
Реклама: @anothertechrock

РКН: https://kurl.ru/WPjOT
Download Telegram
Топ. Создание Android-приложения с помощью Python Kivy

Если вы являетесь Python-разработчиком и подумываете заняться мобильной разработкой, то фреймворк Kivy — это отличный выбор для вас. С помощью Kivy можно создавать платформонезависимые приложения, компилируемые под iOS, Android, Windows, MacOS и Linux.

#топ
Задача на логику. Остаться в живых

В одной деспотичной стране король созвал всех придворных мудрецов (количество их не принципиально, поэтому будем считать, что их 20).

Он объявил собравшимся, что завтра их всех построят в одну шеренгу и завяжут глаза. Затем каждому на голову наденут колпак черного или белого цвета и снимут повязки. Каждый сможет видеть цвет колпака стоящих впереди него, но не может видеть свой колпак и колпаки тех, кто сзади.

Каждого в шеренге спросят: "Какого цвета на тебе колпак?" Если мудрец ответит правильно, его оставят в живых. Если неправильно, значит он недостоин быть мудрецом и его казнят.

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

Вам тоже дадим ночь, а ответ опубликуем утром:)

#логическаязадача
Ответ к задаче "Остаться в живых"

Мудрецам нужно договориться следующим образом.

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

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

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

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

#логическаязадача
Задача с кодом. Деление строк на пары символов

Нужно разделить строку на пары символов. Если строка состоит из нечетного количества символов, то недостающий символ в результирующем списке пар заменяется на знак _ нижнего подчеркивания.

Примеры:
‘abcd’ -> [‘ab’, ‘cd’]
‘abcde’ ->[‘ab’, ‘cd’, ‘e_’]

Решение на нашем сайте.

#задача #coding
Задача на логику. Как львам и антилопам гну пересечь реку?

Три льва и три антилопы гну бегут от пожара. Перед ними река с крокодилами (естественно, это ж Африка), так что просто форсировать реку опасно. К счастью, у их берега есть плот, на нем можно добраться на другой берег. Но есть несколько проблем:

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

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

Решение тут. Просьба потратить хотя бы 10 минут перед тем как читать решение.

#логическаязадача
Задача для новичков

Напишите функцию canConstruct(), которая принимает две строки, s и t. Данная функция должна возвращать True, если первую строку s можно составить из букв, которые входят во вторую строку t. Причем каждую букву из строки t можно использовать только один раз.

Примеры работы данной функции:

canConstruct("aa", "ab") --> False
canConstruct("aa", "aab") --> True

Свои варианты пишите в комментариях! Решение - сегодня вечером.

#задача #coding
Ответ к предыдущей задаче для новичков

from collections import Counter

def canConstruct(s, t):
char_count_s = Counter(s)
char_count_t = Counter(t)

for char, count in char_count_s.items():
if count > char_count_t[char]:
return False

return True

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

#задача #coding
Задача с кодом. Невозможная дата

Даны параметры: день, месяц и год. Напишите функцию, которая определяет, существует такая дата или нет. Используйте модуль datetime.

Примеры:
is_valid_date(35, 2, 2020) ➞ False 
# В феврале нет 35-и дней
is_valid_date(8, 3, 2020) ➞ True
# 8 марта реальная дата
is_valid_date(31, 6, 1980) ➞ False
# в июне только 30 дней

Решение на нашем сайте.

#задача #coding
Задача на логику. Рыцари и лжецы

На острове живут 100 рыцарей и 100 лжецов, у каждого из них есть хотя бы один друг. Рыцари всегда говорят правду, а лжецы всегда лгут.

Однажды утром каждый житель произнес либо фразу «Все мои друзья — рыцари», либо «Все мои друзья — лжецы», причем каждую из фраз произнесло ровно 100 человек. Найдите наименьшее возможное число пар друзей, один из которых рыцарь, а другой — лжец.

#логическаязадача
Ответ к задаче "Рыцари и лжецы"

В паре рыцарь-лжец каждый должен сказать, что другой - лжец: рыцарь скажет правду, а лжец соврёт. В паре рыцарь-рыцарь оба скажут правду, а в паре лжец-лжец оба скажут неправду.

Значит, фраза «Все мои друзья — лжецы» употребляется только в парах рыцарь-лжец. Минимальное количество пар рыцарь-лжец, когда фразу сказали 100 человек, это 50. Если пар будет меньше, то и фраз тоже будет меньше.

#логическаязадача
Модули. HTTP-запросы с использованием Aiohttp в Python 3

Итак, вы хотите попробовать асинхронность, и решили, что встроенный модуль asyncio — это то, что вам нужно. Давайте посмотрим, какие возможности вам доступны.

#модули
Тест. Основы параллелизма

С помощью этого теста вы можете проверить свои знания в области параллелизма. Это одна из самых сложных, но в то же время интересных тем.

#тест
Топ. Виртуальные среды (venv) в Python

Виртуальные среды Python (англ. virtual enviroment, сокращенно venv или virtualenv) позволяют устанавливать пакеты Python в изолированном от остальной части вашей системы месте. Давайте посмотрим, как их использовать для вашей работы.

#топ
Задача с кодом. Каких чисел больше: четных или нечетных?

Дан список чисел. Нужно написать функцию, которая вернет True, если в списке больше нечетных чисел, и False — если наоборот.

Примеры:
oddeven([1, 2, 3, 4, 5, 6, 7, 8, 9]) ➞ True 
oddeven([1]) ➞ True
oddeven([13452394823795273847528572346]) ➞ False

Решение на нашем сайте.

#задача #coding
Топ. Как проверить IP-адрес в Python

В мире сетевых приложений и программирования правильная обработка и проверка IP-адресов играет ключевую роль. В этой статье мы покажем два способа, как проверить IP-адрес с использованием языка Python: при помощи модулей socket и ipaddress.

#топ #модули
Задача на логику. Что в коробках?

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

И вот маркирующая машина сломалась. В итоге перед вами три коробки с фруктовыми чипсами: в одной — яблочные, в другой — грушевые, а в третьей — микс из яблочных и грушевых. Только вот коробки уже закрыты, а этикетки точно не совпадают с содержимым!

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

Сможете ли вы при таких условиях переклеить все этикетки, чтобы товар был промаркирован правильно?

Решение тут. Просьба потратить хотя бы 10 минут перед тем как читать решение.

#логическаязадача
Функции. Ленивые вычисления в Python

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

#функции
Задача для новичков

Напишите функцию intersection(), которая принимает два числовых массива. Данная функция должна вернуть список, состоящий из элементов, которые есть в каждом массиве, поданном на вход. Каждый элемент в результирующем списке должен быть уникальным, порядок элементов в нем не имеет значения.

Примеры работы данной функции:

intersection([4,9,5], [9,4,9,8,4]) --> [9, 4]
intersection([1,2,2,1], [2,2]) --> [2]

Свои варианты пишите в комментариях! Решение - сегодня вечером.

#задача #coding
Ответ к предыдущей задаче для новичков

def intersection(nums1, nums2) :
return list(set(nums1) & set(nums2))

#задача #coding
Машинное обучение. Развертывание ML-модели на AWS Lambda

В этом руководстве мы рассмотрим, как развернуть модель машинного обучения (ML) на AWS Lambda с помощью Serverless Framework и выполнить ее с помощью Boto3. Мы также создадим CI/CD-конвейер с помощью GitHub Actions для автоматизации процесса развертывания и запуска сквозных тестов.

Книги по ML - @maschinelearning

#ml