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

РКН: https://kurl.ru/WPjOT
Download Telegram
Задача с кодом. Сколько чисел?

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

Вложенный список может содержать числа, строки и пустые списки.

Примеры:

count_number([["", 17.2, 5, "edabit"]]) ➞ 2
# 17.2 и 5.

count_number([[[[[2, 14]]], 2, 3, 4]]) ➞ 5
# 2, 14, 2, 3 и 4.

count_number([["number"]]) ➞ 0

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

#задача #coding
3
Задача с кодом. Количество списков внутри списка

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

Примеры:
num_of_sublists([[1, 2, 3]]) ➞ 1
num_of_sublists([[1, 2, 3], [1, 2, 3], [1, 2, 3]]) ➞ 3
num_of_sublists([[1, 2, 3], [1, 2, 3], [1, 2, 3], [1, 2, 3]]) ➞ 4
num_of_sublists([1, 2, 3]) ➞ 0

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

#задача #coding
2
Задача с кодом. Как скоро вы накопите свой первый миллион?

Допустим, вы нашли свою работу мечты. В этой компании любопытная система оплаты: в геометрической прогрессии. За первый месяц вы получаете сумму first_month, но уже в следующем месяце ваша зарплата вырастет в multiplier раз.

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

Предположим, что вы ничего не тратите из зарплаты, пока не накопите больше миллиона.

Примеры:
million_in_month(10, 2) ➞ 17
million_in_month(100, 1.01) ➞ 464

million_in_month(50, 100) ➞ 4
1m = 50
2m= 5050
3m = 505050
4m = 50505050

Примечания:
Не забудьте вернуть результат в месяцах. Накопить нужно больше миллиона (savings > 1000000).

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

#задача #coding
2🤣2👍1
🪙 Задача с кодом. Монетная кооперация

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

Если бросить монетку в аппарат, человек, стоящий за стеной, получит 3 монетки. И наоборот.

Если оба человека будут честно тратить свои монетки, чтобы второй получил прибыль (т.е. делиться, share), оба они будут получать по 2 монетки прибыли по очереди.

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

Задание
Допустим, у каждого человека есть по 3 монетки. Создайте функцию, которая будет высчитывать прибыль обоих людей. На вход функция будет принимать два списка строк. Списки будут представлять поведение этих людей (слова share и/или steal)

Примеры
balances(["share"], ["share"]) ➞ [5, 5]
# Оба человека тратят по монетке и получают по 3.

get_coin_balances(["steal"], ["share"]) ➞ [6, 2]
# Первый человек получает 3 монетки, второй тратит одну.

get_coin_balances(["steal"], ["steal"]) ➞ [3, 3]
# Никто ничего не тратит и не получает, остаются при своих.

get_coin_balances(["share", "share", "share"], ["steal", "share", "steal"]) ➞ [3, 11]

Примечания
- В «минус» никто не уйдет, так что числа всегда будут положительными.
- Слова будут передаваться в нижнем регистре.

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

#задача #coding
Please open Telegram to view this post
VIEW IN TELEGRAM
8
Задача с кодом. Группы из трех букв

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

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

Разбор примера

three_letter_collection("python") ➞ ["hon", "pyt", "tho", "yth"]
# 1-я группа: "hon"
# 2-я группа: "pyt"
# 3-я группа: "tho"
# 4-я группа: "yth"
# Не забудьте отсортировать список!

Другие примеры

three_letter_collection("slap") ➞ ["lap", "sla"]
three_letter_collection("click") ➞ ["cli", "ick", "lic"]
three_letter_collection("cat") ➞ ["cat"]
three_letter_collection("hi") ➞ []

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

#задача #coding
7
👩‍💻 Задача с кодом. Строка: палиндром или нет?

🔵 Условие:
Напишите функцию для проверки, является ли строка палиндромом. Палиндром — это слово или фраза, которые одинаково читаются слева направо и справа налево. Примеры палиндромов — число 101, слово «топот», фраза «А роза упала на лапу Азора».

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

#задача #coding
Please open Telegram to view this post
VIEW IN TELEGRAM
6
👩‍💻 Задача с кодом. Меняем местами имя и фамилию

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

🔵 Примечание: между именем и фамилией будет ровно один пробел.

🔵 Примеры:
name_shuffle("Donald Trump") ➞ "Trump Donald"

name_shuffle("Rosie O'Donnell") ➞ "O'Donnell Rosie"

name_shuffle("Seymour Butts") ➞ "Butts Seymour"


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

#задача #coding
Please open Telegram to view this post
VIEW IN TELEGRAM
👍4🔥3🤬2
👩‍💻 Задача с кодом. Денежный формат

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

🔵 Примечания:
↘️ Нужно обязательно округлять дробную часть числа до сотых. Обратите внимание, что дробная часть числа в денежном формате отделяется точкой, а тысячи разделяются запятыми.
↘️ В функцию могут передаваться как положительные, так и отрицательные числа.

🔵 Примеры:
dolla_dolla_bills(10) ➞ "$10.00"

dolla_dolla_bills(1000000) ➞ "$1,000,000.00"

dolla_dolla_bills(-314159.2653) ➞ "-$314,159.27"

dolla_dolla_bills(-56.99) ➞ "-$56.99"

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

#задача #coding
Please open Telegram to view this post
VIEW IN TELEGRAM
👍43
👩‍💻 Задача с кодом. Дата неделю спустя

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

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

↘️ Функция и принимает, и возвращает строку
↘️ Дата должна иметь формат день/месяц/год
↘️ Если число или месяц обозначаются одной цифрой, перед ней ставим ноль (т.е. 1 января — 01/01).

🔵 Примеры:
week_after("12/03/2020") ➞ "19/03/2020"

week_after("21/12/1989") ➞ "28/12/1989"

week_after("01/01/2000") ➞ "08/01/2000"

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

#задача #coding
Please open Telegram to view this post
VIEW IN TELEGRAM
🥱2👍1
👩‍💻 Задача с кодом. Конкатенация списков

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

🔵 Обратите внимание: конкатенация должна проходить в том порядке, в котором списки переданы.

🔵 Примеры:
concat([1, 2, 3], [4, 5], [6, 7]) 
➞ [1, 2, 3, 4, 5, 6, 7]

concat([1], [2], [3], [4], [5], [6], [7])
➞ [1, 2, 3, 4, 5, 6, 7]

concat([1, 2], [3, 4])
➞ [1, 2, 3, 4]

concat([4, 4, 4, 4, 4])
➞ [4, 4, 4, 4, 4]

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

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

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

🔵 Примечания:
✔️ Порядок сортировки чисел зависит от переданных значений. Если начальное значение больше конечного, то числа в списке должны быть в убывающем порядке.
✔️ Исходим из того, что инпут всегда будет валидным.

🔵 Примеры:
reversible_inclusive_list(1, 5) 
➞ [1, 2, 3, 4, 5]

reversible_inclusive_list(2, 8)
➞ [2, 3, 4, 5, 6, 7, 8]

reversible_inclusive_list(10, 20)
➞ [10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20]

reversible_inclusive_list(24, 17)
➞ [24, 23, 22, 21, 20, 19, 18, 17]

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

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

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

Напишите функцию, которая будет принимать список цветов 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
1
👩‍💻 Задача с кодом. День рождения

Олегу не хочется становиться старше, поэтому он решил праздновать только свое 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
1