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

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

@aldrson
Download Telegram
Задача на логику. Мешочки с монетами

У вас есть 10 мешочков, полных монет. В каждом мешочке бесконечное количество монеток. Но один из мешков полон подделок, и вы не можете вспомнить, какой именно.

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

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

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

#логическаязадача
Алгоритмы. Жадный алгоритм с примерами на Python

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

#алгоритмы
Задача для новичков

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

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

climbStairs(5) —> 8
climbStairs(8) —> 34
climbStairs(35) —> 14930352

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

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

def climbStairs(n: int) -> int:
if n <= 2:
return n

dp = [0] * (n + 1)
dp[1] = 1
dp[2] = 2

for i in range(3, n + 1):
dp[i] = dp[i - 1] + dp[i - 2]

return dp[n]

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

#задача #coding
Функции. Как использовать функцию exit в скриптах Python

Функция exit в Python позволяет в любой момент остановить выполнение скрипта или программы. Это может понадобиться для обработки ошибок, тестирования и отладки, остановки программы при соблюдении каких-то условий.

#функции
Задача с кодом. Фруктовый салат

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

Примеры:

fruit_salad(["apple", "pear", "grapes"])
➞ "apargrapepesple"

# Кусочки:
# ["ap", "ple", "pe", "ar", "gra", "pes"]
# Отсортированные кусочки:
# ["ap", "ar", "gra", "pe", "pes", "ple"]
# Итоговая строка:
# "apargrapepesple"

fruit_salad(["apple", "pear", "grapes"])
➞ "apargrapepesple"

fruit_salad(["raspberries", "mango"])
➞ "erriesmangoraspb"

fruit_salad(["banana"])
➞ "anaban"

Примечания:
- Если название фрукта имеет нечетное число букв, правая часть должна быть больше левой. Например, «apple» делится на «ap» и «ple».
- Все названия фруктов будут в нижнем регистре.

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

#задача #coding
Списки. Как сохранить список Python в CSV формате

Чтобы сохранить список Python в CSV формате, вы можете использовать встроенный модуль csv, разработанный специально для чтения и записи файлов CSV. Другие способы получения того же результата включают установку и использование внешних библиотек Pandas или NumPy.

#списки
Tips & Tricks. Как проверить, содержит ли строка Python другую строку?

В этой статье:
- использование оператора in,
- использование метода find,
- более сложные способы поиска.

#строки #tipsandtricks
Задача на логику. Передача

Если верхнее колесо вращается в направлении, указанном стрелкой, то в каком направлении вращается нижнее колесо?

Пишите свои варианты в комментариях!

#логическаязадача
Модули. Как использовать ChatGPT API для прямого взаимодействия с Colab или Databricks

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

#модули
Тест. Int (уровень — лёгкий)

Целые числа (int) в Python 3 ничем не отличаются от обычных чисел. Они поддерживают набор самых обычных математических операций.

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

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

Напишите отзыв в комментариях.
Задача с кодом. HTML-теги

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

Примеры:

secret("div*2") ➞ "<div></div><div></div>"
secret("p*1") ➞ "<p></p>"
secret("li*3") ➞ "<li></li><li></li><li></li>"

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

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

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

#tipsandtricks
Задача на логику. Бег по эскалатору

Каждая ступенька эскалатора имеет высоту 20 см. Высота эскалатора по вертикали — 6 м. Лента эскалатора продвигается вверх со скоростью полступеньки в секунду.

Представьте, что вы встали на самую нижнюю ступеньку, которая была вровень с полом, и начали бежать вверх по движущемуся эскалатору, пробегая 1 ступеньку в секунду. Сколько шагов вы сделаете, прежде чем доберетесь до следующего этажа? (Примечание: шаг на эскалатор и шаг с него на пол не считаются).

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

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

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

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

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

Например, addDigits(38) --> 3 + 8 = 11 (число состоит из двух цифр, значит складывает дальше) --> 1 + 1 = 2. Таким образом, результат работы функции равен 2.

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

addDigits(355) --> 4
addDigits(2499) --> 6
addDigits(597) --> 3

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

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

def addDigits(num: int) -> int:
if len(str(num)) == 1:
return num
else:
return addDigits(sum(list(int(i) for i in str(num))))

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

#задача #coding