Python · از صفر

جست‌وجو در عنوان کتاب‌ها

تمرین مرحلهٔ 8: ترکیب شرط و پیمایش برای جست‌وجوی بدون حساسیت به حروف؛ بدون نیاز به یادگیری ماشین و با ارزیابی واقعی خروجی.

۳۴ دقیقه · ۶۰ XP · Filtering · in · casefold

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

ترکیب شرط و پیمایش برای جست‌وجوی بدون حساسیت به حروف

ورودی

request.json: titles: لیست عنوان‌های رشته‌ای؛ query: رشتهٔ جست‌وجو. query خالی پس از strip: matches خالی.

خروجی

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

  1. مقالهٔ پیش‌نیاز را بخوانید و نمونه‌کد آن را جدا اجرا کنید.
  2. عبارت جست‌وجو را strip و casefold می‌کنیم. هر عنوان را فقط برای مقایسه casefold می‌کنیم، اما خود عنوان اصلی را در خروجی نگه می‌داریم. بنابراین ظاهر حروف از بین نمی‌رود. اگر عبارت خالی باشد، لیست خالی برمی‌گردانیم تا معنی مشخصی داشته باشد. ترتیب نتیجه‌ها همان ترتیب کتاب‌های ورودی است و مرتب‌سازی جدیدی انجام نمی‌شود.
  3. در main.py تابع solve(data) را تکمیل کنید؛ بخش خواندن request.json و نوشتن result.json را حفظ کنید.
  4. با ورودی نمونه و حالت‌های مرزیِ راهنما اجرا کنید؛ سپس ارزیابی را بزنید.

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

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

{
    "input": {
        "titles": [
            "Python Basics",
            "SQL",
            "python Data"
        ],
        "query": " PYTHON "
    },
    "output": {
        "matches": [
            "Python Basics",
            "python Data"
        ]
    }
}

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

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

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

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

  • رشته‌ها و متن فارسی؛ شمارش واژه با split
فیلترکردن لیست؛ جست‌وجوی متنی قابل پیش‌بینی ←

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

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