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


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

حالت اسکریپتی کدنویسی با زبان پایتون
برای برنامه نویسی به زبان پایتون شما می توانید کدهای برنامه را در هر جایی بنویسید، از یک صفحه کاغذ گرفته تا ویرایشگرهای متن و IDE ها یا محیط های توسعه ی یکپارچه ی نرم افزار. با این وجود، آن چه کامپیوتر شما آن را به عنوان یک برنامه ی پایتون می شناسد چیزی جز یک فایل متنی نیست که با پسوند py. در حافظه ی کامپیوتر ذخیره می شود. این فایل Module (ماژول) نامیده می شود که گاهی به آن اسکریپت نیز گفته می شود؛ در حقیقت اسکریپت ها فایل های ماژولی هستند که به طور مستقیم اجرا می شوند. بنابراین در صورتی که پایتون را به درستی روی سیستم خود نصب کرده باشید، با ایجاد چنین فایلی و نوشتن کدها در آن می توانید به سادگی برنامه ی خود را اجرا کنید. در ادامه خواهید دید که چگونه می توانیم با هم اولین برنامه ی پایتون خود را ایجاد کرده و اجرا کنیم.

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

برای شروع کار ابتدا فولدری را با نام SokanAcademy در یکی از درایوهای کامپیوتر خود ایجاد می کنیم تا تمام ماژول های خود را در آن ذخیره می کنیم، این کار دسترسی ما را به مسیر برنامه های ذخیره شده راحت تر خواهد کرد. در ادامه کافی است یک ویرایشگر متن مانند Notepad را باز کنید (در صورتی که از سیستم عامل گنو/لینوکس توزیع اوبونتو استفاده می کنید، ویرایشگر متن پیش فرض روی این سیستم عامل gedit و ویرایشگر متن پیش فرض روی سیستم عامل مکینتاش TextEdit نام دارد.) البته دقت کنید که از ویرایشگرهایی هم چون Wordpad یا Microsoft Word استفاده نکنید چون این برنامه ها برای فرمت بندی از کاراکترهای اضافی استفاده می کنند که مفسر پایتون آن ها را نفهمیده و در اجرا دچار مشکل خواهد شد. در پنجره ی باز شده ی ویرایشگر خود، کد زیر را وارد کنید:

print("Hello SokanAcademy.com!")

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

در حقیقت با نصب پکیج پایتون روی سیستم عامل ویندوز، دستگاه برای اجرای فایل هایی با پسوند py. و pyw. که نشان دهنده ی ماژول های پایتون هستند به سراغ برنامه های py.exe و pyw.exe که لانچرهای ویندوز هستند می رود و با استفاده از آن ها ماژول برنامه را اجرا می کند.

در سیستم عامل های دیگر نظیر مکینتاش و لینوکس نیز با اندکی تفاوت روال کار همین خواهد بود. برای مثال در سیستم عامل مک از Python Launcher برای اجرای ماژول ها استفاده می کنیم. به این صورت که از فولدر Applications فولدر MacPython یا Python N.M را باز می کنیم و Finder را در آن می یابیم و روی آن کلیک می کنیم تا اجرا شود. در این حالت دو راه وجود دارد:

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

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

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

برای مثال تصویر زیر پنجره ی کامند لاین را در سیستم عامل ویندوز نشان می دهد:

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

python Location\script_name.py

برای مثال برای اجرای اسکریپت hello.py کد زیر را وارد می کنیم:

python D:\SokanAcademy\hello.py

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

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

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

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

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

به خاطر داشته باشید
چیزی که باید به آن توجه داشته باشید این است که اگر شما در مراحل مقدماتی یادگیری زبان پایتون هستید نیازی نیست که خود را درگیر فکر کردن در مورد نحوه ی اجرای برنامه ها کنید. اجازه دهید همان طور که مفسر پایتون این عملیات را از دید شما پنهان می کند، اجرای آن را در پشت پرده به عهده داشته باشد.
لیست نظرات
کاربر میهمان
دیدگاه شما چیست؟
کاربر میهمان
کاربر میهمان
کاربر میهمانمن یک کاربر مهمان هستم
سلام
خسنه نباشید
من با توجه به مسیر ذخیرم این کد رو میزنم
python f:\python\works\hello
و این ارور رو میده
invalid syntax
میخواستم ببینم کجای کارم اشتباهه؟
amirjavadazadi
amirjavadazadi
سلام
وقتی روش اجرای برنامه رو تو کامند لاین میرم مینویسه:
python: can't open file 'C:\Python': [Errno 2] No such file or directory
ali38644233
ali38644233
ببخشید میشه راجب پسوند .py توضیح بدید.
این پسوند با چه نرم افزاری درست میشه؟
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
سلام من وقتی داخل نوت پد یا یا آیدل کدهای گفته شده رو مینویسم وبا پسونده دات پی وای در فایل مورد نظر ذخیره میکنم رو اون فایل وقتی دوبار کلیک میکنم اجرا نمیشه برنامه فقط یک صفحه خالی و سیاه باز میشه خیلیم سریع میره در حالی که با استفاده از روش دوم یعنی سیستم پرامپت بعد از دادن آدرس فایل خروجی فابل به درستی قابل مشاهدس .خوشحال میشم راهنماییم کنین با تشکر از سایت خوبتون.