Pythonist.ru - образование по питону
25.2K subscribers
108 photos
1 video
940 links
Pythonist.ru - помощь в подготовке к собеседованию на позицию Python Developer.
Реклама: @anothertechrock

Контент канала:
1. Разбор вопросов с собеседований
2. Книги
3. Задачи на логику
4. Проект Эйлера
5. Видео
6. Тесты по Python 3

@aldrson
Download Telegram
Тест. Базовые типы Python

Проверьте, насколько хорошо вы знаете базовые типы — строки, числа, встроенные функции. Этот тест будет полезен новичкам, которые только начали изучение языка.

#тест
Модули. Пособие по HTTP-запросам в Python и Web API

В этой статье мы рассмотрим, что такое API и, в частности, REST API. Также мы разберем, что такое HTTP-запросы и какими они бывают. Кроме того, мы рассмотрим основные компоненты библиотеки requests и предоставим несколько примеров кода, которые помогут вам начать работу с ней.

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

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

Примеры:
‘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
Модули. Самоучитель по Python NumPy

NumPy (что означает Numerical Python) — это библиотека, состоящая из объектов многомерных массивов и набора процедур для обработки этих массивов. С помощью NumPy можно выполнять математические и логические операции над массивами. В этом учебном пособии мы расскажем о том, что такое NumPy в Python, о типах данных в NumPy и многом другом.

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

Даны параметры: день, месяц и год. Напишите функцию, которая определяет, существует такая дата или нет. Используйте модуль 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