پیشنیاز و هدف یادگیری
این بخش، گام 2 از مسیر «پایتون از صفر» است. هدف این درس استفاده از متغیر، ضرب و گردکردن خروجی عددی است. پیشنیاز: نصب و اجرای پایتون؛ اولین برنامه از صفر. کتابخانهٔ خارجی لازم نیست؛ ماژولهای استاندارد همراه Python 3 هستند. اگر مفهوم قبلی برایتان ناآشناست، ابتدا مقالهٔ پیشنیاز را بخوانید و مثالش را اجرا کنید؛ حفظکردن کد جای فهم ورودی و خروجی را نمیگیرد.
مفهوم اصلی به زبان ساده
متغیر نامی برای یک مقدار است، نه خانهای که همیشه یک نوع ثابت دارد. نامهایی مثل price و quantity بهتر از a و b منظور محاسبه را نشان میدهند. عدد صحیح برای تعداد و عدد اعشاری برای قیمت مناسب است. علامت = مقداردهی میکند و با == که مقایسه است فرق دارد. در پایتون ضرب با * نوشته میشود؛ نوشتن دو نام کنار هم ضرب محسوب نمیشود.
مسئلهٔ این درس
در پروژهٔ «محاسبهگر مبلغ خرید» باید یک تابع مستقل بنویسید. میزکار ورودی نمونه را در request.json قرار میدهد؛ تابع solve دیکشنری داده را میگیرد و نتیجهٔ خود را برمیگرداند. در این قرارداد input لازم نیست و خواندن تعاملی از ترمینال ممکن است اجرای ارزیابی را متوقف کند. از مثال زیر شروع کنید و پیش از اجرای آن، شکل نتیجه را حدس بزنید.
نمونهکد قابل اجرا
def solve(data):
total = data['price'] * data['quantity']
return {'total': round(total, 2)}
print(solve({'price': 12.5, 'quantity': 3}))نتیجهٔ مورد انتظار
{
"total": 37.5
}توضیح مرحلهبهمرحله
قیمت واحد را در تعداد ضرب میکنیم و مبلغ نهایی را تا دو رقم اعشار گرد میکنیم. برای قیمت ۱۲٫۵ و تعداد ۳، نتیجه ۳۷٫۵ است. quantity برابر صفر باید مبلغ صفر بسازد، نه خطا. ورودی این تمرین عدد JSON است، نه رشته؛ بنابراین تبدیل با float لازم نیست. تفاوت رشتهٔ "12" با عدد 12 را با type در یک برنامهٔ جدا ببینید.
قرارداد ورودی و خروجی
مثال فقط یک ورودی است، نه همهٔ مسئله. مقدارها را از data بخوانید و جواب نمونه را ثابت در برنامه ننویسید. نام کلیدها، نوع عدد و رشته و ترتیب فهرستها بخشی از قراردادند. در پروژه، بخش پایانی main.py نتیجهٔ تابع را در result.json ذخیره میکند؛ آن بخش را نگه دارید. موفقیت اجرای برنامه با درستبودن پاسخ و قبولی ارزیابی یکسان نیست.
خطای رایج و راه تشخیص
float نمایش دقیق همهٔ اعشار دهدهی نیست؛ مثلاً 0.1 + 0.2 ممکن است نمایش طولانی داشته باشد. round برای این تمرین کافی است، ولی برای حسابداری دقیق بعداً Decimal را یاد میگیریم. هیچوقت برای جمع عددها آنها را به رشته تبدیل نکنید.
تمرین مستقل و خودآزمایی
قیمت را ۰٫۱ و تعداد را ۳ بگذارید. نمایش ضرب خام و خروجی round را مقایسه کنید. سپس نام متغیرها را بدون تغییر رفتار برنامه خواناتر کنید.
برای هر آزمایش، ورودی، خروجی مورد انتظار و خروجی واقعی را جدا بنویسید. اگر تفاوتی دیدید، یک نمونهٔ کوچکتر بسازید و تغییر را دوباره امتحان کنید. به جای اجرای چند تغییر همزمان، هر بار یک فرض را بررسی کنید. پس از فهم نمونه، پروژهٔ مرتبط را در میزکار حل کنید؛ ارزیابی با چند ورودی متفاوت انجام میشود و پاسخ ثابت نمونه پذیرفته نخواهد شد.
گام بعدی
موضوعهای این درس: Variables · float · round. اگر میتوانید دلیل هر خط را توضیح دهید و ورودی تازهای را بدون دستکاری منطق اصلی حل کنید، به مقالهٔ بعدی بروید. هدف مسیر مقدماتی، تسلط بر همین رفتارهای کوچک و قابل آزمایش است؛ برای شروع پروژههای یادگیری ماشین عجله نکنید.
منابع و مطالعهٔ بیشتر
برای بررسی جزئیات و ادامهٔ مطالعه؛ متن این راهنما مستقلاً برای نوونتیکس نوشته شده است.
