Найти тему
Заметки по Python

Основы Python. Часть 5

Задача 1. Песни

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

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

Задача 2. География

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

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

-2

Задача 3. Криптовалюта

При работе с API (application programming interface) сайта биржи по криптовалюте вы получили данные в виде словаря.

Теперь вам предстоит немного обработать эти данные.

Напишите программу, которая выполняет следующий алгоритм действий:

  1. Вывести списки ключей и значений словаря.
  2. В “ETH” добавить ключ “total_diff” со значением 100.
  3. Внутри “fst_token_info” значение ключа “name” поменять с “fdf” на “doge”.
  4. Удалить “total_out” из tokens и присвоить его значение в “total_out” внутри “ETH”.
  5. Внутри "sec_token_info" изменить название ключа “price” на “total_price”.

После выполнения алгоритма выводить результат (словарь) не нужно.

-3

Задача 4. Товары

В базе данных магазина вся необходимая информация по товарам делится на два словаря: первый отвечает за коды товаров, второй — за списки количества разнообразных товаров на складе.

Каждая запись второго словаря отображает, сколько и по какой цене закупалось товаров (цена указана за одну штуку).

Напишите программу, которая рассчитывает, на какую сумму лежит каждого товара на складе, и выводит эту информацию на экран.

-4

Задача 5. Гистограмма частоты

Мы уже писали программу для лингвистов, которая получала на вход текст и считала, сколько раз в строке встречается каждый символ. Теперь задача немного поменялась: максимальную частоту выводить не нужно, однако необходимо написать функцию, которая будет инвертировать полученный словарь. То есть в качестве ключа будет частота, а в качестве значения — список символов с этой частотой. Реализуйте такую программу.

-5

Задача 6. Словарь синонимов

Одна библиотека поручила вам написать программу для оцифровки словарей синонимов. На вход в программу подаётся N пар слов. Каждое слово является синонимом к своему парному слову.

Реализуйте код, который составляет словарь синонимов (все слова в словаре различны), затем запрашивает у пользователя слово и выводит на экран его синоним. Обеспечьте контроль ввода: если такого слова нет, то выведите ошибку и запросите слово ещё раз. При этом проверка не должна зависеть от регистра символов.

-6

Задача 7. Пицца

В базе данных интернет-магазина PizzaTime хранятся данные о том, кто, что и сколько заказывал у них в определённый период. Вам нужно структурировать эту информацию, а также понять, сколько всего пицц купил каждый заказчик.

На вход в программу подаётся N заказов. Каждый заказ представляет собой строку вида «Покупатель — название пиццы — количество заказанных пицц». Реализуйте код, который выводит список покупателей и их заказов по алфавиту. Учитывайте, что один человек может заказать одно и то же несколько раз.

-7

Задача 8. Угадай число

Артём и Борис играют в игру. Артём загадал натуральное число от 1 до N. Борис пытается угадать это число, для этого он называет несколько чисел подряд. Артём говорит Борису «да», если среди названных Борисом чисел есть задуманное. В противном случае Артём говорит «нет». После нескольких заданных вопросов Борис сдался и попросил вас помочь ему определить, какие числа мог задумать Артём.

Напишите программу, которая имитирует диалог Артёма и Бориса. В начале на вход подаётся число N — это максимальное число, которое мог загадать Артём. Затем Борис предполагает, что среди некоторых чисел есть то, которое загадал Артём (несколько чисел через пробел), а Артём отвечает. Так продолжается до тех пор, пока Борис не попросит помощи (пока не введётся строка «Помогите!»). В конце программы необходимо вывести, какие числа мог загадать Артём.

-8

Задача 9. Родословная

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

Программа получает на вход N количество человек в генеалогическом древе. Далее следует N − 1 строк, в каждой из которых задаётся родитель для каждого элемента дерева, кроме родоначальника. Каждая строка имеет вид «имя_потомка имя_родителя».

Программа должна вывести список всех элементов древа в лексикографическом порядке (по алфавиту). После вывода имени каждого элемента необходимо вывести его высоту.

-9

Задача 10. Снова палиндром

Пользователь вводит строку. Необходимо написать программу, которая определяет, существует ли у этой строки такая перестановка, при которой она станет палиндромом. Выведите соответствующее сообщение.

-10