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

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

@aldrson
Download Telegram
Задача на логику. Недоверчивый рабочий и золотая монета

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

У фермера была золотая монета царских времен, доставшаяся от прадеда, и он предложил оплатить всю работу этой монетой. Спец по колодцам был недоверчивый и захотел получать плату ежедневно. Он также был не шибко умный и потому предложил распилить монетку на 7 равных частей (что лишало его шанса продать монету нумизматам). Фермер прикинул, что если имеющимся инструментом пилить на 7 частей, то от монеты ничего не останется. Но два разреза сделать все же можно.

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

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

#логическаязадача
🔥 Приглашаем на бесплатный открытый урок!

Тема: Чистая архитектура в Python

🎙 На открытом уроке Станислав Ступников — руководитель отдела разработки в VK — расскажет о чистой архитектуре в Python.

Чистая архитектура — это концепция построения долгоживущих приложений, которые должны быть легко расширяемыми, тестируемыми и не зависящими от деталей реализации. На практическом занятии мы разберёмся, как применять эти принципы на примере условного Flask-приложения.

Когда: 24 апреля в 20:00 мск.

Где: онлайн.

Занятие пройдёт в рамках подготовки к старту курса «Python Developer. Professional».

Доступна рассрочка на обучение!

👉 Присоединяйтесь, чтобы узнать больше о чистой архитектуре и Python-разработке: https://otus.pw/mXQK/

Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576
Please open Telegram to view this post
VIEW IN TELEGRAM
Топ. Ответ «да/нет» в пользовательском вводе в Python

При написании интерактивных скриптов на Python часто возникает необходимость спросить у пользователя, хочет ли он продолжать или согласен ли он с условиями. То есть нам нужно задать вопрос, предполагающий ответ типа «да/нет», и обработать пользовательский ввод. Давайте посмотрим, как это делается.

#топ
Тест. Методы множеств

Умеете ли вы применять методы множеств в Python ? Пройдите тест из 10 вопросов и проверьте!

#тест
🐍 Приглашаем вас на бесплатный открытый урок курса «Python Developer»!

Тема: «Параллельное программирование в Python».

Дата и время: 22 апреля, 20:00 (МСК).

Спикер: Дмитрий Панкрашов, Middle Python Developer в крупной российской BigTech-компании.

На занятии мы обсудим средства для распараллеливания программ на Python: процессы, потоки, asyncio. Поговорим о том, какие именно средства лучше подходят для решения конкретных задач. Обсудим наиболее сложные моменты в параллельном программировании.

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

Доступна рассрочка на обучение!

Будем рады видеть вас на вебинаре курса «Python Developer»!

👉 Регистрация на урок по ссылке: https://vk.cc/cwl9cP

Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576, www.otus.ru
Please open Telegram to view this post
VIEW IN TELEGRAM
Задача с кодом. Число, которое больше A и делится на B

Напишите функцию, которая будет принимать два числа: a и b. Она должна возвращать следующее число, которое будет больше a и b и без остатка делиться на b.

Примечание: a всегда будет больше, чем b.

Примеры:

divisible_by_b(17, 8) ➞ 24
divisible_by_b(98, 3) ➞ 99
divisible_by_b(14, 11) ➞ 22

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

#задача #coding
Tips & Tricks. 5 интересных вариантов использования метаклассов в Python

Умение использовать метаклассы многими воспринимается как наличие черного пояса Python. Эта статья покажет вам 5 практических способов применения метаклассов.

#tipsandtricks
PythonBooksRu - канал для скачивания Python книг на русском языке.

Что в нашем канале:

1. Книги по питону, которые помогут вам пройти собеседование на позицию Python Developer.

2. Все книги на русском языке

3. Все книги можно скачать в 2 клика

4. Всё, никакой другой воды.

Подписывайтесь и качайте книги: @pythonknigiru
Задача на логику. Сколько задач в таск-трекере?

В таск-трекере есть некоторое количество задач. Если разбросать их все на 4 разработчиков, то останется еще 3 таски. Если делить на троих или на пятерых — останется 2 таски.

Сколько всего задач в трекере?

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

#логическаязадача
Топ. БНФ-нотация в документации Python

Читая документацию Python, вы могли встретить фрагменты БНФ-нотации (форма Бэкуса-Наура, англ. BNF Notation), которые выглядят примерно так:

name      ::= lc_letter (lc_letter | "_")*
lc_letter ::= "a"..."z"


Что означает весь этот странный код? Как это может помочь вам в понимании концепций Python? Как читать и интерпретировать эту нотацию?

Эта статья познакомит вас с основами БНФ-нотации Python. Вы узнаете, как ее использовать для глубокого понимания синтаксиса и грамматики языка.

#топ
Задача для новичков

Напишите функцию findGreatestLetter(), которая получает на вход строку, состаящую из английских букв. Эта функция должна вывести букву, которая встречается в строке как в верхнем, так и в нижнем регистре. (Вывести ее нужно в верхнем).

Если таких букв несколько, то надо вывести ту, которая больше в лексикографическом смысле (b > a например). Если такой буквы нет, то следует вывести пустую строку.

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

findGreatestLetter("arRAzFif") --> 'R'
findGreatestLetter("AbCdEfGhIjK") --> ''

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

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

def findGreatestLetter(s):
return max([letter.upper() for letter in set(s) if letter.islower() and letter.upper() in s], default="")

#задача #coding
Задача с кодом. Множитель списков

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

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

Примеры:

multiply([4, 5]) 
➞ [[4, 4], [5, 5]]

multiply(["*", "%", "$"])
➞ [["*", "*", "*"], ["%", "%", "%"], ["$", "$", "$"]]

multiply(["A", "B", "C", "D", "E"])
➞ [["A", "A", "A", "A", "A"], ["B", "B", "B", "B", "B"], ["C", "C", "C", "C", "C"], ["D", "D", "D", "D", "D"], ["E", "E", "E", "E", "E"]]

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

#задача #coding
Tips & Tricks. Сколько времени занимает работа вашей функции?

При помощи модуля time можно узнать, сколько времени необходимо для выполнения кода. Пример - в заметке.

#tipsandtricks #модули
Задача на логику. 99 мешков фальшивых монет

Есть 100 мешков с монетами. Известно, что в одном из них — настоящее золото, а в остальных — фальшивые монеты. На вид монеты совершенно одинаковы (на вкус и запах — тоже).

Также известно, что любая фальшивая монета весит ровно 1 унцию, а любая настоящая — 1,01 унции.

У вас есть весы (точные, показывающие вес). На них можно взвесить хоть все 100 мешков с монетами одновременно. Но вам доступно только одно взвешивание.

Как определить, в каком мешке золото?

Подсказка: мешки можно помечать, а также брать из них любое количество монет.

Решение тут.

#логическаязадача
Задача с кодом. Пишем функцию для «тупого добавления»

Условие: Создайте функцию, которая принимает два параметра. Если оба параметра — строки, то сложите их математически, если оба — integer, тогда сконкатенируйте их. Если параметры разного типа — верните None.

Примеры:
stupid_addition(1, 2) ➞ "12" 
stupid_addition("1", "2") ➞ 3
stupid_addition("1", 2) ➞ None

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

#задача #coding
Строки. Как напечатать табуляцию в Python

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

#строки
Знаем, что тут сидят серьезные программисты, но если вдруг кто-то интересуется Бизнес Анализом - милости просим.

Бизнес Аналитик IT - канал о жизненном цикле разработки ПО глазами бизнес аналитика.

На канале вы найдете:
- теоретический материал
- интересные статьи
- профессиональную литературу
- полезные шпаргалки
- вопросы с собеседований
- опросы.

Подпишись и пройди наш тест для начинающего бизнес аналитика.
Тест. Битовые операции Python

Хорошо ли вы понимаете битовые операции? Пройдите тест из 10 вопросов и проверьте!

#тест
Задача с кодом. Скользящие числа

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

Примеры:

is_slidey(123454321) ➞ True
is_slidey(54345) ➞ True
is_slidey(987654321) ➞ True
is_slidey(1123) ➞ False
is_slidey(1357) ➞ False
is_slidey(1) ➞ True

Обратите внимание на примеры 4 и 5. Если в числе идут подряд одинаковые цифры или какая-то цифра в ряду пропущена, такое число мы не считаем скользящим.

Если число записывается одной цифрой, оно считается скользящим.

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

#задача #coding
Tips & Tricks. Подсчет наиболее часто встречающихся элементов в итерируемом объекте

Показываем, как помощью инструмента Counter из модуля collections узнать, какие элементы итерируемого объекта встречаются чаще всего, и сколько раз.

#tipsandtricks #списки #строки #модули