Поиск элемента 2

Что нужно сделать

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

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

site = {
	'html': {
		'head': {
			'title': 'Мой сайт'
		},
		'body': {
			'h2': 'Здесь будет мой заголовок',
			'div': 'Тут, наверное, какой-то блок',
			'p': 'А вот здесь новый абзац'
		}
	}
}

Пример 1:

Введите искомый ключ: head
Хотите ввести максимальную глубину? Y/N: n
Значение ключа: {'title': 'Мой сайт'}

Пример 2:

Введите искомый ключ: head
Хотите ввести максимальную глубину? Y/N: y
Введите максимальную глубину: 1
Значение ключа: None

Что оценивается

  • Результат вычислений корректен.
  • Формат вывода соответствует примеру.
  • input содержит корректные приглашения для ввода.
  • Основной функционал описан в отдельной функции(-ях).
  • Переменные и функции имеют значащие имена, не только a, b, c, d
site = {
	'html': {
		'head': {
			'title': 'Мой сайт'
		},
		'body': {
			'h2': 'Здесь будет мой заголовок',
			'div': 'Тут, наверное, какой-то блок',
			'p': 'А вот здесь новый абзац'
		}
	}
}

def find_key(data, my_key, depth):
    if depth > 0:
        if my_key in data:
            return data[my_key]
    for element in data.values():
        if isinstance(element, dict):
            result = find_key(element, my_key, depth - 1)
            if result:
                break
    else:
        result = None
    return result

user_key = input('Введите искомый ключ: ')
depth = input('Использовать глубину: (Y/N): ').lower()
if depth == 'y':
	depth = int(input('Введите глубину поиска: '))
else:
	depth = 15

print(f'Значение ключа: ', find_key(site, user_key, depth))