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
Задачка для начинающих

Напишите программу для переворота строки.

Пример: "1234abcd" → "dcba4321"

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

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

def string_reverse(str1):
rstr1 = ''
index = len(str1)
while index > 0:
rstr1 += str1[index - 1]
index = index - 1
return rstr1
print(string_reverse('1234abcd'))

#coding #beginner
Задача с кодом. Негатив

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

Пример:

reverse_image([
[1, 0, 0],
[0, 1, 0],
[0, 0, 1]
])
➞ [
[0, 1, 1],
[1, 0, 1],
[1, 1, 0]
]

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

#задача #coding
Топ. REST API на Python с Flask, Connexion и SQLAlchemy

Первая часть серии из трех статей. В этой серии мы создадим REST API на базе веб-фреймворка Flask.

Мы сделаем базовый проект Flask, добавим к нему конечные точки и подключим к базе данных SQLite. Далее мы протестируем наш проект при помощи документации API от Swagger UI , которую создадим по ходу дела.

#топ
Задача на логику. Сколько пятерок на доске?

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

Сколько написанных на доске чисел содержат в своей записи цифру 5?

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

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

12345 23456 34567 45678 56789

и обратные:

98765 87654 76543 65432 54321

и одно 55555

Итого: 11

#логическаязадача
Тест. Работа с методами в Python

Методы, наверное, самая важная часть в современных языках программирования. И Python — не исключение. Они используются везде и при этом выглядят по-разному. Проверьте, насколько хорошо вы в них разбираетесь: пройдите тест из 10 вопросов!

#тест
Задача с кодом. Прибыль

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

У вас есть словарь, содержащий себестоимость единицы товара (cost_price, в долларах), продажную цену (sell_price, в долларах) и начальное количество товара (inventory, в штуках). Верните прибыль, округлив сумму до ближайшего целого числа.

Примечания:

- Подсчитываем потенциальную прибыль от продажи всего товара
- Прибыль = продажная цена — себестоимость

Примеры:

profit({
"cost_price": 32.67,
"sell_price": 45.00,
"inventory": 1200
}) ➞ 14796

profit({
"cost_price": 225.89,
"sell_price": 550.00,
"inventory": 100
}) ➞ 32411

profit({
"cost_price": 2.77,
"sell_price": 7.95,
"inventory": 8500
}) ➞ 44030

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

#задача #coding
Задача на логику. Бросаем яйца

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

При проведении эксперимента вы исходите из следующих допущений:

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

Для проведения экспериментов вы потратились и купили аж 2 яйца.

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

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

#логическаязадача
Ответ к задаче "Бросаем яйца"

При оптимизированном решении в самом худшем случае потребуется 14 бросков. При бинарном поиске - 50.

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

Напишите программу для перевода значения температуры из градусов по Цельсию в градусы по Фаренгейту и обратно.

Формула: c/5 = f-32/9, где c - градусы по Цельсию, f - градусы по Фаренгейту.

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

#coding #beginner
Тест. Списки и кортежи в Python

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

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

temp = input("Введите температуру (например, 45F, 102C и т.п.): ")
degree = int(temp[:-1])
i_convention = temp[-1]

if i_convention.upper() == "C":
result = int(round((9 * degree) / 5 + 32))
o_convention = "по Фаренгейту"
elif i_convention.upper() == "F":
result = int(round((degree - 32) * 5 / 9))
o_convention = "по Цельсию"
else:
print("Температура введена в неверном формате.")
quit()
print("Температура", o_convention, "-", result, "градусов.")

#coding #beginner
Задача с кодом. Самое большое число в списке

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

Примеры:

find_highest([-1, 3, 5, 6, 99, 12, 2]) ➞ 99
find_highest([0, 12, 4, 87]) ➞ 87
find_highest([8]) ➞ 8

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

#задача #coding
Если нужны книги на русском языке по Python - подпишитесь и качайте в нашем канале @pythonknigi_backup
Топ. Конструкция 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