Python · از صفر

ارزیابی سادهٔ گذرواژه

چند ویژگی پایهٔ گذرواژه را بدون ذخیره‌کردن خود آن بررسی کن.

۳۰ دقیقه · ۴۰ XP · Python · Strings · Booleans

هدف و راهنمای انجام با روش CRAFT

C · Challenge | چالش

چند ویژگی پایهٔ گذرواژه را بدون ذخیره‌کردن خود آن بررسی کن.

تمرین شرط‌ها، رشته‌ها و گزارش وضعیت

R · Route | مسیر

  1. قرارداد ورودی را بخوان و دادهٔ خام را بدون تغییر ناخواسته نگه دار.
  2. اعتبار داده و حالت‌های مرزی را پیش از محاسبه بررسی کن.
  3. محاسبه را در تابع solve انجام بده و خروجی ساختاریافته بساز.
  4. نتیجه را در result.json بنویس و با چند ورودی متفاوت آزمایش کن.

A · Applicable Knowledge | دانش کاربردی

Python · Strings · Booleans

کتابخانه‌های موردنیاز این مسئله: json, pathlib

F · Forge | ساختن

در main.py تابع solve را کامل کن؛ پاسخ را طبق قرارداد زیر برگردان تا در result.json ذخیره شود. اجرای عادی برای بررسی خروجی است و ارزیابی برای سنجش حل مسئله با ورودی‌های دیگر.

ورودی

passwords: فهرست رشته‌های کاملاً ساختگی برای تمرین؛ هرگز گذرواژهٔ واقعی وارد نکنید. حروف و رقم‌ها فقط ASCII و نماد فقط مجموعهٔ !@#$%^&* هستند.

خروجی

results: یک رکورد برای هر رشته به همان ترتیب؛ length طول رشته؛ has_letter و has_digit و has_symbol وجود گروه مربوطه؛ strong یعنی طول حداقل ۸ و وجود هر سه گروه. این قواعد تضمین امنیت نیستند.

Python 3؛ تابع solve(data) را پیاده‌سازی کنید و بخش خواندن و نوشتن فایل را حفظ کنید.

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

{
    "input": {
        "passwords": [
            "Python123!",
            "short",
            "abcdefghijk"
        ]
    },
    "output": {
        "results": [
            {
                "length": 10,
                "has_letter": true,
                "has_digit": true,
                "has_symbol": true,
                "strong": true
            },
            {
                "length": 5,
                "has_letter": true,
                "has_digit": false,
                "has_symbol": false,
                "strong": false
            },
            {
                "length": 11,
                "has_letter": true,
                "has_digit": false,
                "has_symbol": false,
                "strong": false
            }
        ]
    }
}

T · Transfer | انتقال

یک گزارش آماری از عبور و عدم عبور رشته‌های کاملاً ساختگی بسازید، بدون نگه‌داشتن خود رشته‌ها.

این تمرین انتقال برای خودآزمایی است و جزو ارزیابی خودکار و XP این پروژه نیست.

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

  • ساختار خروجی با قرارداد برابر است.
  • نتیجه برای ورودی‌های متنوع و حالت‌های مرزی درست می‌ماند.
  • کد از دادهٔ request.json استفاده می‌کند و پاسخ ثابت مثال نیست.
راهنمایی برای فهم مسئله و نوشتن کد

passwords: فهرست رشته‌های کاملاً ساختگی برای تمرین؛ هرگز گذرواژهٔ واقعی وارد نکنید. حروف و رقم‌ها فقط ASCII و نماد فقط مجموعهٔ !@#$%^&* هستند. results: یک رکورد برای هر رشته به همان ترتیب؛ length طول رشته؛ has_letter و has_digit و has_symbol وجود گروه مربوطه؛ strong یعنی طول حداقل ۸ و وجود هر سه گروه. این قواعد تضمین امنیت نیستند.

از کجا شروع کنم؟

  1. نمونهٔ ورودی را بخوان و نتیجهٔ موردانتظار را ابتدا بدون کد پیدا کن.
  2. قرارداد ورودی را بخوان و دادهٔ خام را بدون تغییر ناخواسته نگه دار.
  3. تابع solve را کامل کن و نام کلیدها و نوع خروجی را دقیقاً مطابق نمونه نگه دار.
  4. کد را ذخیره و اجرا کن؛ سپس ارزیابی را بزن. چاپ متن به‌تنهایی جای پاسخ result.json نیست.

Python 3؛ تابع solve(data) را پیاده‌سازی کنید و بخش خواندن و نوشتن فایل را حفظ کنید.

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

  • تسلط مقدماتی بر متغیر، شرط و ساختار داده
اعتبارسنجی رشته در پایتون؛ قرارداد روشن به‌جای شرط‌های مبهم ←

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

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