Задача 1. Песни
Мы продолжаем писать приложение для удобного прослушивания музыки, но теперь наши песни хранятся в виде словаря, а не вложенных списков. Каждая песня состоит из названия и продолжительности с точностью до долей минут.
Напишите программу, которая запрашивает у пользователя количество песен из списка и названия этих песен, а на экран выводит общее время их звучания.
Задача 2. География
Антон, помимо программирования, также увлекается и географией, поэтому он решил связать эти две области и написать для своего проекта небольшую программу-навигатор.
Пользователь вводит количество стран N, а затем N раз вводит страну и города, которые в этой стране находятся, в одну строку. После пользователь вводит три названия городов. Реализуйте такую программу и для каждого из трёх городов укажите, в какой стране он находится. Если такого города нет, то выведите соответствующее сообщение.
Задача 3. Криптовалюта
При работе с API (application programming interface) сайта биржи по криптовалюте вы получили данные в виде словаря.
Теперь вам предстоит немного обработать эти данные.
Напишите программу, которая выполняет следующий алгоритм действий:
- Вывести списки ключей и значений словаря.
- В “ETH” добавить ключ “total_diff” со значением 100.
- Внутри “fst_token_info” значение ключа “name” поменять с “fdf” на “doge”.
- Удалить “total_out” из tokens и присвоить его значение в “total_out” внутри “ETH”.
- Внутри "sec_token_info" изменить название ключа “price” на “total_price”.
После выполнения алгоритма выводить результат (словарь) не нужно.
Задача 4. Товары
В базе данных магазина вся необходимая информация по товарам делится на два словаря: первый отвечает за коды товаров, второй — за списки количества разнообразных товаров на складе.
Каждая запись второго словаря отображает, сколько и по какой цене закупалось товаров (цена указана за одну штуку).
Напишите программу, которая рассчитывает, на какую сумму лежит каждого товара на складе, и выводит эту информацию на экран.
Задача 5. Гистограмма частоты
Мы уже писали программу для лингвистов, которая получала на вход текст и считала, сколько раз в строке встречается каждый символ. Теперь задача немного поменялась: максимальную частоту выводить не нужно, однако необходимо написать функцию, которая будет инвертировать полученный словарь. То есть в качестве ключа будет частота, а в качестве значения — список символов с этой частотой. Реализуйте такую программу.
Задача 6. Словарь синонимов
Одна библиотека поручила вам написать программу для оцифровки словарей синонимов. На вход в программу подаётся N пар слов. Каждое слово является синонимом к своему парному слову.
Реализуйте код, который составляет словарь синонимов (все слова в словаре различны), затем запрашивает у пользователя слово и выводит на экран его синоним. Обеспечьте контроль ввода: если такого слова нет, то выведите ошибку и запросите слово ещё раз. При этом проверка не должна зависеть от регистра символов.
Задача 7. Пицца
В базе данных интернет-магазина PizzaTime хранятся данные о том, кто, что и сколько заказывал у них в определённый период. Вам нужно структурировать эту информацию, а также понять, сколько всего пицц купил каждый заказчик.
На вход в программу подаётся N заказов. Каждый заказ представляет собой строку вида «Покупатель — название пиццы — количество заказанных пицц». Реализуйте код, который выводит список покупателей и их заказов по алфавиту. Учитывайте, что один человек может заказать одно и то же несколько раз.
Задача 8. Угадай число
Артём и Борис играют в игру. Артём загадал натуральное число от 1 до N. Борис пытается угадать это число, для этого он называет несколько чисел подряд. Артём говорит Борису «да», если среди названных Борисом чисел есть задуманное. В противном случае Артём говорит «нет». После нескольких заданных вопросов Борис сдался и попросил вас помочь ему определить, какие числа мог задумать Артём.
Напишите программу, которая имитирует диалог Артёма и Бориса. В начале на вход подаётся число N — это максимальное число, которое мог загадать Артём. Затем Борис предполагает, что среди некоторых чисел есть то, которое загадал Артём (несколько чисел через пробел), а Артём отвечает. Так продолжается до тех пор, пока Борис не попросит помощи (пока не введётся строка «Помогите!»). В конце программы необходимо вывести, какие числа мог загадать Артём.
Задача 9. Родословная
В генеалогическом древе у каждого человека, кроме родоначальника, есть ровно один родитель. Каждому элементу дерева сопоставляется целое неотрицательное число, называемое высотой. У родоначальника высота равна 0, у любого другого элемента высота на один больше, чем у его родителя. Вам нужно написать программу, которая по заданному генеалогическому древу определяет высоту всех его элементов.
Программа получает на вход N количество человек в генеалогическом древе. Далее следует N − 1 строк, в каждой из которых задаётся родитель для каждого элемента дерева, кроме родоначальника. Каждая строка имеет вид «имя_потомка имя_родителя».
Программа должна вывести список всех элементов древа в лексикографическом порядке (по алфавиту). После вывода имени каждого элемента необходимо вывести его высоту.
Задача 10. Снова палиндром
Пользователь вводит строку. Необходимо написать программу, которая определяет, существует ли у этой строки такая перестановка, при которой она станет палиндромом. Выведите соответствующее сообщение.