در فصل گذشته دیدیم که چهطور میتوان مفسر پایتون را روی سیستمعاملهای ویندوز، گنو/لینوکس و مکینتاش نصب کنیم و در ادامهٔ آموزشها در این فصل خواهیم دید که چهطور میتوانیم کدهای خود را به مفسر تحویل داده تا پس از تفسیر آنها را اجرا کرده و نتیجه را در معرض دیدمان قرار دهد.
در واقع، پس از نصب موفقیتآمیز پکیج پایتون میتوانیم از مفسر آن به عنوان یک نرمافزار قابلاجرا استفاده کرده و برنامههای نوشتهشده به زبان پایتون را اجرا نماییم که برای این منظور به دو صورت میتوان با مفسر پایتون ارتباط برقرار کرد که عبارتند از حالت اسکریپتی و حالت تعاملی که حالت اول را در این آموزش به تفصیل مورد بررسی قرار داده و در آموزش بعد به بررسی حالت تعاملی خواهیم پرداخت.
برای برنامهنویسی به این زبان، آنچه مفسر پایتون آن را به عنوان یک برنامه میشناسد چیزی جز یک فایل متنی نیست که با پسوند 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) فرستاده میشوند و توجه داشته باشیم که ماشین مجازی پایتون یک برنامهٔ مجزا که نیاز به نصب داشته باشد نیست بلکه بخشی از پکیج مفسر پایتون است. در حقیقت، پیویام یکسری الگوریتم است که روی تکتک دستورات بایتکد برنامه اِعمال میشوند و میتوان گفت پیویام آخرین مرحله از اقداماتی است که مفسر پایتون روی سورسکد برنامههای پایتون انجام میدهد.