Перейти на https://www.wordsapi.com/ і скопіювати API response для будь-якого слова на ваш вибір.
word_lookup = <словарь, который вы скопируете>
- Выбирайте какое-нибудь не очень редкое слово, чтобы там были разные атрибуты и несколько значений.
- Для каждой функции, которую вы создадите:
- сохраните результат в какую-то переменную (если функция что-то возвращает)
- выведите результат с каким-то подписями (чтобы не только вы знали, что это означает)
- предусмотрите какое-то сообщение в функции, если в word_lookup нет того атрибута, который вы ищете.
В примерах я буду использовать слово shenanigan.
1. Напишите функцию count_results, которая возвращает сколько было результатов для вашего слова (список word_lookup["results"])
Принимает на вход: словарь word_lookup
Возвращает: целое число - количество результатов
2. Напишите функцию pronunciation, которая
Принимает на вход: словарь word_lookup
Возвращает: "pronunciation" для вашего слова
3. Напишите функцию word_definitions, которая проходит по всем словарям в word_lookup["results"] и печатает определения слова.
Принимает на вход: словарь word_lookup
Возвращает: ничего не возвращает, печатает "definition" для этого слова, каждую с новой строки
4. Напишите функцию most_common_POS, которая проходит по всем словарям в word_lookup["results"], сохраняет все "partOfSpeech" в список, возвращает ту partOfSpeech, которая встречается чаще всего (используйте Counter)
Принимает на вход: словарь word_lookup
Возвращает: partOfSpeech, которая встречается чаще всего
5. Для произвольного списка (можете взять список синонимов вашего слова) напишите лямбда-функцию с map(), чтобы преобразовать список строк из нижнего регистра в верхний.
6. Напишите функцию synonyms, которая проходит по всем словарям в word_lookup["results"] (for цикл), сохраняет все синонимы из "synonyms" в один список (.append или .extend), возвращает уникальные значения из этого списка.
Принимает на вход: словарь word_lookup
Возвращает: уникальные синонимы
Пример результата:
{'deviltry', 'rascality', 'trickery', 'guile', 'mischievousness', 'mischief', 'devilment', 'roguishness', 'devilry', 'roguery', 'chicanery', 'wile', 'chicane', 'mischief-making'}
7. Напишите функцию is_type_of, которая проходит по всем словарям в word_lookup["results"] (for цикл), и для каждого элемента в списке "typeOf" (еще один for цикл внутри) печатает строку "<Word>" is a type of <typeOf>
Принимает на вход: словарь word_lookup
Возвращает: ничего не возвращает, печатает все записи typeOf.
Пример результата:
"Shenanigan" is a type of deception.
"Shenanigan" is a type of deceit.
...
Обратите внимание, что "Shenanigan" с большой буквы.
8. Напишите функцию syllables, которая достает слоги из "syllables" и возвращает их одной строкой через дефис ('-'.join(...)).
Принимает на вход: словарь word_lookup
Возвращает: возвращает строку слогов через дефис.
Пример результата:
'she-nan-i-gan'
9. Функция definition_and_more. Делает то же самое, что и функция из задания 3, но также принимает Keyword Arguments additional_parameter, который принимает название какого-то дополнительного атрибута, который нужно тоже вывести (по умолчанию None)
Принимает на вход: словарь word_lookup и (опционально) какой-то дополнительный параметр.
Возвращает: ничего не возвращает, печатает определения и, возможно, что-то еще.
Пример вызова функции:
definition_and_more(word_lookup, additional_parameter = "hasTypes")
Результат (форматирование произвольное, главное, чтобы было все, что вы вызвали):
* безрассудное или злонамеренное поведение, которое вызывает дискомфорт или раздражение у других
hasTypes: vandalism, hell, hooliganism, malicious mischief, monkey business, blaze
* использование трюков для обмана кого-то (обычно для извлечения денег от них)
hasTypes: put-on, fraudulence, hoax, dupery, fraud, humbug, jugglery
10. Функция, которая принимает любое количество атрибутов из тех, что есть в "results" и выводит значения тех атрибутов.
(Если атрибутов нет, то выводится только word_lookup["word"])
Пример вызова функции:
word_anything(word_lookup, 'hasTypes', 'partOfSpeech')
Результат (форматирование произвольное, главное, чтобы было word_lookup["word"] и те атрибуты, что вы ввели):
SHENANIGAN
----------
hasTypes : ['vandalism', 'hell', 'hooliganism', 'malicious mischief', 'monkey business', 'blaze']
partOfSpeech : noun
----------
hasTypes : ['put-on', 'fraudulence', 'hoax', 'dupery', 'fraud', 'humbug', 'jugglery']
partOfSpeech : noun
----------