منابع ترجمه · The Python Tutorial · فصل ۲

استفاده از مفسر پایتون (آموزش رسمی پایتون، فصل ۲)

۵ دقیقه مطالعه · به‌روزرسانی ۳ آبان ۱۴۰۵

منبع اصلی: The Python Tutorial, Chapter 2: Using the Python Interpreter — Python Software Foundation

💡 این صفحه مثل یک نوت‌بوک Jupyter است: متغیر و تابعی که در یک سلول تعریف شود، در سلول‌های بعدی همین صفحه در دسترس است. سلول‌ها را به ترتیب اجرا کنید، یا با «⏮ تا اینجا» همهٔ سلول‌های قبلیِ اجرانشده را یک‌جا اجرا کنید.

۲٫۱. فراخوانی مفسر

مفسر پایتون معمولاً در ماشین‌هایی که در دسترس است با نام /usr/local/bin/python3.15 نصب می‌شود؛ با قرار دادن /usr/local/bin در مسیر جست‌وجوی شل یونیکس خود می‌توانید با تایپ دستور زیر آن را اجرا کنید:

python3.15

در شل. [۱] از آنجا که انتخاب پوشه‌ای که مفسر در آن قرار می‌گیرد یک گزینهٔ نصب است، مکان‌های دیگری هم ممکن است؛ از متخصص پایتون محلی یا مدیر سیستم خود بپرسید. (مثلاً /usr/local/python یک مکان جایگزین پرطرفدار است.)

روی ماشین‌های ویندوزی که پایتون را از فروشگاه مایکروسافت نصب کرده‌اید، فرمان python3.15 در دسترس خواهد بود. اگر راه‌انداز py.exe نصب باشد، می‌توانید از فرمان py استفاده کنید. برای راه‌های دیگر اجرای پایتون به مدیر نصب پایتون مراجعه کنید.

تایپ نویسهٔ پایان فایل (Control-D در یونیکس، Control-Z در ویندوز) در اعلان اصلی (primary prompt) باعث می‌شود مفسر با وضعیت خروج صفر خارج شود. اگر این کار جواب نداد، می‌توانید با تایپ فرمان quit() از مفسر خارج شوید.

قابلیت‌های ویرایش خط مفسر شامل ویرایش تعاملی، جایگزینی تاریخچه و تکمیل خودکار کد در بیشتر سیستم‌هاست. شاید سریع‌ترین راه برای بررسی اینکه ویرایش خط فرمان پشتیبانی می‌شود یا نه، این باشد که در اعلان پایتون یک کلمه تایپ کنید و سپس کلید جهت چپ (یا Control-b) را بزنید. اگر مکان‌نما حرکت کرد، ویرایش خط فرمان را دارید؛ برای آشنایی با کلیدها به پیوست ویرایش ورودی تعاملی و جایگزینی تاریخچه نگاه کنید. اگر به نظر می‌رسد هیچ اتفاقی نمی‌افتد، یا دنباله‌ای مانند ^[[D یا ^B ظاهر می‌شود، ویرایش خط فرمان در دسترس نیست؛ در این حالت فقط می‌توانید با backspace نویسه‌های خط جاری را پاک کنید.

مفسر تا حدی شبیه شل یونیکس کار می‌کند: وقتی با ورودی استانداردِ متصل به یک دستگاه tty فراخوانی شود، فرمان‌ها را به‌صورت تعاملی می‌خواند و اجرا می‌کند؛ وقتی با یک آرگومان نام فایل یا با یک فایل به‌عنوان ورودی استاندارد فراخوانی شود، یک اسکریپت را از آن فایل می‌خواند و اجرا می‌کند.

راه دوم برای اجرای مفسر python -c command [arg] ... است که دستور(های) موجود در command را اجرا می‌کند، مشابه گزینهٔ -c در شل. از آنجا که دستورهای پایتون اغلب شامل فاصله یا نویسه‌هایی هستند که برای شل خاص‌اند، معمولاً توصیه می‌شود command را به‌طور کامل در گیومه قرار دهید.

برخی از ماژول‌های پایتون به‌عنوان اسکریپت هم مفیدند. این‌ها را می‌توان با python -m module [arg] ... فراخوانی کرد که فایل منبع module را طوری اجرا می‌کند که انگار نام کامل آن را در خط فرمان نوشته‌اید.

وقتی از یک فایل اسکریپت استفاده می‌شود، گاهی مفید است بتوانید اسکریپت را اجرا کنید و پس از آن وارد حالت تعاملی شوید. این کار با دادن -i پیش از اسکریپت ممکن است.

همهٔ گزینه‌های خط فرمان در خط فرمان و محیط توضیح داده شده‌اند.

۲٫۱٫۱. ارسال آرگومان‌ها

وقتی نام اسکریپت و آرگومان‌های بعد از آن برای مفسر مشخص باشند، به فهرستی از رشته‌ها تبدیل شده و به متغیر argv در ماژول sys اختصاص داده می‌شوند. می‌توانید با اجرای import sys به این فهرست دسترسی پیدا کنید. طول فهرست دست‌کم یک است؛ وقتی هیچ اسکریپت و آرگومانی داده نشده باشد، sys.argv[0] یک رشتهٔ خالی است. وقتی نام اسکریپت به‌صورت '-' داده شود (به معنای ورودی استاندارد)، sys.argv[0] برابر '-' می‌شود. وقتی از -c command استفاده شود، sys.argv[0] برابر '-c' می‌شود. وقتی از -m module استفاده شود، sys.argv[0] برابر نام کامل ماژولِ پیداشده می‌شود. گزینه‌هایی که بعد از -c command یا -m module بیایند توسط پردازش گزینه‌های مفسر پایتون مصرف نمی‌شوند، بلکه در sys.argv باقی می‌مانند تا فرمان یا ماژول آن‌ها را مدیریت کند.

۲٫۱٫۲. حالت تعاملی

وقتی فرمان‌ها از یک tty خوانده شوند، گفته می‌شود مفسر در حالت تعاملی (interactive mode) است. در این حالت، مفسر با اعلان اصلی که معمولاً سه علامت بزرگ‌تر (>>>) است، فرمان بعدی را می‌پرسد؛ برای خطوط ادامه، با اعلان ثانویه که به‌طور پیش‌فرض سه نقطه (...) است، می‌پرسد. مفسر پیش از چاپ اولین اعلان، یک پیام خوش‌آمد شامل شمارهٔ نسخه و اعلان حق نشر چاپ می‌کند:

$ python3.15
Python 3.15 (default, May 7 2025, 15:46:04)
[GCC 10.2.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>>

هنگام وارد کردن یک ساختار چندخطی، به خطوط ادامه نیاز است. برای نمونه، به این دستور if نگاه کنید:

>>> the_world_is_flat = True
>>> if the_world_is_flat:
...     print("Be careful not to fall off!")
...
Be careful not to fall off!

برای اطلاعات بیشتر دربارهٔ حالت تعاملی، به حالت تعاملی مراجعه کنید.

۲٫۲. مفسر و محیط آن

۲٫۲٫۱. کدگذاری کد منبع

به‌طور پیش‌فرض، فایل‌های منبع پایتون با کدگذاری UTF-8 در نظر گرفته می‌شوند. در این کدگذاری، نویسه‌های بیشتر زبان‌های دنیا را می‌توان هم‌زمان در لیترال‌های رشته‌ای، شناسه‌ها (identifiers) و توضیحات (comments) به کار برد — هرچند کتابخانهٔ استاندارد فقط از نویسه‌های ASCII برای شناسه‌ها استفاده می‌کند، قراردادی که هر کد قابل‌حمل باید از آن پیروی کند. برای نمایش درست همهٔ این نویسه‌ها، ویرایشگر شما باید تشخیص دهد که فایل UTF-8 است و باید از قلمی استفاده کند که همهٔ نویسه‌های فایل را پشتیبانی کند.

برای اعلام یک کدگذاری غیر از کدگذاری پیش‌فرض، باید یک خط توضیح ویژه به‌عنوان اولین خط فایل افزوده شود. نحو آن به این صورت است:

# -*- coding: encoding -*-

که در آن encoding یکی از codecs معتبر پشتیبانی‌شده توسط پایتون است.

برای مثال، برای اعلام اینکه کدگذاری Windows-1252 باید استفاده شود، خط اول فایل کد منبع شما باید این باشد:

# -*- coding: cp1252 -*-

یک استثنا بر قاعدهٔ خط اول وقتی است که کد منبع با خط «شبانگ» (shebang) یونیکس شروع شود. در این حالت، اعلان کدگذاری باید به‌عنوان خط دوم فایل افزوده شود. برای مثال:

#!/usr/bin/env python3
# -*- coding: cp1252 -*-

پاورقی‌ها

[۱] در یونیکس، مفسر پایتون ۳٫x به‌طور پیش‌فرض با فایل اجرایی‌ای به نام python نصب نمی‌شود، تا با فایل اجرایی پایتون ۲٫x که هم‌زمان نصب است تداخل نکند.