شروع کار با حالت اسکریپتی مفسر زبان برنامه‌نویسی پایتون


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

در واقع،‌ پس از نصب موفقیت‌آمیز پکیج پایتون می‌توانیم از مفسر آن به عنوان یک نرم‌افزار قابل‌اجرا استفاده کرده و برنامه‌های نوشته‌شده به زبان پایتون را اجرا نماییم که برای این منظور به دو صورت می‌توان با مفسر پایتون ارتباط برقرار کرد که عبارتند از حالت اسکریپتی و حالت تعاملی که حالت اول را در این آموزش به تفصیل مورد بررسی قرار داده و در آموزش بعد به بررسی حالت تعاملی خواهیم پرداخت.

برای برنامه‌نویسی به این زبان، آنچه مفسر پایتون آن را به عنوان یک برنامه می‌شناسد چیزی جز یک فایل متنی نیست که با پسوند py. ذخیره شده باشد که در ادامه خواهید دید چگونه می‌توانید اولین برنامهٔ پایتون خود را ایجاد کرده و اجرا نمایید.

نکته
استفاده از پسوند py. تنها برای فایل‌های ایمپورت‌شده، که در ادامهٔ آموزش‌ها در مورد آن‌ها صحبت خواهیم کرد، الزامی است اما در عین حال برای سازگاری بیشتر برنامه‌ها، تمامی فایل‌های پایتون را با این پسوند ذخیره می‌کنیم.

برای شروع کار ابتدا فولدری تحت عنوان SokanAcademy در یکی از درایوهای سیستم خود ایجاد می‌کنیم تا تمام فایل‌ها را در آن ذخیره کنیم به طوری که این کار دسترسی ما را فایل‌های ذخیره‌شده راحت‌تر خواهد کرد. در ادامه کافی است یک ادیتور مانند Notepad را باز کنید (در صورتی که از سیستم‌عامل گنو/لینوکس توزیع اوبونتو استفاده می‌کنید، ادیتور پیش‌فرض روی این سیستم‌عامل Gedit و ویرایشگر متن پیش‌فرض روی سیستم‌عامل مکینتاش هم TextEdit نام دارد.)

هشدار
دقت داشته باشید که از نرم‌افزارهایی همچون Wordpad یا Microsoft Word استفاده نکنید زیرا این برنامه‌ها برای ذخیره‌سازی فایل‌ها از یکسری کاراکترهای اضافی استفاده می‌کنند که مفسر پایتون آن‌ها را نفهمیده و در اجرا دچار مشکل خواهد شد.

برای شروع، در اولین خط از فایلی که در ادیتور دلخواه خود باز کرده‌ایم کد زیر را وارد می‌کنیم:

print("Hello SokanAcademy.com!")

در مورد ساختار این کد بعداً توضیح خواهیم داد اما با توجه به قابل‌فهم بودن زبان پایتون حتماً متوجه می‌شوید که انتظار داریم این کد عبارت !Hello SokanAcademy.com را در خروجی چاپ کند. حال فایل متنی خود را با نامی همچون hello.py در پوشه‌ای که قبلاً ایجاد کردیم ذخیره می‌کنیم.

ساده‌ترین راه برای اجرای این برنامه، کلیک کردن روی نام فایل است. به عبارتی، برای اجرای این برنامه کافی است به محل ذخیرهٔ فایل مد نظر بروید و روی آن دو بار کلیک کنید و چنانچه پکیج پایتون به درستی نصب شده باشد، یک صفحهٔ سیاه رنگ باز خواهد شد که عبارت !Hello SokanAcademy.com را نمایش می‌دهد و بلافاصله بسته می‌شود که در این صورت ما موفق شده‌ایم اولین برنامهٔ خود را به زبان پایتون بنویسیم و اجرا کنیم.

در حقیقت با نصب پکیج پایتون روی سیستم‌عامل ویندوز، سیستم برای اجرای فایل‌هایی با پسوندهای py. و pyw. که نشانگر برنامه‌های نوشته‌شده با پایتون هستند، به سراغ برنامه‌های py.exe و pyw.exe که لانچرهای ویندوزی هستند می‌رود و با استفاده از آن‌ها برنامهٔ مذکور را اجرا می‌کند اما در سیستم‌عامل‌های دیگر نظیر مکینتاش و گنو/لینوکس با اندکی تفاوت این کار صورت می‌گیرد. برای مثال، در سیستم‌عامل مک از Python Launcher برای اجرای برنامه‌ها استفاده می‌کنیم بدین صورت که از فولدر Applications فولدر MacPython یا Python N.M را باز می‌کنیم و Finder را در آن می‌یابیم و روی آن کلیک می‌کنیم تا اجرا شود که در این حالت دو راه پیش روی ما وجود دارد:

- اسکریپت مد نظر را بکشیم و داخل PythonLauncher بیندازیم تا اجرا شود.
- با کلیک روی PythonLauncher آن را به عنوان اپلیکیشن پیش‌فرض برای باز کردن فایل‌هایی با پسوند py. انتخاب کنیم.

روش دیگری که برای اجرای اسکریپت‌های پایتون به کار می‌رود استفاده از کامندلاین (خط فرمان) است که دسترسی به آن در سیستم‌عامل‌های مختلف متفاوت است به طوری که:

- در ویندوز از طریق پنجرهٔ کنسول داس به کامندلاین دسترسی داریم که ساده‌ترین راه باز کردن این پنجره فشردن هم‌زمان کلیدهای Windows + R می‌باشد و کافی است در پنجرهٔ بازشده عبارت cmd را تایپ کنید و دکمهٔ OK را بزنید تا کامند پرامپت باز شود.
- در مک‌اواس از طریق دنبال کردن مسیر Applications→Utilities→Terminal و باز کردن پنجرهٔ ترمینال به این محیط دست می‌یابیم.
- در لینوکس از طریق یک پنجرهٔ ترمینال این کار امکان‌پذیر است.

برای مثال، تصویر زیر محیط کامندلاین را در سیستم‌عامل ویندوز نشان می‌دهد:

دقت داشته باشید بخشی که در تصویر با قرار گرفتن درون دایرهٔ قرمز رنگ مشخص شده است در همهٔ سیستم‌ها یکسان نیست و به طور مثال در اینجا مسیر دایرکتوری پیش‌فرض سیستم را که در آن قرار داریم مشخص کرده است. بنابراین بدون در نظر گرفتن این تفاوت، کافی است دستور اجرای ماژول را به این فرم وارد کنیم:

python Location\script_name.py

در این دستور کلیدواژهٔ python مفسر این زبان را فرا می‌خواند، Location نشانی محل ذخیرهٔ اسکریپت را روی حافظهٔ سیستم نشان می‌دهد که در مثال بعدی D:\SokanAcademy است و script_name.py نام و پسوند فایل برنامه را نشان می‌دهد که در این مورد hello.py است. برای مثال برای اجرای برنامه‌ای که نوشتیم کامند زیر را وارد می‌کنیم:

python D:\SokanAcademy\hello.py

در ادامه خروجی اجرای این دستور را از طریق کامندلاین ویندوز می‌بینیم:

همان‌طور که ملاحظه می‌شود، خروجی اسکریپت مد نظرمان در پنجرهٔ کامندلاین چاپ می‌شود اما اکنون ممکن است این پرسش شکل گیرد که با اجرای یک اسکریپت پایتون، در پشت صحنه چه اتفاقاتی رخ می‌دهد که در ادامه این موضوع را به دقت مورد بررسی قرار خواهیم داد.

فرایند تبدیل اسکریپت‌های پایتون به بایت‌کد
پس از اینکه کدهای پایتون را در فایلی نوشتیم، مفسر پایتون را برای اجرای آن صدا می‌زنیم و فایل مذکور شامل اسکریپت‌های مد نظرمان را در اختیارش قرار می‌دهیم و مفسر پایتون هم پیش از اجرای برنامه باید چند تَسک مختلف را انجام دهد. در حقیقت، ابتدا به ساکن دستورات تبدیل به چیزی به نام Byte Code شده سپس وارد چیزی به نام Python Virtual Machine یا به اختصار PVM به معنی «ماشین مجازی پایتون» می‌شوند. تصویر زیر نشان‌دهندهٔ فرآیند اجرای کدهای یک برنامهٔ نوشته‌شده با زبان برنامه‌نویسی پایتون است:

کامپایل یا تبدیل سورس‌کد برنامه به بایت‌کد کاملاً در پشت صحنه و به دور از چشم دولوپر اتفاق می‌افتد و پس از تکمیل فرآیند کامپایل، بایت‌کدها در فایلی با همان نام اسکریپت اولیه و این بار با پسوند pyc. ذخیره می‌شوند که حرف آخرش نشان‌دهندهٔ صفت Compiled است (توجه داشته باشید که از نسخهٔ 3.2 پایتون به بعد این فایل‌ها درون پوشه‌ای با نام __pycache__ قرار می‌گیرند.) 

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

لیست نظرات
کاربر میهمان
دیدگاه شما چیست؟
کاربر میهمان
کاربر میهمان
کاربر میهمانمن یک کاربر مهمان هستم
۱۳۹۷/۰۵/۲۱
سلام
خسنه نباشید
من با توجه به مسیر ذخیرم این کد رو میزنم
python f:\python\works\hello
و این ارور رو میده
invalid syntax
میخواستم ببینم کجای کارم اشتباهه؟
amirjavadazadi
amirjavadazadi
۱۳۹۷/۰۴/۰۴
سلام
وقتی روش اجرای برنامه رو تو کامند لاین میرم مینویسه:
python: can't open file 'C:\Python': [Errno 2] No such file or directory
puriaamini1999
puriaamini1999
۱۳۹۶/۰۵/۱۰
سلام خسته نباشید
python D:SokanAcademyhello.py
من این کد رو مطابق اطلاعات خودم تو cmd مینویسم اما این ارور رو میده
'python' is not recognized as an internal or external command,
operable program or batch file.
چه کنم؟
soldier
soldier
۱۳۹۶/۰۳/۱۲
خیلی ممنون از مطالبتون خیلی با حاله
کاربر میهمان
abozarمن یک کاربر مهمان هستم
۱۳۹۶/۰۱/۰۵
من یه برنامه نوشتم فایل اصلی main هست یه ایل دیگه دارم که اسمش reg هست (پسوند py ) داخل فایل reg یه تابع هست و داخل فایل main فایل reg رو import کردم وقتی برنامه main رو اجرا میکنم یه پوشه __pycashe__ ایجاد میکنه و فایل reg رو کامپایل میکنه من میخوام main کامپایل بشه چیکار کنم ؟؟؟؟
milad
milad
۱۳۹۵/۱۲/۰۶
سلام و خسته نباشید خدمت شما، ببخشید من در فراخوانی فایل مشکل دارم چطوری باید این کار رو بکنم.
RESTART:D:1.py
SyntaxError: invalid syntax این خطا رو میده.
Meysam
Meysam
۱۳۹۵/۱۰/۰۳
سلام من وقتی داخل نوت پد یا یا آیدل کدهای گفته شده رو مینویسم وبا پسونده دات پی وای در فایل مورد نظر ذخیره میکنم رو اون فایل وقتی دوبار کلیک میکنم اجرا نمیشه برنامه فقط یک صفحه خالی و سیاه باز میشه خیلیم سریع میره در حالی که با استفاده از روش دوم یعنی سیستم پرامپت بعد از دادن آدرس فایل خروجی فابل به درستی قابل مشاهدس .خوشحال میشم راهنماییم کنین با تشکر از سایت خوبتون.
کاربر میهمان
amirsamمن یک کاربر مهمان هستم
۱۳۹۵/۰۷/۲۱
برای من ارور
[errno 2]
no such file or directory
میشه یکم بیشتر توضیح بدین
کاربر میهمان
aimn_hunterمن یک کاربر مهمان هستم
۱۳۹۵/۰۷/۱۴
با سلام و خسته نباشید ممنون از سایت خوبتون راستیش ی سوال داشتم من تو نت پد ی کدیو مینوسیم و بعد سیو میکنم و بازش میکنم و صفحه سیاه میادو سریع میره چیکار کنم ک اون صفحه از بین نره ممنون میشم اگه بازم کمکم کنین
ham
ham
۱۳۹۵/۰۶/۰۶
سلام و خسته نباشید. واقعا ممنون از این آموزش روان و سلیس. اقایون عزیز من مشکلی دارم. الان از پایتون نسخه ۳.۵.۲ در سیستم عامل مکینتاش استفاده کردم. نصب کردم از سایتش بعد طبق آموزش اینجا عبارت print("Hello SokanAcademy!") رو در ویرایشگر متن مکینتاش تایپ کردم یعنی TextEdit بعد میخوام ذخیره کنم حالت py نداره. و من اول ذخیره میکنم بعد با اضافه کردن .py به اسم فایلم اونو تبدیل کردم به فایل پایتون. حالا بعد از اینکه روش دبل کلیک میکنم پنچره سیاه برام باز نمیشه و بجاش بلافاصله پایتون لانچر و ترمینال باهم باز و ارور
Last login: Sun Aug 28 03:01:32 on ttys000
hers-MacBook-Pro:~ herhamedhojati$ cd '/Users/herhamedhojati/Desktop/' && '/usr/bin/pythonw' '/Users/herhamedhojati/Desktop/hello_hamed.py' && echo Exit status: $? && exit 1
File "/Users/herhamedhojati/Desktop/hello_hamed.py", line 1
{rtf1ansiansicpg1252cocoartf1404cocoasubrtf470
^
SyntaxError: unexpected character after line continuation character
hers-MacBook-Pro:Desktop herhamedhojati$

نشون میده!!!!! لطفا توجیه ام کنید کجتی کارم اشتباهست.
پیشاپیش ممنون