ارزیابی سادهٔ گذرواژه
چند ویژگی پایهٔ گذرواژه را بدون ذخیرهکردن خود آن بررسی کن.
۳۰ دقیقه · ۴۰ XP · Python · Strings · Booleans
هدف و راهنمای انجام با روش CRAFT
C · Challenge | چالش
چند ویژگی پایهٔ گذرواژه را بدون ذخیرهکردن خود آن بررسی کن.
تمرین شرطها، رشتهها و گزارش وضعیت
R · Route | مسیر
- قرارداد ورودی را بخوان و دادهٔ خام را بدون تغییر ناخواسته نگه دار.
- اعتبار داده و حالتهای مرزی را پیش از محاسبه بررسی کن.
- محاسبه را در تابع solve انجام بده و خروجی ساختاریافته بساز.
- نتیجه را در 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 یعنی طول حداقل ۸ و وجود هر سه گروه. این قواعد تضمین امنیت نیستند.
از کجا شروع کنم؟
- نمونهٔ ورودی را بخوان و نتیجهٔ موردانتظار را ابتدا بدون کد پیدا کن.
- قرارداد ورودی را بخوان و دادهٔ خام را بدون تغییر ناخواسته نگه دار.
- تابع solve را کامل کن و نام کلیدها و نوع خروجی را دقیقاً مطابق نمونه نگه دار.
- کد را ذخیره و اجرا کن؛ سپس ارزیابی را بزن. چاپ متن بهتنهایی جای پاسخ result.json نیست.
Python 3؛ تابع solve(data) را پیادهسازی کنید و بخش خواندن و نوشتن فایل را حفظ کنید.
پیشنیاز و ترتیب یادگیری
- تسلط مقدماتی بر متغیر، شرط و ساختار داده
برای شروع، مقالهٔ بالا را بخوانید. Python 3 و کتابخانههای موردنیاز در میزکار آمادهاند؛ نصب آنلاین از ترمینال میزکار لازم نیست.
