Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Вивчайте Завдання: Рекурсивний Пошук Файлів | Рекурсія та Лямбда-Функції
Посібник з функцій Python

bookЗавдання: Рекурсивний Пошук Файлів

Робота з вкладеними словниками

У Python словники можуть містити інші словники. Це корисно для представлення ієрархічних структур, таких як файлова система.

У цьому випадку:

  • Ключі — це імена (файлів або папок);
  • Якщо значення — рядок "file", це означає файл;
  • Якщо значення — інший словник, це означає папку.

Використовуйте items() для ітерації по всіх парах ключ-значення:

123456789101112
file_system = { "home": { "resume.pdf": "file", "notes.txt": "file" }, "etc": { "config.yaml": "file" } } for name, content in file_system.items(): print(name, "->", content)
copy
  • Використовуйте isinstance(content, dict), щоб перевірити, чи є значення словником (тобто папкою, а не файлом):
123456789101112
file_system = { "home": { "resume.pdf": "file" }, "config.yaml": "file" } for name, content in file_system.items(): if isinstance(content, dict): print(name, "is a folder") else: print(name, "is a file")
copy
Завдання

Swipe to start coding

Уявіть, що потрібно перевірити, чи існує певний файл у вкладеній структурі словників, яка представляє файлову систему. Реалізуйте функцію file_exists, яка рекурсивно проходить через папки (об'єкти-словники) та шукає файл (представлений рядком "file"). Поверніть True, якщо файл знайдено; інакше поверніть False.

  1. Використайте цикл for для ітерації по всіх елементах словника file_system за допомогою методу items(). Це дозволяє отримати ключ (name) та значення (content).
  2. Перевірте, чи є content файлом (тобто рядком "file") і чи збігається name з target (іменем шуканого файлу).
  3. Якщо обидві умови виконуються, поверніть True, що означає, що файл знайдено.
  4. Якщо isinstance() не є файлом, перевірте, чи це папка. Використайте функцію content, передавши dict як перший аргумент і content як другий (що перевіряє, чи елемент є словником).
  5. Якщо content є папкою, викличте file_exists рекурсивно з необхідними параметрами, щоб продовжити пошук всередині неї.
  6. Якщо рекурсивний виклик повертає True, файл знайдено, тому поверніть True.
  7. Якщо жодного збігу не знайдено після перевірки всіх папок і файлів, поверніть False.

Рішення

Все було зрозуміло?

Як ми можемо покращити це?

Дякуємо за ваш відгук!

Секція 5. Розділ 2
single

single

Запитати АІ

expand

Запитати АІ

ChatGPT

Запитайте про що завгодно або спробуйте одне із запропонованих запитань, щоб почати наш чат

close

Awesome!

Completion rate improved to 4.35

bookЗавдання: Рекурсивний Пошук Файлів

Свайпніть щоб показати меню

Робота з вкладеними словниками

У Python словники можуть містити інші словники. Це корисно для представлення ієрархічних структур, таких як файлова система.

У цьому випадку:

  • Ключі — це імена (файлів або папок);
  • Якщо значення — рядок "file", це означає файл;
  • Якщо значення — інший словник, це означає папку.

Використовуйте items() для ітерації по всіх парах ключ-значення:

123456789101112
file_system = { "home": { "resume.pdf": "file", "notes.txt": "file" }, "etc": { "config.yaml": "file" } } for name, content in file_system.items(): print(name, "->", content)
copy
  • Використовуйте isinstance(content, dict), щоб перевірити, чи є значення словником (тобто папкою, а не файлом):
123456789101112
file_system = { "home": { "resume.pdf": "file" }, "config.yaml": "file" } for name, content in file_system.items(): if isinstance(content, dict): print(name, "is a folder") else: print(name, "is a file")
copy
Завдання

Swipe to start coding

Уявіть, що потрібно перевірити, чи існує певний файл у вкладеній структурі словників, яка представляє файлову систему. Реалізуйте функцію file_exists, яка рекурсивно проходить через папки (об'єкти-словники) та шукає файл (представлений рядком "file"). Поверніть True, якщо файл знайдено; інакше поверніть False.

  1. Використайте цикл for для ітерації по всіх елементах словника file_system за допомогою методу items(). Це дозволяє отримати ключ (name) та значення (content).
  2. Перевірте, чи є content файлом (тобто рядком "file") і чи збігається name з target (іменем шуканого файлу).
  3. Якщо обидві умови виконуються, поверніть True, що означає, що файл знайдено.
  4. Якщо isinstance() не є файлом, перевірте, чи це папка. Використайте функцію content, передавши dict як перший аргумент і content як другий (що перевіряє, чи елемент є словником).
  5. Якщо content є папкою, викличте file_exists рекурсивно з необхідними параметрами, щоб продовжити пошук всередині неї.
  6. Якщо рекурсивний виклик повертає True, файл знайдено, тому поверніть True.
  7. Якщо жодного збігу не знайдено після перевірки всіх папок і файлів, поверніть False.

Рішення

Switch to desktopПерейдіть на комп'ютер для реальної практикиПродовжуйте з того місця, де ви зупинились, використовуючи один з наведених нижче варіантів
Все було зрозуміло?

Як ми можемо покращити це?

Дякуємо за ваш відгук!

close

Awesome!

Completion rate improved to 4.35
Секція 5. Розділ 2
single

single

some-alt