Python · از صفر

فهرست‌ساز پسوند فایل‌ها

تمرین مرحلهٔ 17: شناخت stem و suffix بدون دسترسی به دیسک؛ بدون نیاز به یادگیری ماشین و با ارزیابی واقعی خروجی.

۵۲ دقیقه · ۱۰۵ XP · pathlib · PurePosixPath · suffix

هدف و راهنمای انجام

شناخت stem و suffix بدون دسترسی به دیسک

ورودی

request.json: names: لیست مسیر متنی سبک POSIX؛ بدون خواندن دیسک، آخرین پسوند با حروف کوچک شمرده شود. بدون پسوند: [none].

خروجی

result.json مطابق ساختار مثال؛ تمام کلیدهای نشان‌داده‌شده الزامی هستند.

  1. مقالهٔ پیش‌نیاز را بخوانید و نمونه‌کد آن را جدا اجرا کنید.
  2. برای هر نام ورودی، یک PurePosixPath می‌سازیم و suffix را می‌خوانیم. پسوند را به حروف کوچک تبدیل می‌کنیم تا .TXT و .txt در یک گروه باشند. فایل بدون پسوند در گروه [none] قرار می‌گیرد. در archive.tar.gz پسوند نهایی .gz است، نه .tar.gz؛ برای همهٔ پسوندها ابزار suffixes وجود دارد، ولی قرارداد این پروژه فقط آخرین پسوند را می‌خواهد.
  3. در main.py تابع solve(data) را تکمیل کنید؛ بخش خواندن request.json و نوشتن result.json را حفظ کنید.
  4. با ورودی نمونه و حالت‌های مرزیِ راهنما اجرا کنید؛ سپس ارزیابی را بزنید.

Python 3؛ دادهٔ ورودی طبق قرارداد است. تابع solve باید برای همهٔ ورودی‌ها کار کند، نه فقط مثال. کتابخانهٔ خارجی لازم نیست؛ ماژول‌های استاندارد همراه Python 3 هستند.

مثال ورودی و خروجی

{
    "input": {
        "names": [
            "a.TXT",
            "b.txt",
            "archive.tar.gz",
            "README"
        ]
    },
    "output": {
        "extensions": {
            ".txt": 2,
            ".gz": 1,
            "[none]": 1
        }
    }
}

معیارهای موفقیت

  • ساختار و نوع خروجی با قرارداد برابر است.
  • محاسبه برای چند ورودی متفاوت و حالت‌های مرزی درست است.
  • اجرای ساده XP نمی‌دهد؛ فقط قبولی ارزیابی معتبر باعث ثبت تکمیل می‌شود.

کتابخانه‌ها: json, pathlib

پیش‌نیاز و ترتیب یادگیری

  • JSON و تنظیمات؛ تفاوت متن و ساختار داده
pathlib و نام فایل؛ مسیر را مثل داده پردازش کنید ←

برای شروع، مقالهٔ بالا را بخوانید. Python 3 و کتابخانه‌های موردنیاز در میزکار آماده‌اند؛ نصب آنلاین از ترمینال میزکار لازم نیست.

برای نوشتن و اجرای کد وارد شوید