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

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

@aldrson
Download Telegram
Tips & Tricks. Как удалить ключ из словаря в Python

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

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

#tipsandtricks
Задача на логику. Слепые игры

Ты сидишь в помещении, где царит полная темнота, а посередине лежит доска. На ней размещено 50 карт, среди которых 10 лежат рубашкой вверх, а 40 карт — рубашкой книзу.

Задача состоит в том, чтобы разделить этот набор из 50 карт на 2 группы (необязательно одного размера) таким образом, чтоб в обеих кучах находилось одно и то же количество карт рубашкой вверх. Как это сделать?

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

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

В этой статье:
- нелокальная переменная во вложенной функции;
- определение замыкания;
- когда мы имеем дело с замыканием;
- когда стоит использовать замыкания.

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

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

Примеры:

lexicalOrder(13) --> [1, 10, 11, 12, 13, 2, 3, 4, 5, 6, 7, 8, 9]
lexicalOrder(2) --> [1, 2]

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

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

def lexicalOrder(n: int) -> list[int]:
return [int(i) for i in sorted(str(i) for i in range(1, n + 1))]

#задача #coding
Топ. Удаление дубликатов из связного списка в Python

Разбираем задачу с собеседования и пишем код для удаления дубликатов из связного списка.

#списки #словари
Задача с кодом. Счастливая семерка

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

Примечания:
- В списке всегда будут только числа.
- Естественно, если в списке меньше трех элементов, функция должна вернуть False.

Примеры:
lucky_seven([2, 4, 3, 8, 9, 1]) ➞ True
lucky_seven([1, 2, 3, 4, 5, 6, 7, 8, 9, 10]) ➞ True
lucky_seven([0, 0, 0, 2, 3]) ➞ False
# Нельзя повторять одно число дважды, т.е. вариант 2 + 2 + 3 = 7 невозможен.
lucky_seven([4, 3]) ➞ False
# Нужны три разных числа.

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

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

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

#tipsandtricks
Машинное обучение. Учебник по Pandas для начинающих

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

Книги по ML - @maschinelearning

#ml
Задача на логику. Ищем кошку

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

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

#логическаязадача
Тест. Операторы и выражения

Операторы и выражения в Python — это основы основ. Такие вещи, как отличие == от is, каждый программист обязан знать на «отлично»! Проверьте, знаете ли их вы!

#тест
Топ. PEP 8: нейминг и размещение кода

Разбираем конкретные рекомендации по оформлению кода на Python. Мы рассмотрим, как выбирать имена, как делать вертикальные и горизонтальные отступы в коде, как переносить строки, где ставить закрывающие скобки.

#топ
Задача с кодом. Вывод уникальных элементов списка

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

Примеры:
return_unique([1, 9, 8, 8, 7, 6, 1, 6]) ➞ [9, 7]
return_unique([5, 5, 2, 4, 4, 4, 9, 9, 9, 1]) ➞ [2, 1]
return_unique([9, 5, 6, 8, 7, 7, 1, 1, 1, 1, 1, 9, 8]) ➞ [5, 6]

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

#задача #coding
Tips & Tricks. Сохраняем параметры слайсинга для последующего использования

Рассказываем, что делать, когда в одной программе необходимо выполнять слайсинг несколько раз.

#tipsandtricks #списки
Задача на логику. Фальшивая монета

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

Однажды вас снова привели к королю. Он был еще злее, чем обычно: кто-то из его 12 подданных — фальшивомонетчик, заплативший налог ненастоящей монетой. Если вы определите фальшивку, вас освободят.

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

У вас есть весы. Король по милости своей разрешил вам произвести 3 взвешивания. Также у вас есть ваш верный карандаш.

Сможете ли вы обнаружить подделку?

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

#логическаязадача
Топ. Преобразование итераций строк и чисел с помощью map()

В этой статье:

- преобразование итераций строк (использование методов str, удаление знаков препинания, реализация алгоритма шифрования Цезаря)

- преобразование итераций чисел (использование математических операций, преобразование температур, преобразование строк в числа)

#строки #функции
#задача
Пишите ваши ответы в комментариях;)
Тест. Работа с функциями в Python

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

Проверьте, насколько хорошо вы умеете писать (и читать!) функции: пройдите тест из 10 вопросов!

#тест
Ответ к предыдущей задачке - 14.

#задача
Задача с кодом. Поменять местами первый и последний элемент списка

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

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

#задача #coding
Tips & Tricks. Проверка нескольких условий

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

#tipsandtricks