Python вопросы на собеседовании с ответами
7.49K subscribers
4 photos
302 links
Подготовка к собеседованию на Junior Python Developer. В этом канале никакой воды, только вопросы с собеседований и ответы на них.

@aldrson

По вопросам рекламы : @anothertechrock
Download Telegram
#вопрос269

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

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

Примеры:

cars(2, 48, 76) ➞ 0
# 2 колеса, 48 корпусов, 76 человечков
cars(43, 15, 87) ➞ 10
cars(88, 37, 17) ➞ 8
#вопрос270

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

Примеры:

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».
✔️ Все названия фруктов будут в нижнем регистре.
Please open Telegram to view this post
VIEW IN TELEGRAM
#вопрос271

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

Примечания:

✔️ time1 всегда будет начальным временем, а time2 — конечным.
✔️ Если time1 равно time2, верните строку "no time passed" («нисколько времени не прошло»).

Примеры:

hours_passed("3:00 AM", "9:00 AM") ➞ "6 hours"
hours_passed("2:00 PM", "4:00 PM") ➞ "2 hours"
hours_passed("1:00 AM", "3:00 PM") ➞ "14 hours"
Please open Telegram to view this post
VIEW IN TELEGRAM
#вопрос272

Создайте класс, который будет принимать следующие четыре аргумента для каждого отдельного футболиста: name (имя), age (возраст), height (рост), weight (вес). Имя будет передаваться в виде строки, а возраст, рост и вес — в виде целых чисел.

Также создайте три функции для этого класса, которые будут возвращать следующие строки:

get_age() — «name is age age»
get_height() — «name is heightcm»
get_weight() — «name weighs weightkg»

Примеры:

p1 = player("David Jones", 25, 175, 75)

p1.get_age() ➞ "David Jones is age 25"
p1.get_height() ➞ "David Jones is 175cm"
p1.get_weight() ➞ "David Jones weighs 75kg"
#вопрос273

Представьте следующий треугольник:

    1
2 3
4 5 6
7 8 9 10
...


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

Примечание: 1 <= n <= 1000

Примеры:

row_sum(1) ➞ 1
row_sum(2) ➞ 5
row_sum(4) ➞ 34
#вопрос274

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

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

Примечание: месяцы считаем по порядку, 1 = январь.

Примеры:

first_tuesday_of_the_month(1997, 1) ➞ "1997-01-07"

first_tuesday_of_the_month(2021, 2) ➞ "2021-02-02"

first_tuesday_of_the_month(2020, 3) ➞ "2020-03-03"
2
#вопрос275

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

Примеры:

power_of_two(32) ➞ True

power_of_two(1) ➞ True

power_of_two(18) ➞ False
#вопрос276

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

В передаваемом словаре будет как минимум один элемент. Значениями будут целые числа в виде строк.

Примеры:

convert_to_number({ "piano": "200" }) ➞
{ "piano": 200 }

convert_to_number({ "piano": "200", "tv": "300" }) ➞
{ "piano": 200, "tv": 300 }

convert_to_number({ "piano": "200", "tv": "300", "stereo": "400" }) ➞
{ "piano": 200, "tv": 300, "stereo": 400 }
1
#вопрос277

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

✔️ Если num — четное число:

num !! = num (num - 2)(num - 4)(num - 6) ... (4)(2)


✔️ Если num — нечетное число:

num !! = num (num - 2)(num - 4)(num - 6) ... (3)(1)


✔️ Если num = 0 или num = -1, тогда num !! = 1.

Примечания:

✔️ Исходим из того, что num будет больше или равно -1.
✔️ Двойной факториал — не то же самое, что умноженный на 2.
✔️ Попробуйте решить при помощи рекурсии.

Примеры:

double_factorial(0) ➞ 1
double_factorial(2) ➞ 2
double_factorial(9) ➞ 945
# 9*7*5*3*1 = 945
double_factorial(14) ➞ 645120
Please open Telegram to view this post
VIEW IN TELEGRAM
#вопрос278

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

Примечания:

✔️ Списки будут одинаковой длины.
✔️ n может быть отрицательным числом.

Примеры:

circular_shift([1, 2, 3, 4], [3, 4, 1, 2], 2) ➞ True

circular_shift([1, 1], [1, 1], 6) ➞ True

circular_shift([0, 1, 2, 3, 4, 5], [3, 4, 5, 2, 1, 0], 3) ➞ False
Please open Telegram to view this post
VIEW IN TELEGRAM
👍1