Напишите программу на языке Python, которая поможет Ипполиту Матвеевичу определить, какая мебель в его гостиной

  • 43
Напишите программу на языке Python, которая поможет Ипполиту Матвеевичу определить, какая мебель в его гостиной является особенно дорогой. Учитывайте только ту мебель, у которой есть более 4 общих букв с определенным словом. Входные данные представлены в виде строки фраз, записанных через дефис.
Gloriya
58
Конечно же! Вот программа на языке Python, которая поможет Ипполиту Матвеевичу определить наиболее дорогую мебель в его гостиной.

python
def find_expensive_furniture(furniture_string, target_word):
furniture_list = furniture_string.split("-")

expensive_furniture = ""
max_common_letters = 0

for furniture in furniture_list:
common_letters = len(set(furniture) & set(target_word))

if common_letters > max_common_letters and common_letters > 4:
max_common_letters = common_letters
expensive_furniture = furniture

return expensive_furniture

# Пример использования функции
furniture_string = "диван-столик-шкаф-кресло"
target_word = "дорогая"
expensive_furniture = find_expensive_furniture(furniture_string, target_word)

if expensive_furniture:
print(f"Самая дорогая мебель: {expensive_furniture}")
else:
print("Нет мебели, соответствующей условию")


Давайте разберемся, как работает эта программа:

1. Мы создаем функцию `find_expensive_furniture`, которая принимает два аргумента: `furniture_string` (строка с фразами о мебели) и `target_word` (определенное слово для сравнения).
2. Мы разбиваем строку `furniture_string` на отдельные слова с помощью метода `.split("-")` и сохраняем их в список `furniture_list`.
3. Затем мы инициализируем переменные `expensive_furniture` (для хранения самой дорогой мебели) и `max_common_letters` (для отслеживания максимального количества общих букв).
4. Мы проходим по каждой мебели в списке `furniture_list`.
5. Для каждой мебели мы вычисляем количество общих букв с заданным словом, используя операцию `&` для нахождения пересечения множеств букв.
6. Если количество общих букв больше, чем текущая максимальная, и превышает 4, мы обновляем `max_common_letters` и `expensive_furniture`.
7. По завершении цикла мы возвращаем `expensive_furniture`.
8. Затем мы используем функцию, передавая ей пример строки `furniture_string` и определенное слово `target_word`.
9. Если найдена дорогая мебель (т.е. `expensive_furniture` не пустая строка), мы выводим результат. В противном случае выводим сообщение о том, что мебель не найдена.

Надеюсь, это поможет Ипполиту Матвеевичу определить самую дорогую мебель в его гостиной! Если у вас возникнут дополнительные вопросы, не стесняйтесь задавать.