اسکریپت نویسی با پایتون یکی از راههای بسیار مناسب برای مدیریت وظایف تکراری در طول توسعه اپلکیشنهای مختلف است. پایتون، به یکی از فراگیرترین زبانهای توسعه یافته تبدیل شده و به طور مکرر توسط «مدیران سیستم» (Sysadmins)، «دانشمندان داده» (Data Scientists)، توسعهدهندگان نرمافزارهای بک اند و توسعهدهندگان وب اپلیکیشنها به کار برده میشود. زبان برنامه نویسی پایتون موارد کاربرد بسیار گستردهای دارد. در این میان، اجرا کردن وظیفه تکراری به صورت دستی به شدت خستهکننده است. بنابراین برنامه نویس ترجیح میدهد که چنین رفتارهایی به صورت خودکار انجام شوند. با استفاده از پایتون به عنوان زبان برنامه نویسی چندکاره و بسیار قدرتمند، برای مدیریت خودکار این وظایف به سادگی میتوان اسکریپت نوشت.
در این مطلب از مجله فرادرس به بررسی روش استفاده از پایتون برای اسکریپت نویسی با کمک مثالهای ساده میپردازیم. ابتدا با توضیح کامل و جامعی نشان میدهیم که چگونه باید اسکریپتهای پایتون را نوشته و اجرا کنیم.
اسکریپت نویسی با پایتون چیست؟
اسکریپت نویسی با پایتون شامل نوشتن برنامههای کوچکی است که برای انجام وظایف تکراری به صورت خودکار استفاده میشوند. اسکریپتها میتوانند دامنه وسیعی از توابع را شامل شوند. این تکه برنامههای کوچک بیشتر توسط زبانهای مفسری مانند پایتون نوشته میشوند تا زبانهای کامپایلری.
نوشتن اسکریپتها را مانند آموزش دادن به کامپیوتر برای انجام کارها به صورت خودکار در نظر بگیرید. این کارها میتوانند شامل مرتب کردن فایلها، کارهای تکراری با اعداد یا حتی ارسال ایمیلها باشند. برای انجام همه این کارها میتوان اسکریپت پایتون مخصوصی را نوشت.
مقایسه اسکریپت نویسی و برنامه نویسی و کدنویسی
اسکریپت نویسی، برنامه نویسی و کدنویسی در ظاهر شبیه به یکدیگر هستند. اما این تکنیکها دارای تفاوتهای جزئی و مهمیاند که به عنوان برنامه نویس حرفهای باید با آنها آشنا باشیم. در این بخش از مطلب این سه مورد را از لحاظ مختلف با یکدیگر مقایسه کردهایم.
در ابتدا باید به بررسی اختلاف این موارد در تعریف بپردازیم. با کمک این بررسی بهتر میتوانیم ماهیت این تکنیکها را درک کنیم.
- اسکریپت نویسی: اسکریپتها را با هدف خودکار کردن وظایف مینویسیم.
- برنامه نویسی: برنامهنویسی به منظور توسعه اپلیکیشنهای کامل انجام میشود.
- کدنویسی: کدنویسی در تمام زبانها انجام میشود و زیربنای برنامه نویسی و اسکریپت نویسی است.
روش اجرای این تکنیکها هم با یکدیگر متفاوت است.
- اسکریپت نویسی: توسط زبانهای مفسری اجرا میشود.
- برنامه نویسی: محصولات برنامه نویسی شده را هم میتوان کامپایل کرد و هم تفسیر.
- کدنویسی: کدهای نوشته شده را نیز هم میتوان کامپایل کرد و هم تفسیر.
از لحاظ پیچیدگی، تفاوتهای مهمی بین این موارد وجود دارد.
- اسکریپت نویسی: معمولا سادهتر از برنامهنویسی است. زیرا با توجه به وظیفه خاصی نوشته میشود.
- برنامه نویسی: دارای پیچیدگی بیشتری است. اغلب اوقات مقیاس بسیار بزرگتری هم نسبت به فایلهای اسکریپتی دارد.
- کدنویسی: از اسکریپتهای ساده تا اپلیکیشنهای پیچیده به کار برده میشود. در واقع در هر دو گزینه بالا از این تکنیک استفاده میشود.
موارد استفاده این تکنیکها نیز با یکدیگر متفاوت است.
- اسکریپت نویسی: از این تکنیک بیشتر برای خودکارسازی اپلکیشنها، توسعه برنامههای تحت وب و تحلیل داده استفاده میشود.
- برنامه نویسی: در زمینه توسعه نرمافزار کاملا مجرب است.
- کدنویسی: برای انجام هر وظیفهای نیاز به نوشتن کدها داریم.
در آخر هم باید نمونهای از زبانهای مناسب برای استفاده در هر تکنیک را مثال بزنیم.
در بخشهای بعدی مطلب به صورت مفصلتری به بررسی اسکریپت و روش کار با آن پرداختهایم.
آموزش سطوح پیشرفته پایتون با فیلم های فرادرس
هرچه مهارت برنامهنویسان بالاتر رود، مطالب مورد نیاز برای آموزش هم تخصصیتر میشوند و هرچه مطالب آموزشی تخصصیتر باشند، کیفیت آموزش، اهمیت بیشتری پیدا میکند. معمولا بهترین روشهای آموزش، طوری طراحی میشوند که حواس انسان را بیشتر به خود درگیر کنند. به همین دلیل استفاده از فیلمهای آموزشی و کلاسهای حضوری به عنوان یکی از روشهای تقریبا موثر در همه افراد و جوامع شناخته میشوند. در مقایسه بین این دو، فیلمهای آموزشی نسبت به کلاسهای حضوری از امتیازات بیشتر و برجستهای برخوردار هستند. از آن جمله میتوان به امکان تکرار تماشای مطالب تدریس شده، هزینه مقرون به صرفهتر، دسترسی ساده به منبع آموزشی و غیره اشاره کرد.
گروه آموزشی فرادرس فیلمهای بسیار خوبی در حوزههای مختلف تولید کردهاند. یکی از حوزههای تخصصی فرادرس و مدیرانش، حوزه تکنولوژی و کامپیوتر است. به همین دلیل برای این حوزه با کیفیتترین آموزشها تهیه شدهاند. زبان پایتون هم به عنوان شاخه مهمی از همین علوم شناخته میشود. آموزش پایتون با کمک فیلمهای فرادرس یکی از سریعترین و پربازدهترین روشهاست. در فهرست زیر، چند مورد از فیلمهای آموزشی سطح متوسط و پیشرفته پایتون را معرفی کردهایم.
اسکریپت در پایتون چیست؟
به طور کلی، اسکریپت پایتون به فایلی گفته میشود که شامل مجموعه دستوراتی مستقل است. یعنی کدهای نوشته شده در اسکریپت وظیفه انجام کار مشخصی را برعهده دارند. از آن جهت به این فایلها اسکریپت پایتونی گفته میشود که تمام کدهای آنها از ابتدا تا به انتها به صورت خط به خط توسط مفسر پایتون خوانده شده و تفسیر میشوند.
نکته: در واقع اسکریپتها میتوانند هر طولی داشته باشند و چندین کار مختلف را هم انجام دهند، اما این روش برای اسکریپت نویسی توصیه نمیشود. اگر اسکریپتی خیلی طولانی شود، معمولا میتوان آن را به چند فایل سادهتر و کوچکتر تجزیه کرد.
تقریبا همیشه تمام فایلهای اسکریپت پایتون با پسوند .py شناخته میشود. نام فایلها را میتوان هر چیزی گذاشت. فقط با این شرط که سیستم عامل میزبان از فرمت و کاراکترهای نام مورد نظر، پشتیبانی کند. اما توصیه میشود که به طور کلی نام فایلها کوتاه و توصیفی – از کار انجام شده توسط اسکریپت – باشند. توصیه بسیار خوب دیگر این است که در نام فایلها از فضای خالی استفاده نشود.
ساختار اسکریپت
همه اسکریپتها بهتر است از ساختاری شبیه به موارد بیان شده در فهرست زیر پیروی کنند.
- کامنت: همیشه بالای اسکریپت از کامنت در پایتون برای توضیح هدف کاری آن استفاده کنید. این نوع از کامنتها با نام داکسترینگ نامیده شده و توسط سه علامت کوتیشن “”” محصور میشوند.
- استفاده از ماژولها: ماژولهای مورد نیاز را به اسکریپت import کنیم.
- تابع: توابع مورد نیاز را به شکل کامل در اسکریپت تعریف کنیم.
- استقلال عمل: تمام وظایف مورد نیاز توسط اسکریپت را در خودش فراهم کنیم.
- داده خروجی: دادههای نتیجه را برای ارسال به خارج از اسکریپت آماده کنیم.
فهرست بالا، موارد پایهای بسیار مهمی را برای مرتب نوشتن کدهای اسکریپت بیان کردهاند.
اجرای اسکریپت ها
اگر از سیستم عامل لینوکس یا Mac استفاده میکنید، روش اول این است که به پوشه حاوی فایل اسکریپت خود رفته و سپس کد زیر را در ترمینال وارد کنید.
python3 my_script.py
روش دوم هم به این شکل است که اگر بخواهیم این فایل را به سرعت و بدون نیاز به رفتن به پوشه حاوی آن از هرجایی در ترمینال اجرا کنیم اول باید کد زیر را به ابتدای اسکریپت خود اضافه کنیم.
به کد بالا «خط Shebang» گفته میشود. نکته: عدد 3 برای استفاده از مفسر پایتون ۳ است. اگر از پایتون ۲ استفاده میکنید، نباید عدد 3 به انتهای Python اضافه شود.
سپس از فرمان chmod برای قابل اجرا کردن اسکریپت نوشته شده استفاده میکنیم.
chmod +x my_script.py
در نهایت هم میتوان بدون مشخص کردن مفسر خاصی برای اسکریپت آن را اجرا کرد.
./my_script.py
با روش بالا در صورت نیاز به اجرای این اسکریپت، دیگر نیاز نیست هربار کلمه Python را قبل نام آن بنویسیم.
روش اسکریپت نویسی با پایتون
در این قسمت از مطلب، اسکریپت سادهای را از ابتدا پیادهسازی کرده و قدم به قدم مراحل نوشتن آن را نمایش میدهیم. فرایند آموزش را با توضیح روش نصب پایتون شروع کردهایم.
فرادرس تلاش کرده تا تمام ابعاد پایتون را در فیلمهای خود پوشش دهد. یکی از این ابعاد مهم در برنامهنویسی با پایتون، اسکریپتنویسی است. از مهمترین فواید اسکریپت نویسی، میتوان به افزایش سرعت پایتون اشاره کرد. برای بررسی سریع این مبحث میتوانید فیلم آموزش رایگان افزایش سرعت پایتون با کامپایل اسکریپت در Python توسط جادی را از فرادرس مشاهده کنید. به منظور کمک به مخاطبین مجله، لینک مربوط به این فیلم را در پایین نیز قرار دادهایم.
نصب و راه اندازی پایتون
برای شروع به کار اسکریپت نویسی، در ابتدا باید عملیات مربوط به نصب پایتون در ویندوز یا هر سیستم عامل دیگر و راهاندازی محیط برنامه نویسی مناسب پایتون را انجام دهیم. قبل از نصب پایتون توجه کنید که از سال ۲۰۱۹ میلادی به بعد از نسخه پایتون ۲٫۷ دیگر پشتیبانی نمیشود. بنابراین هر مشکل امنیتی که در این نسخه از پایتون برای برنامهها اتفاق بیافتد را خود برنامهنویس باید برطرف کند. زیرا بهروزرسانی جدیدی برای آن نسخه صادر نمیشود.
برای نصب پایتون فقط کافی است که به سایت آن مراجعه کرده (+) و نسخه متناسب با سیستم خود را دانلود کنیم. بعد از آن محیط مورد استفاده برای کدنویسی را انتخاب کرده و شروع به کار میکنیم. محیطهای مختلفی مانند Pycharm، ++Notepad و Sublime3 و ویژوال استودیو کد و غیره برای کار با پایتون وجود دارند. در این آموزش پایتون را روی ویژوال استودیو کد نصب کرده و از آن استفاده میکنیم. این کد ادیتور ابزار بسیار روان و سبکی است که میتواند از پروژههای بزرگ نیز پشتیبانی کند.
نکته: برای اسکریپت نویسی با پایتون بسیار مهم است که محیط برنامهنویسی خود را با توجه به هدف از نوشتن برنامه، انتخاب کنید.
- برای مثال PyCharm دارای گزینههای بسیار زیادی مانند Navigating و Refactoring و دیباگ کردن برای کار بر روی پروژههای بزرگ و پیچیده است.
- محیط Jupiter Notebook مخصوص کار بر روی پروژههای مربوط به تحلیل داده، هوش مصنوعی و غیره است.
- ادیتورهایی لینوکسی مانند Vim یا Emacs به صورت «سرور-پایه» (Server-Based) کار میکنند. این نوع از ادیتورها با کمک SSH کدها را به صورت مستقیم بر روی سیستم دیپلوی شده دستکاری میکنند.
ایجاد محیط کاری
در جای مشخصی از کامپیوتر خود باید پوشهای را به عنوان فضای کاری ایجاد کنیم. این پوشه به عنوان مجموعهای از تمام چیزهایی است که بر روی آنها کار میکنیم و مکانی برای ساخت سریع فایلهای آزمایشی یا پروژهها در نظر گرفته خواهد شد. ساختار سلسله مراتبی فایلهای این محیط کاری بهتر است که چیزی شبیه به مورد زیر باشد. زیرا در این صورت به راحتی قابل تشخیص است که چه پروژههایی وجود دارند و هر پروژه چه فایلهایی دارد.
~/python ~/python/project1 __init__.py main.py ~/python/project1/submodule1 __init__.py ~/python/project1/submodule2 __init__.py ~/python/project2 __init__.py main.py
به منظور شروع به کار، نرم افزار کد ادیتور Visual Studio Code را باز کرده و سپس کل پوشه مورد نظر را که در مرحله قبل ساختیم با کمک دکمههای «Ctrl+O» انتخاب کرده و باز میکنیم.
استفاده از کل پوشه، روش بسیار مناسبی برای تسلط داشتن بر روی فایلها و کدهای پروژه است.
کار با زبان برنامه نویسی پایتون در نرمافزار ویرایش کد VS Code بسیار ساده است. زیرا این ویرایشگر ابزارهای بسیار خوبی را برای کمک به توسعهدهندگان فراهم کرده است. به منظور آشنایی با چند مورد از بهترین ابزارهای کمکی برای برنامهنویسی پایتون مطلب ۱۳ افزونه پایتون در VSCode برای کدنویسی راحتتر و سریعتر را از مجله فرادرس مطالعه کنید.
ساخت فایل HelloWorld.py
در محیط کاری که تا اکنون ساختهایم، پوشهای را برای پروژه با نام «HelloWorld» ایجاد کرده و در آن فایلی را با نام HelloWorld.py میسازیم. داخل فایل هم کد زیر را مینویسیم.
اکنون با فشردن دکمه F5 بر روی صفحه کلید میتوان این فایل را اجرا کرد. بعد از زدن دکمه F5 فایل درون ترمینال Visual Code – در بخش پایینی پنجره IDE – اجرا شده و در خروجی عبارت Hello World را برمیگرداند. همینطور فرمانی را که باعث اجرای اسکریپت شده نیز در پایین نمایش داده میشود.
Windows PowerShell Copyright (C) Microsoft Corporation. All rights reserved. Try the new cross-platform PowerShell https://aka.ms/pscore6 PS C:\Users\stefb\OneDrive\Documents\Python\HelloWorld> & 'C:\Users\stefb\AppData\Local\Programs\Python\Python37\python.exe' 'c:\Users\stefb\.vscode\extensions\ms-python.python-2019.11.50794\pythonFiles\ptvsd_launcher.py' --default --client --host 'localhost' --port '65370' 'c:\Users\stefb\OneDrive\Documents\Python\HelloWorld\HelloWorld.py' Hello World PS C:\Users\stefb\OneDrive\Documents\Python\HelloWorld>
گسترش اسکریپت برای نوشتن متغیرها، توابع درونی و عملگرها
با هدف واقعیتر کردن اسکریپت طراحی شده، بهجای چاپ کردن Hello World به شکل تنها، کمی کدهای نوشته شده را پیچیدهتر میکنیم. کلمه Hello را به متغیری تخصیص داده و بهجای World هم نامی را در ورودی از کاربر میگیریم. سپس این دو مورد را برای نشان دادن پیغام با معنا به کاربر نهایی به یکدیگر متصل میکنیم.
بعد از اجرای اسکریپت بالا، برنامه از کاربر درخواست نام میکند. در کادر پایین میبینید که به عنوان دلخواه نامی را به برنامه ارسال کرده و پاسخ آن را نیز دریافت کردهایم.
Enter your name: Mostafa Hello Mostafa
ساخت تابع برای استفاده چندباره از کدها
در کد بالا، پیغام Hello خود را ساخته و با توجه به نام کاربر به آن قالبی دادهایم. با اینکه این نوع از قالبدهی در پیغامهای کوچک روش مناسبی است. اما بهتر است فرایند قالبدهی پیغام خود را بر عهده تابع بگذاریم.
توابع تعریف شده میتوانند در اسکریپت برنامه به دفعات برای شکلدهی به انواع پیغامها به شکل صحیح، مورد استفاده قرار بگیرند.
بعد از اجرای کد بالا، خروجی برنامه با توجه به نام دلخواه ما به شکل زیر میشود.
Enter your first name: Mostafa Hello Mostafa Goodbye Mostafa
استفاده از حلقه while برای نمایش پیغام به صورت مداوم
اکنون فرض کنیم که میخواهیم پیغام خود را به شکل دیگری تغییر دهیم. در شکل جدید، اسکریپت به صورت مداوم شروع به ارسال پیغام به کاربرهای مختلف میکند و این روال تا زمانی ادامه خواهد داشت که کاربری حرف «Q» را به آن ارسال کند. این نوع از الگوها برای مثال در بازیهای مربوط به حدس زدن نام مناسب هستند. یا به طور کل در جاهایی که باید بلوک مشخصی از کدها تا زمان رخ دادن شرط خاصی به صورت دائمی تکرار شوند.
از حلقهها میتوان برای بررسی اعتبار دادههای ورودی در اسکریپتهای رابط «خط فرمان» (Command Line) استفاده کرد.
بعد از اجرای کد بالا، خروجی برنامه با توجه به نامهای دلخواه به شکل زیر میشود.
Enter a name: Mostafa Hello Mostafa Goodbye Mostafa Enter another name or 'Q' to quit: Rashidi Hello Rashidi Goodbye Rashidi Enter another name or 'Q' to quit: Q Quitting greeter
Import کردن کتابخانه ها برای استفاده چندباره از توابع
در این قسمت از برنامه میخواهیم توانایی اعلام زمان فعلی را بعد از سلام کردن به کاربر به برنامه اضافه کنیم. استفاده از زمان برای ردگیری و ذخیره کردن وقت دقیق ورود کاربران به سامانهها عملیات بسیار رایجی است. معمولا زمان ورود را در فایل گزارشات ثبت میکنیم. شاید هم لازم باشد که زمان شروع و خاتمه کار توابع مختلف را ذخیره کنیم. اغلب اوقات این روش را برای کشف مدت زمان اجرای بخشهای مختلف کدها پیادهسازی میکنیم.
از آنجا که کار کردن با زمان یکی از رایجترین بخشهای برنامهنویسی است، پایتون ماژول اختصاصی را برای اندازهگیری و اعلام زمان دقیق فراهم کرده است تا کارهای مربوط به زمان به صورت سادهتری انجام شوند. فقط کافیست که ماژول DateTime را در ابتدا و بالای کدهای اسکریپت خود وارد کنید. بعد از آن به تمام توابع تعبیه شده در این ماژول دسترسی خواهید داشت.
نکته: با استفاده از کد from ‘module’ import ‘variable’ میتوان فقط تابع خاصی را از درون هر ماژول به محیط کدنویسی وارد کرد.
بدون استفاده از این کتابخانه، مجبور به نوشتن چند کد به صورت دستی برای فراخوانی زمان درونی کامپیوتر خواهیم بود. سپس باید زمان فراخوانی شده را به بخشهای جداگانه سال، ماه، روز، ساعت، دقیقه و ثانیه تبدیل کنیم. در نهایت هم لازم است که کد قالبدهی خود را برای زمان نوشته تا بعد از چاپ شدن در صفحه توسط کاربران قابل فهم باشد.
در کدهای زیر، بدون فراخوانی ساعت درون کامپیوتر و با استفاده از کتابخانه DateTime زمان را بدست آورده و مسئله مطرح شده در این بخش را حل کردهایم.
بعد از اجرای کدهای بالا با استفاده از نامهای دلخواه، خروجی زیر در کنسول پایتون نمایش داده میشود.
Enter a name: Mostafa Hello Mostafa The current time is 04/11/2024 13:48:30 Goodbye Mostafa Enter another name or 'Q' to quit: Rashidi Hello Rashidi The current time is 04/11/2024 13:48:35 Goodbye Rashidi Enter another name or 'Q' to quit: Q Quitting greeter
فیلم های آموزشی پروژه محور پایتون
فرادرس یکی از بزرگترین و غنیترین منابع فیلمهای آموزشی فارسی زبان است. زبان برنامهنویسی پایتون به دلیل محبوبیت بالا، جزو رایجترین زبانهای مورد استفاده در مراکز علمی، صنعتی و تجاری است. پس فرادرس تلاش کرده تا بهترین آموزشها را برای همه افراد تهیه و منتشر کند. یکی از بهترین روشهای یادگیری، بررسی و تعقیب روند ساخت پروژههای مربوط به مسائل دنیای واقعی است. فرایند اجرای این پروژهها معمولا مستلزم استفاده از تکینکهای مختلف تولید نرمافزار است. در نتیجه برنامهنویسان پایتون با مرور این فیلمها بیشتر آموختههای خود را یکجا مرور میکنند.
در ادامه، چند مورد از فیلمهای آموزش پروژه محور پایتون را معرفی کردهایم.
در صورت تمایل با کلیک بر روی تصویر زیر میتوانید به صفحه اصلی این مجموعه آموزشی هدایت شده و فیلمهای بیشتری را نیز تماشا کنید.
جمعبندی
تمام موارد مورد نیاز برای اسکریپت نویسی با پایتون به شکل سادهای در مطالب بالا توضیح داده شدهاند. در بخش آموزش اسکریپت نویسی، داده ورودی از کاربر گرفته شده، از عملگر + برای چسباندن رشتهها به یکدیگر استفاده شده و از توابع هم برای تکرار بلوکهای خاصی از کد استفاده کردهایم. سپس برای گرفتن داده ورودی بیشتر از کاربران، حلقه while را همراه با شرطی برای شکستن حلقه به کار بردیم. در نهایت هم روش وارد کردن کتابخانهها به فضای اسکریپت را برای کار با زمان – به عنوان یکی از رایجترین مسائل در برنامهنویسی – نمایش دادهایم.
اسکریپت به قطعه کدهای مستقلی گفته میشود که در فایلهای جداگانهای نوشته شدهاند. معمولا در پایتون توصیه شده – مخصوصا در پروژهای بزرگ – توابع و کلاسها دستهبندی شوند. هر دسته را به صورت اسکریپتهای با معنا و هدف مشخصی نوشته و در نهایت برای استفاده در فایل اصلی ایمپورت کنیم. در این مطلب از مجله فرادرس به صورت مختصر و مفید اسکریپت نویسی در پایتون را توضیح دادهایم.
منبع