Pythonist.ru - образование по питону
25.3K subscribers
259 photos
6 videos
5 files
1.1K links
Pythonist.ru - помощь в подготовке к собеседованию на позицию Python Developer.
Реклама: @anothertechrock

РКН: https://rknn.link/car
Download Telegram
👩‍💻 Задача с кодом. Цветные карандаши

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

Напишите функцию, которая будет принимать список цветов cols и возвращать время (в секундах), необходимое для закрашивания всего паттерна. При этом:

✔️ На смену карандаша уходит 1 секунда.
✔️ На закрашивание квадратика уходит 2 секунды.

🔵 Пример с пояснением:
color_pattern_times(["Red", "Blue", "Red", "Blue", "Red"]) ➞ 14
# Тут 5 цветов. На закрашивание уйдет по 2 с на каждый (2 x 5 = 10).
# Карандаш придется сменить 4 раза, каждая смена займет секунду (1 x 4 = 4).
# 10 + 4 = 14


🔵 Примеры:
color_pattern_times(["Blue"]) ➞ 2

color_pattern_times(["Red", "Yellow", "Green", "Blue"]) ➞ 11

color_pattern_times(["Blue", "Blue", "Blue", "Red", "Red", "Red"]) ➞ 13


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

#задача #coding
Please open Telegram to view this post
VIEW IN TELEGRAM
7
👩‍💻 Задача с кодом. По буквам

Напишите функцию, которая:

✔️ Принимает строку, состоящую из разбитого на отдельные буквы слова и самого слова,
✔️ Проверяет, совпадает ли написанное по буквам слово со словом в конце строки.

🔵 Примечания:

✔️ Слово в конце строки всегда написано правильно.
✔️ Буквы, которые должны образовать слово, написаны в верхнем регистре и отделяются точками. Сверяя образованное ими слово со словом в конце строки, игнорируйте все знаки препинания.

🔵 Примеры:
validate_spelling("C. Y. T. O. P. L. A. S. M. Cytoplasm?")
➞ True

validate_spelling("P. H. A. R. A. O. H. Pharaoh!")
➞ True

validate_spelling("H. A. N. K. E. R. C. H. E. I. F. Handkerchief.")
➞ False


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

#задача #coding
Please open Telegram to view this post
VIEW IN TELEGRAM
👌32
👩‍💻 Задача с кодом. Тайм-трекер в машине

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

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

🔵 Примеры:
car_timer(240) ➞ 4
# Со времени 00:00 прошло 240 минут, текущее время - 04:00
# Сумма цифр на трекере - 0 + 4 + 0 + 0 = 4

car_timer(14) ➞ 5
# Сумма цифр - 0 + 0 + 1 + 4

car_timer(808) ➞ 14


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

#задача #coding
Please open Telegram to view this post
VIEW IN TELEGRAM
2
👩‍💻 Задача с кодом. Самое большое число в списке

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

🔵 Примеры:
find_highest([-1, 3, 5, 6, 99, 12, 2]) ➞ 99

find_highest([0, 12, 4, 87]) ➞ 87
find_highest([8]) ➞ 8


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

#задача #coding
Please open Telegram to view this post
VIEW IN TELEGRAM
3🔥1
👩‍💻 Задача с кодом. Рекурсия: посчитать гласные

Напишите функцию, которая рекурсивно вернет количество гласных в строке.

🔵 Примеры:
vowels("apple") -> 2
vowels("cheesecake") -> 5
vowels("bbb") -> 0
vowels("") -> 0


🔵Примечания:

✔️ Рекурсивная функция вызывает сама себя.
✔️ Все буквы будут в нижнем регистре.
✔️ Для этого задания используем английские гласные: a, e, i, o, u.

⭐️ Решение на нашем сайте

#задача #coding
Please open Telegram to view this post
VIEW IN TELEGRAM
2
👩‍💻 Задача с кодом. Кирпич

Напишите функцию, которая будет принимать размеры кирпича (высоту (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
Please open Telegram to view this post
VIEW IN TELEGRAM
👍4
👩‍💻 Задача с кодом. Валидация подсписков

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

🔵 Примечания:

✔️ Пустой список считаем валидным подмножеством множества чисел второго списка
✔️ В каждом отдельном списке (как во вложенных, так и во втором, обычном списке) числа будут уникальными.

🔵 Примеры:

validate_subsets([[1, 2], [2, 3], [1, 3]], [1, 2, 3])
➞ True

validate_subsets([[1, 2, 3], [2], [3], []], [1, 2, 3])
➞ True

validate_subsets([[1, 2], [2, 3], [1, 4]], [1, 2, 3])
➞ False

validate_subsets([[1, 2, 3, 4]], [1, 2, 3])
➞ False


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

#задача #coding
Please open Telegram to view this post
VIEW IN TELEGRAM
1
👩‍💻 Задача с кодом. От A до Z

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

🔵 Примечания:

✔️ Диапазон будет задаваться двумя буквами с дефисом между ними.
✔️ Обрабатывать ошибки не нужно (при указании диапазона обе буквы будут в одинаковом регистре и располагаться будут в алфавитном порядке).

🔵 Примеры:

gimme_the_letters("a-z") ➞ "abcdefghijklmnopqrstuvwxyz"
gimme_the_letters("h-o") ➞ "hijklmno"
gimme_the_letters("Q-Z") ➞ "QRSTUVWXYZ"
gimme_the_letters("J-J") ➞ "J"


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


#задача #coding
Please open Telegram to view this post
VIEW IN TELEGRAM
2
👩‍💻 Задача с кодом. День рождения

Олегу не хочется становиться старше, поэтому он решил праздновать только свое 20-летие (ну и 21 год тоже, ладно уж). Это возможно, если применить некоторые математические навыки. Нужно просто подобрать подходящее основание числа!

Например, если сейчас Олегу 22 года, это 20 с основанием 11. Аналогично 65 лет — это ровно 21 год с основанием 32. И так далее.

Создайте функцию, которая будет принимать текущий возраст age и возвращать «нужный» возраст (20 лет или 21 год), а также основание числа в том же формате, что в примерах.

🔵 Примеры:

happy_birthday(22) ➞ "Oleg is just 20, in base 11!"

happy_birthday(65) ➞ "Oleg is just 21, in base 32!"

happy_birthday(83) ➞ "Oleg is just 21, in base 41!"


🔵 Примечание: передваемый в функцию возраст всегда будет больше 21.

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

#задача #coding
Please open Telegram to view this post
VIEW IN TELEGRAM
3
👩‍💻 Задача с кодом. Сортировка чисел по их длине

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

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

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

🔵 Примеры:

number_len_sort([1, 54, 1, 2, 463, 2]) 
➞ [1, 1, 2, 2, 54, 463]

number_len_sort([999, 421, 22, 990, 32])
➞ [22, 32, 999, 421, 990]

number_len_sort([9, 8, 7, 6, 5, 4, 31, 2, 1, 3])
➞ [9, 8, 7, 6, 5, 4, 2, 1, 3, 31]

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

#задача #coding
Please open Telegram to view this post
VIEW IN TELEGRAM
2
👩‍💻 Задача с кодом. Снимаем внешние слои

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

🔵 Примечания:

✔️ 2D-сетка всегда имеет форму прямоугольника или квадрата.
✔️ Возвращать нужно именно список списков, за исключением ситуации, когда элементов просто нет. В таком случае нужно вернуть пустой список.

🔵 Примеры:

peel_layer_off([
["a", "b", "c", "d"],
["e", "f", "g", "h"],
["i", "j", "k", "l"],
["m", "n", "o", "p"]
])

➞ [
["f", "g"],
["j", "k"]
]


peel_layer_off([
[1, 2, 3, 4, 5],
[6, 7, 8, 9, 10],
[11, 12, 13, 14, 15],
[16, 17, 18, 19, 20],
[21, 22, 23, 24, 25],
[26, 27, 28, 29, 30],
[31, 32, 33, 34, 35]
])

➞ [
[7, 8, 9],
[12, 13, 14],
[17, 18, 19],
[22, 23, 24],
[27, 28, 29]
]


peel_layer_off([
[True, False, True],
[False, False, True],
[True, True, True]
])

➞ [[False]]


peel_layer_off([
["hello", "world"],
["hello", "world"]
])

➞ []


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

#задача #coding
Please open Telegram to view this post
VIEW IN TELEGRAM
3👍3
👩‍💻 Задача с кодом. Пары букв

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

Например, если a = "bboiizz" и b = "bbuiiz", функция должна вернуть 3, поскольку «bb», «ii», и «iz» встречаются в обеих строках на одинаковых позициях.

🔵 Примеры:

str_match_by2char("yytaazz", "yyjaaz") ➞ 3

str_match_by2char("edabit", "ed") ➞ 1

str_match_by2char("", "") ➞ 0

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

#задача #coding
Please open Telegram to view this post
VIEW IN TELEGRAM
2
👩‍💻 Задача с кодом. Сколько раз придется умножить?

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

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

🔵 Примеры:

multiplication(39) ➞ 3
# Потому что 3 * 9 = 27, 2 * 7 = 14, 1 * 4 = 4, а 4 - однозначное число.

multiplication(999) ➞ 4
# 9 * 9 * 9 = 729, 7 * 2 * 9 = 126, 1 * 2 * 6 = 12, 1 * 2 = 2.

multiplication(4) ➞ 0
# Потому что 4 - однозначное число.

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

#задача #coding
Please open Telegram to view this post
VIEW IN TELEGRAM
3