پیش‌نیاز و هدف یادگیری

این بخش، گام 1 از مسیر «پایتون از صفر» است. هدف این درس اجرای اولین تابع و ساخت رشته با نام ورودی است. پیش‌نیاز: بدون پیش‌نیاز برنامه‌نویسی؛ آشنایی با بازکردن فایل و تایپ متن. کتابخانهٔ خارجی لازم نیست؛ ماژول‌های استاندارد همراه Python 3 هستند. اگر مفهوم قبلی برایتان ناآشناست، ابتدا مقالهٔ پیش‌نیاز را بخوانید و مثالش را اجرا کنید؛ حفظ‌کردن کد جای فهم ورودی و خروجی را نمی‌گیرد.

مفهوم اصلی به زبان ساده

پایتون مفسر است؛ فایل متنی با پسوند py را به مفسر می‌دهیم تا دستورها اجرا شوند. برای شروع نیازی به یادگیری ماشین یا نصب بسته‌های علمی ندارید. در رایانهٔ شخصی Python 3 را نصب کنید و با python --version نسخه را ببینید؛ در بعضی سیستم‌ها نام فرمان python3 است. در میزکار سایت، مفسر از قبل آماده است. نام فایل را hello.py بگذارید و از نام‌هایی مثل json.py پرهیز کنید، چون ممکن است ماژول استاندارد را بپوشاند.

مسئلهٔ این درس

در پروژهٔ «کارت خوشامدگویی شخصی» باید یک تابع مستقل بنویسید. میزکار ورودی نمونه را در request.json قرار می‌دهد؛ تابع solve دیکشنری داده را می‌گیرد و نتیجهٔ خود را برمی‌گرداند. در این قرارداد input لازم نیست و خواندن تعاملی از ترمینال ممکن است اجرای ارزیابی را متوقف کند. از مثال زیر شروع کنید و پیش از اجرای آن، شکل نتیجه را حدس بزنید.

نمونه‌کد قابل اجرا

def solve(data):
    name = data['name'].strip() or 'دوست'
    return {'message': f'سلام، {name}!'}

print(solve({'name': 'سارا'}))

نتیجهٔ مورد انتظار

{
  "message": "سلام، سارا!"
}

توضیح مرحله‌به‌مرحله

تابع solve یک دیکشنری می‌گیرد و یک دیکشنری برمی‌گرداند. کلید name نام شخص است. strip فاصله‌های ابتدا و انتهای نام را برمی‌دارد، اما فاصلهٔ بین اجزای نام را حفظ می‌کند. اگر نتیجه خالی باشد، نام عمومی «دوست» را انتخاب می‌کنیم. f-string مقدار متغیر را داخل آکولاد قرار می‌دهد. خروجی این مثال «سلام، سارا!» است؛ ویرگول فارسی و علامت تعجب هم جزئی از متن مورد انتظارند.

قرارداد ورودی و خروجی

مثال فقط یک ورودی است، نه همهٔ مسئله. مقدارها را از data بخوانید و جواب نمونه را ثابت در برنامه ننویسید. نام کلیدها، نوع عدد و رشته و ترتیب فهرست‌ها بخشی از قراردادند. در پروژه، بخش پایانی main.py نتیجهٔ تابع را در result.json ذخیره می‌کند؛ آن بخش را نگه دارید. موفقیت اجرای برنامه با درست‌بودن پاسخ و قبولی ارزیابی یکسان نیست.

خطای رایج و راه تشخیص

print برای دیدن خروجی است، ولی return نتیجه را به فراخواننده می‌دهد. چاپ متن بدون برگرداندن دیکشنری، قرارداد پروژه را برآورده نمی‌کند. تورفتگی چهار فاصلهٔ یکسان داشته باشید؛ مخلوط‌کردن تب و فاصله ممکن است IndentationError بدهد.

تمرین مستقل و خودآزمایی

نام را به «علی رضا» تغییر دهید؛ سپس رشتهٔ خالی و نامی با فاصلهٔ دو طرف را امتحان کنید و قبل از اجرا خروجی هر کدام را بنویسید.

برای هر آزمایش، ورودی، خروجی مورد انتظار و خروجی واقعی را جدا بنویسید. اگر تفاوتی دیدید، یک نمونهٔ کوچک‌تر بسازید و تغییر را دوباره امتحان کنید. به جای اجرای چند تغییر هم‌زمان، هر بار یک فرض را بررسی کنید. پس از فهم نمونه، پروژهٔ مرتبط را در میزکار حل کنید؛ ارزیابی با چند ورودی متفاوت انجام می‌شود و پاسخ ثابت نمونه پذیرفته نخواهد شد.

گام بعدی

موضوع‌های این درس: print · str · f-string. اگر می‌توانید دلیل هر خط را توضیح دهید و ورودی تازه‌ای را بدون دست‌کاری منطق اصلی حل کنید، به مقالهٔ بعدی بروید. هدف مسیر مقدماتی، تسلط بر همین رفتارهای کوچک و قابل آزمایش است؛ برای شروع پروژه‌های یادگیری ماشین عجله نکنید.

منابع و مطالعهٔ بیشتر

برای بررسی جزئیات و ادامهٔ مطالعه؛ متن این راهنما مستقلاً برای نوونتیکس نوشته شده است.