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

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

@aldrson
Download Telegram
Модули. Как получить текущую директорию в Python

Многие программы на Python нуждаются в навигации по файловой системе для чтения и записи файлов. При этом частой операцией является получение текущего каталога.

#модули #основы
Задача с кодом. Самое длинное слово

Напишите функцию, которая будет находить самое длинное слово в предложении.

Если будет найдено два и больше слов одинаковой длины, нужно вернуть первое из них.

Небуквенные символы (апостроф, точка, запятая и т. п.) считаются частью слова, к которому прилегают.

Примеры

longest_word("Margaret's toy is a pretty doll.") 
➞ "Margaret's"

longest_word("A thing of beauty is a joy forever.")
➞ "forever."

longest_word("Forgetfulness is by all means powerless!")
➞ "Forgetfulness"

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

#задача #coding
Задача на логику. Пилюли

У вас есть две баночки с пилюлями, маркированные "А" и "В". В день вам нужно съесть по одной пилюле из каждой баночки, если же вы съедите больше одной пилюли, то умрете.

Однажды вы взяли одну пилюлю из баночки "А", а когда стали вытряхивать пилюлю из банки "В", случайно выпало две штуки. Теперь у вас на ладони лежат три пилюли, совершенно неразличимые по внешнему виду. Как с наименьшими потерями выйти из этой ситуации?

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

#логическаязадача
Задача с кодом. Сложное упорядочивание

Упорядочивание слов в ступенчатом лексикографическом порядке происходит так:

1. Сперва слова упорядочиваются по длине
2. Затем слова одного размера упорядочиваются в словарном порядке (по алфавиту).

Например:

- «tray» < «trapped», потому что «tray» имеет длину 4, а «trapped» - 7
- «trap» < «tray», потому что у обоих слов длина 4, но «trap» идет перед «tray» в словаре.

Задание:

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

Примеры:

make_grlex(["small", "big"]) 
➞ ["big", "small"]

make_grlex(["cat", "ran", "for", "the", "rat"])
➞ ["cat", "for", "ran", "rat", "the"]

make_grlex(["this", "is", "a", "small", "test"])
➞ ["a", "is", "test", "this", "small"]

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

#задача #coding
Tips & Tricks. Как удалить None из списка в Python

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

#tipsandtricks #списки
Задача на логику. Разработчицы из компании «ThreeWayLand»

Вы — в IT-компании «ThreeWayLand». Здесь, как вам известно, фронтендеры всегда говорят правду, бэкендеры всегда лгут, а менеджеры — по настроению.

Возле кофемашины вы встречаете трех девушек. Среди них точно есть фронтендер, бэкендер и менеджер, но кто есть кто вы не знаете, а узнать бы хотелось.

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

Что можно спросить, чтобы точно определить специализацию всех трех?

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

#логическаязадача
Основы. Как исправить ошибку «’builtin_function_or_method’ object is not subscriptable» в Python

Функции Python — это вызываемые объекты. Это означает, что для выполнения кода, определенного в функции, мы можем вызвать ее, поставив круглые скобки после имени функции. А вот использование квадратных скобок вместо круглых приводит к ошибке.

#основы #функции
Тест. Множества (уровень — средний)

Множество в Python — «контейнер», содержащий не повторяющиеся элементы в случайном порядке.

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

#тест
Топ. Как вручную установить пакет в Python

Большинство пакетов в Python сейчас спроектированы так, чтобы быть совместимыми с менеджером пакетов pip. Но что если у вас есть пакеты, несовместимые с pip, и вам нужно установить пакет вручную? Сегодня мы разберем, как это делается.

#топ
Задача с кодом. Переворот

Число 6090609 имеет особенность: если его перевернуть вверх ногами (т. е. развернуть на 180 градусов), вы получите то же самое число — 6090609

Напишите функцию, которая будет принимать строку из цифр 0, 6, 9 и определять, будет ли образованное ими число после переворота тем же самым числом.

Примеры:

same_upsidedown("6090609") ➞ True

same_upsidedown("9669") ➞ False
# При перевороте превращается в 6996

same_upsidedown("69069069") ➞ True

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

#задача #coding
Tips & Tricks. Забудьте об использовании print() для отладки в Python

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

#tipsandtricks #модули
🐞QaRocks — всё о тестировании ПО

Что у нас есть:
— уникальные переводы англоязычных туториалов
полный QA Учебник роадмап, как и что учить новичку.
еженедельные дайджесты с новостями и туториалами
тесты, которые должен пройти каждый тестировщик
подборки QA книг
— регулярные холиварные обсуждения — вот, например, подписчики рассказывают, какие курсы проходили перед началом работы;

Также у нас Чат с вакансиями, где уже более 100 работодателей постят каждый день свои вакансии по QA

Подписывайся на QaRocks и узнай уже наконец разницу между тест-планом и баг-репортом 😇
Задача на логику. Фокус с пятью картами

Фокусник берет колоду из 52 карт и отдает ее зрителям. Зрители выбирают (каким угодно способом) любые 5 карт и отдают их помощнику фокусника. Тот смотрит на карты и называет фокуснику 4 из них. В ответ фокусник называет пятую.

Кроме мастей и значений карт, фокусник вроде бы не получает никакой дополнительной информации (помощник говорит ровным голосом, без пауз и т.д.).

Каким образом фокуснику удается "угадать" пятую карту?

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

#логическаязадача
ООП. Как писать модульные тесты для методов экземпляра в Python

Давайте разберем, как настроить модульные тесты для экземпляров классов. Мы напишем тесты для проверки функциональности класса Book. Он имеет такие атрибуты, как title, author, pages, price, discount.

#ооп #тесты
Тест. Модуль random в Python

Модуль random в Python предоставляет функции для генерации случайных чисел, букв, случайного выбора элементов последовательности. Проверьте, насколько хорошо вы умеете применять все это на практике — пройдите тест!

#тест
@pythonknigiru - тут можете скачать книги на русском языке.
Функции. Рекурсивный метод нахождения чисел Фибоначчи

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

#функции #рекурсия
Задача с кодом. Расстояние между точками

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

Координаты будут передаваться в функцию в виде строки из четырех чисел через запятую:

"x1,y1,x2,y2", где x1,y1 — координаты первой точки, а x2,y2 — координаты второй.

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

Примеры:
shortestDistance("1,1,2,1") ➞ 1
shortestDistance("1,1,3,1") ➞ 2
shortestDistance("-5,1,3,1") ➞ 8
shortestDistance("-5,2,3,1") ➞ 8.06

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

#задача #coding
Tips & Tricks. Приёмы для ускорения кода на Python

Для ускорения кода на Python программисты могут использовать много приемов. Мы собрали несколько самых простых и при этом самых эффективных из них.

#tipsandtricks
Задача на логику. Угадай код замка и выберись из темницы

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

Злодеи согласны отпустить одного из вас — если он решит загадку и угадает комбинацию для кодового замка. А двое остальных наутро познакомятся с чудовищами…

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

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

Заре будут даны три подсказки. Но если она угадает неправильно или скажет что-нибудь вслух, ее бросят обратно в темницу.

Голос дал первую подсказку: произведение этих трех чисел равно 36.

Когда Зара жестом попросила о второй подсказке, ей было сказано, что сумма этих трех чисел такая же, как номер прохода, через который она пришла. Зара, конечно, знала этот номер, но вы-то — нет!

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

Голос сказал, что самое большое число встречается в комбинации только один раз.

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

Сможете определить нужную комбинацию и тоже сбежать?

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

#логическаязадача
ООП. Классы в Python

Кратко разбираем, что такое классы и как их создавать.

#ооп