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

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

@aldrson
Download Telegram
Топ. Конструкция match-case в Python

Начиная с версии 3.10 в языке Python наконец-то появилась конструкция switch-case, которая называется match-case.

С помощью выражения match-case можно избавиться от довольно громоздких цепочек if-elif-else.

#топ
Задача на логику. Градусы между стрелками

На часах 3 часа 15 минут, сколько градусов между стрелками?

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

#логическаязадача
Ответ к задаче "Градусы между стрелками"

1 час = 12 пятиминуток,
1 час = 360 градусов
одна пятиминутка — 360 / 12 = 30 градусов.

30 градусов разделить на 4 получается 7.5 градусов, это и есть угол между стрелками.

#логическаязадача
Задачка для начинающих

Напишите программу для нахождения трех наиболее часто встречающихся символов в тексте. Строку получите от пользователя. Выведите сами символы и их количество в тексте.

Например, пользователь ввел “lkseropewdssafsdfafkpwe”. Ожидаемый вывод:

В этой строке чаще всего встречаются следующие 3 символа:
[('s', 4), ('e', 3), ('f', 3)]

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

#coding #beginner
Тест. Переменные и их свойства

Проверьте, хорошо ли вы понимаете суть переменных в Python.

#тест
Задачка для начинающих. Ответ

from collections import Counter

s = str(input("Введите строку: "))
print("В этой строке чаще всего встречаются следующие 3 символа:")
print(Counter(s).most_common(3))

#coding #beginner
Задача с кодом. Лишняя функция

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

Примеры:

f1 = redundant("apple")
f1() ➞ "apple"

f2 = redundant("pear")
f2() ➞ "pear"

f3 = redundant("")
f3() ➞ ""

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

#задача #coding
Задача на логику. Фальшивомонетчица

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

Вопрос: на какую сумму в общем итоге пострадал лавочник?

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

#логическаязадача
Ответ к задаче "Фальшивомонетчица"

Лавочник пострадал на 5 рублей.

#логическаязадача
Задачка для начинающих

Напишите программу для удаления всех элементов из заданного множества.

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

#coding #beginner
Задачка для начинающих. Ответ

def remove_all_elements(num_set):
while num_set:
num_set.pop()
return num_set


num_set = set([0, 1, 3, 4, 5])
print("Исходное множество:")
print(num_set)
print("\nПосле удаления всех элементов:")
print(remove_all_elements(num_set))

#coding #beginner
Задача с кодом. Кирпич

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

Примечания:

- Кирпич можно поворачивать к отверстию любой стороной
- Считается, что кирпич можно вставить в отверстие, если его размеры равны размеру отверстия или меньше их
- Кирпич вставляется ровно, нельзя поставить его на ребро

Примеры:

does_brick_fit(1, 1, 1, 1, 1) ➞ True
does_brick_fit(1, 2, 1, 1, 1) ➞ True
does_brick_fit(1, 2, 2, 1, 1) ➞ False

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

#задача #coding
Задача на логику. Фокус с пятью картами

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

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

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

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

#логическаязадача
Задачка для начинающих

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

Исходный список словарей:
[{'make': 'Nokia', 'model': 216, 'color': 'Black'}, {'make': 'Mi Max', 'model': '2', 'color': 'Gold'}, {'make': 'Samsung', 'model': 7, 'color': 'Blue'}]

Отсортированный список словарей:
[{'make': 'Nokia', 'model': 216, 'color': 'Black'}, {'make': 'Samsung', 'model': 7, 'color': 'Blue'}, {'make': 'Mi Max', 'model': '2', 'color': 'Gold'}]


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

#coding #beginner
Тест на знание строк и символьного типа

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

#тест
Топ-10 книг для продвинутых питонистов

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

#книги #ml

Книги по ML - @maschinelearning
Задачка для начинающих. Ответ

models = [{'make': 'Nokia', 'model': 216, 'color': 'Black'},
{'make': 'Mi Max', 'model': '2', 'color': 'Gold'},
{'make': 'Samsung', 'model': 7, 'color': 'Blue'}]
print("Исходный список словарей:")
print(models)

sorted_models = sorted(models, key=lambda x: x['color'])
print("\nОтсортированный список словарей:")
print(sorted_models)

#coding #beginner
Задача с кодом. Наибольшее абсолютное значение

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

Например, если передан список [1, 2, 3, 4, 0, 0, -3, -2], функция вернет 10, потому что:
- сумма положительных чисел = 1 + 2 + 3 + 4 = 10
- сумма отрицательных чисел = (-3) + (-2) = -5
- количество нулей = 2
- 10 > 5 и 10 > 2

Исходим из того, что пустых списков не будет, а числа всегда будут целыми.

Примеры:

major_sum([1, 2, 3, 4, 0, 0, -3, -2]) ➞ 10
major_sum([-4, -8, -12, -3, 4, 7, 1, 3, 0, 0, 0, 0]) ➞ -27
major_sum([0, 0, 0, 0, 0, 1, 2, -3]) ➞ 5
# Потому что -3 < 1+2 < 5
# (5 - количество нулей)

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

#задача #coding
Задача на логику. Сколько лет девочкам?

У Сергея три дочери. Его друг Александр, пришедший в гости, хочет узнать, сколько им лет. Сергей (вот затейник!) не отвечает прямо, а дает подсказки, чтоб Александр не расслаблялся и сам считал.

1. “Произведение возрастов моих дочерей — 72”.
Александр подумал и ответил, что информации маловато.

2. “Сумма их возрастов — номер моего дома”.
Александр вышел, глянул на номер и ответил, что информации по-прежнему не хватает.

3. “Старшая из моих дочерей любит клубничное мороженое”.
Тут-то Александр, конечно, догадался, сколько лет дочерям Сергея. А вы?

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

#логическаязадача
Ответ к задаче "Сколько лет девочкам?"

Возраст дочерей Сергея — 3, 3 и 8 лет.

#логическаязадача
Задачка для начинающих

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

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

#coding #beginner