Перейти к содержанию

Расширенные аргументы функции

Задание 1. Относительные оценки


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

Пример:

relative_mark(100, 90, 80, 100, John=80, Oxana=90)
# {'John': -10, 'Oxana': 0}

Загрузка тренажера...

Задание 2. Сшиваем кортежи


Встроенная функция 'zip' позволяет "сшивать" элементы с одинаковыми индексами в итерируемых объектах в кортежи, упакованные в особый генератор.

print(*zip((1, 2), {3, 4}, [5, 6, 7]))
# (1, 3, 5) (2, 4, 6)

Создайте функцию sorted_zip, которая сортирует переданные в нее итерируемые объекты перед сшиванием. Если булев аргумент reverse имеет значение True (по умолчанию False), объекты должны быть расположены по убыванию. Опциональный параметр length - максимальное количество возвращаемых кортежей.

Пример:

sorted_zip((3, 1, 2), (5, 6, 4))
# (1, 4)
# (2, 5)
# (3, 6)
sorted_zip((3, 1, 2), (5, 6, 4), reverse=True) 
# (3, 6)
# (2, 5)
# (1, 4)
sorted_zip((3, 1, 2), (5, 6, 4), length=2)
# (1, 4)
# (2, 5)

Загрузка тренажера...

Проверка

Загрузка тренажера...