پیشنیاز و هدف یادگیری
این بخش، گام 4 از مسیر «پایتون از صفر» است. هدف این درس نوشتن شرط با بازهٔ معتبر و آزمودن مرز قبولی است. پیشنیاز: نوع داده و تبدیل واحد؛ از رشته تا عدد. کتابخانهٔ خارجی لازم نیست؛ ماژولهای استاندارد همراه Python 3 هستند. اگر مفهوم قبلی برایتان ناآشناست، ابتدا مقالهٔ پیشنیاز را بخوانید و مثالش را اجرا کنید؛ حفظکردن کد جای فهم ورودی و خروجی را نمیگیرد.
مفهوم اصلی به زبان ساده
شرط یک عبارت با نتیجهٔ درست یا نادرست است. if فقط وقتی بدنه را اجرا میکند که شرط برقرار باشد. در مسئلهٔ قبولی، ابتدا باید معلوم کنیم نمره معتبر است یا نه؛ نمرهٔ بیشتر از بیست نباید صرفاً چون از ده بزرگتر است پذیرفته شود. اعتبارسنجی مرز ورودی را از منطق تصمیم جدا کنید تا خواندن برنامه آسان بماند.
مسئلهٔ این درس
در پروژهٔ «تشخیص قبولی نمره» باید یک تابع مستقل بنویسید. میزکار ورودی نمونه را در request.json قرار میدهد؛ تابع solve دیکشنری داده را میگیرد و نتیجهٔ خود را برمیگرداند. در این قرارداد input لازم نیست و خواندن تعاملی از ترمینال ممکن است اجرای ارزیابی را متوقف کند. از مثال زیر شروع کنید و پیش از اجرای آن، شکل نتیجه را حدس بزنید.
نمونهکد قابل اجرا
def solve(data):
score = data['score']
if not 0 <= score <= 20:
return {'error': 'invalid_score'}
return {'passed': score >= 10}
print(solve({'score': 10}))نتیجهٔ مورد انتظار
{
"passed": true
}توضیح مرحلهبهمرحله
دامنهٔ نمره صفر تا بیست، شامل هر دو سر بازه است. بعد از بررسی این دامنه، نمرهٔ حداقل ده پذیرفته میشود. نوشتن 0 <= score <= 20 یک مقایسهٔ زنجیرهای خواناست. خروجی passed یک مقدار بولی واقعی است؛ True و False در پایتون با حرف بزرگ شروع میشوند و در JSON به true و false تبدیل میشوند.
قرارداد ورودی و خروجی
مثال فقط یک ورودی است، نه همهٔ مسئله. مقدارها را از data بخوانید و جواب نمونه را ثابت در برنامه ننویسید. نام کلیدها، نوع عدد و رشته و ترتیب فهرستها بخشی از قراردادند. در پروژه، بخش پایانی main.py نتیجهٔ تابع را در result.json ذخیره میکند؛ آن بخش را نگه دارید. موفقیت اجرای برنامه با درستبودن پاسخ و قبولی ارزیابی یکسان نیست.
خطای رایج و راه تشخیص
علامت > با >= فرق دارد؛ اگر شرط score > 10 باشد، نمرهٔ دقیق ده اشتباه رد میشود. عبارت "False" رشتهای غیرخالی است و در شرط درست محسوب میشود. به جای رشته، مقدار بولی برگردانید.
تمرین مستقل و خودآزمایی
برای نمرههای ۰، ۹٫۹۹، ۱۰، ۲۰ و ۲۰٫۰۱ جدول خروجی بسازید. توضیح دهید چرا بررسی بازه باید پیش از تشخیص قبولی انجام شود.
برای هر آزمایش، ورودی، خروجی مورد انتظار و خروجی واقعی را جدا بنویسید. اگر تفاوتی دیدید، یک نمونهٔ کوچکتر بسازید و تغییر را دوباره امتحان کنید. به جای اجرای چند تغییر همزمان، هر بار یک فرض را بررسی کنید. پس از فهم نمونه، پروژهٔ مرتبط را در میزکار حل کنید؛ ارزیابی با چند ورودی متفاوت انجام میشود و پاسخ ثابت نمونه پذیرفته نخواهد شد.
گام بعدی
موضوعهای این درس: if · elif · Comparisons. اگر میتوانید دلیل هر خط را توضیح دهید و ورودی تازهای را بدون دستکاری منطق اصلی حل کنید، به مقالهٔ بعدی بروید. هدف مسیر مقدماتی، تسلط بر همین رفتارهای کوچک و قابل آزمایش است؛ برای شروع پروژههای یادگیری ماشین عجله نکنید.
منابع و مطالعهٔ بیشتر
برای بررسی جزئیات و ادامهٔ مطالعه؛ متن این راهنما مستقلاً برای نوونتیکس نوشته شده است.
