Top.Mail.Ru
Ответы

Задача на пайтон

Гоблины косолапой рысью высыпали на лужайку и выстроились перед О'Тулом, ожидая распоряжений.

– У меня для вас много работы! – объявил он. – Для начала идите к мосту и скажите этим троллям, чтобы они не смели заклятия накладывать. Скажите им, что это последнее предупреждение. Если они снова примутся за свое, мы разнесем тот мост по камушку и каждый мшистый камень укатим далеко от других, так что вновь тот мост не встанет никогда. И пусть снимут заклятие вот с этого упавшего помела, чтобы оно летало как новое!

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

Функция warning() принимает произвольное число позиционных аргументов и произвольное количество именованных параметров из набора:

words – строка состоит ровно из указанного в значении количества слов;

no_sub – в строке нет указанной подстроки в любом регистре;

ends – строка заканчивается на букву, если значение 0, или не на букву, если любое другое значение.

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

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

Пример 1

Ввод

messages = [

"go", "tell them", "cast spells",

"dare,", "we'll drive away", "we'll smash9"

]

params = {

"words": 2,

"no_sub": "lL",

"ends": 8

}

print(warning(*messages, **params))

Вывод

{

"no_sub": "go",

"words": "we'll smash9",

"ends": "we'll smash9"

}

Пример 2

Ввод

messages = [

"And let them remove", "the spell from this",

"fallen broomstick", "so that it flies",

"like new!"

]

params = {

"words": 5,

"ends": 0

}

print(warning(*messages, **params))

Вывод

{

"ends": "the spell from this"

}

По дате
По рейтингу
Аватар пользователя
Гуру

я нечего не понял