مقدمه
در ابتدای آموزش بگذارید مطلبی را بگویم که برای خودم هم جالب بود و آن نام این زبان برنامه نویسی است. شاید شما هم مثل من همان ابتدا مار پایتون به ذهنتان خطور کرده ولی در واقعیت اینطور نیست. نام این زبان برنامه نویسی را نویسنده آن به علت علاقهاش به گروه کمدی بریتانیایی که اسمشان پایتون بوده، این طور نامگذاری کرده است. خب حالا که این حس کنجاوی برطرف شد به سراغ هدف اصلی خودمان برویم.
یکی از معیارهای مهم برای محبوبیت زبانهای برنامه نویسی، نزدیک بودن دستورات آن به زبان محاوره انسان است که زبان برنامهنویس پایتون این ویژگی را دارا میباشد. در سال ۲۰۱۹ پایتون به عنوان دومین زبان محبوب دنیا و به عنوان برادر جاوا شناخته شده است. امروزه با آموزش حرفه ای پایتون میتوان فرصتهای شغلی فراوانی بهدست آورد. در عصر حاضر بسیاری از سایتهای بزرگ و معروف برای نوشتن برنامههایشان از زبان برنامه نویسی پایتون استفاده میکنند که برخی از آنها عبارتانداز: YouTube, Instagram, reddit, NASA.
کاربرد های زبان برنامه نویسی پایتون
در این قسمت از آموزش پایتون به کاربردهای این زبان برنامه نویسی میپردازیم که عبارتانداز:
- طراحی وب
- تحلیل داده
- یادگیری ماشین
- هوش مصنوعی
- بلاک چین
- وب اسکرینگ
- Desktop
- Script
- Data Science
شی گرایی در پایتون
در ادامه آموزش حرفه ای پایتون، بدون اغراق و تعارف باید بگویم که تقریباً در یادگیری تمام زبانهای برنامه نویسی، سختترین و زمانبرترین قسمت مربوط به شیءگرایی آن زبان میباشد. در این مرحله چارهای جز صبر و شکیبایی نداریم چرا که مهمترین بخش زبانها هم، همین قسمت شیءگرایی آنهاست. با همه این اوصاف باز هم تنها زبانی که راهکارهای شیءگرایی را به سادهترین شکل ممکن بیان میکند همین زبان برنامه نویسی پایتون است. برای تسریع در یادگیری زبان برنامه نویسی پایتون میتوانید به مجموعه آموزشهای فرادرس مراجعه کنید.
مزایای به کارگیری شی گرایی عبارتانداز:
- باعث افزایش قابلیت استفاده دوباره از اشیا میشوند.
- به کارگیری اشیا را راحتتر میکنند.
- موجب راحتی قابلیت نگهداری اشیا میشوند.
در پایتون همه چیز یک شیء است حتی متغیرها. اولاً شیءها از نوع کلاس هستند و دوماً، مثلاً وقتی متغیری را تعریف میکنیم دیگر نمیگوئیم این نوع متغیر از چه نوع کلاسی است، زبان پایتون خودش میفهمد که متغیر از چه نوعی است.
شی و کلاس در زبان پایتون
دو مفهوم رایج در آموزش حرفه ای پایتون شیء و کلاس هستند. کلاسها برای مدلسازی اشیای دنیای واقعی استفاده میشوند. اشیا برای خود یکسری ویژگیها و خصوصیات دارند که در زبان برنامه نویسی به آنها صفات اشیاء میگوییم، یکسری رفتارهایی هم از خود نشان میدهند که به آنها هم تابع عضو (متد) میگوئیم و در نهایت متدها عملیاتی هستند که روی اعضای دادهای قابل اجرا میشوند.
اجازه بدهید تفاوت این دو را با یک مثال بیان کنم. فرض کنید میخواهید برای خود لباسی بدوزید، برای دوخت لباس ابتدا نیاز به الگو دارید تا شروع به دوختن لباس کنید. در این مثال الگوی لباس درواقع همان کلاس شما و خود لباس که آن را از روی الگو دوختهاید شیء به شمار میرود. پس نتیجه میگیریم یک کلاس نقشه اولیهای است که با آن شیء را ایجاد میکنیم.
>>> class MyJob(): job='pyton programer'
مثلاً در مثال فوق job یک شیء از کلاس MyJob است. اشیای کلاس را میتوان به دو شکل استفاده کرد:
- instantiation یا نمونهسازی: در این روش برای دسترسی به شیء کلاس نیازی به ساختن شیء از کلاس نداریم. یعنی کافی است شیء کلاس را بعد از گذاشتن نقطه پس از نام کلاس به کار ببریم.
- attribute reference یا صفت مرجع: در این روش برخلاف روش قبل ابتدا باید یک شیء از کلاس موردنظر بسازیم تا بتوانیم از آن استفاده کنیم. مزیت این روش این است که هر تغییر و مشکلی که برای شیء بیفتد در کلاس اصلی تاثیری ندارد.
اجازه بدهید این قسمت را با همان مثال الگو و لباس توضیح بدهم. در روش اول انگار که شما الگوی اصلی لباس را تغییر میدهید در این حالت هر لباسی هم که با الگوی تغییر یافته بدوزید متفاوت خواهد بود، اما در روش دوم وقتی که شما لباس را از روی الگو دوختید، بعدها هر تغییری در لباس بدهید مثلا دکمه هایش را اضافه بگذارید یا قدش را کوتاه کنید یا چیزی اضافه کنید در الگوی اصلی تغییری ایجاد نمیشود.
اعضای کلاس در زبان پایتون
در این قسمت از آموزش حرفه ای پایتون میخواهم اعضای کلاس را با یک مثال نشان دهم. فرض کنید میخواهیم کلاسی به نام دایره پیادهسازی کنیم. اول باید اعضای کلاس دایره را مشخص کنیم که عبارتانداز: شعاع دایره، قطر دایره، محیط دایره، مساحت دایره، عدد π. برای اینکه بتوانیم از کلاسها استفاده کنیم کافی است دو کار را انجام دهیم:
- کلاسها را تعریف کنیم.
- از کلاسها نمونه سازی کنیم.
معمولاً کلاسها دارای دو نوع عضو هستند: اعضای دادهای و اعضای متدی. یعنی ابتدا اعضای دادهای کلاسی که میخواهیم تعریف کنیم را مشخص میکنیم سپس به سراغ پیادهسازی اعضای تابعی آن میرویم.
۱- فیلد های کلاس در پایتون
عضوهایی از کلاس که مقدارهای دادهای کلاس در آنها نگهداری میشود را فیلد میگویند، درواقع فیلدها همان متغیرهای کلاسها هستند. برای درک بهتر آن مثالی میزنیم:
>>>import math >>>class Circle: PI=math.pi r=0
در این مثال، در خط اول ماژول math به برنامه اضافه شده است، در خط دوم هم کلاسی به نام Circle ساخته شده است. بعد دو عضو دادهای PI که عدد ۳.۱۴ است و r که شعاع دایره است، تعریف میشوند که همان فیلدها هستند.
۲- متد های کلاس در پایتون
متدها اعمالی هستند که ما روی دادهها انجام میدهیم، بگذارید با یک مثال نشان دهیم:
class Circle: PI=math.pi r=0 def Area(self): return (self.PI*self.r**2) def Perime(self): return 2*self.PI*self.r def __str__(self): s="R:"+str(self.r) s+="\t\tArea:"+str(self.Area()) s+="\t\tPerime:"+str(self.Perime()) return s
در این مثال یک کلاس به نام Circle داریم که در آن دو عضو دادهای به نامهای PI و r و سه متد ()Area و ()Perime و ()__str__ تعریف کردهایم.
- متد ()Area: محاسبه مساحت دایره
- متد ()Perime: محاسبه محیط دایره
- متد ()__str__: شعاع، محیط و مساحت را با یک پیام مناسب برمیگرداند.
۳- کلاس سازنده در پایتون
برای اینکه بتوانیم اعضای کلاس را مقداردهی اولیه کنیم دو روش وجود دارد:
- مقداردهی در بدنه آن: در این روش وقتی میخواهیم کلاسی را تعریف کنیم، در همان بدنه کلاس اعضای دادهای را مقداردهی اولیه میکنیم.
- مقداردهی اولیه با متد سازنده: در زبان برنامه نویسی پایتون یک متد سازنده به نام ()__init__ وجود دارد که از آن برای مقداردهی اولیه به اعضای دادهای استفاده میشود و به صورت زیر پیادهسازی میشود:
def__init__(self,r): self.r=r
این متد سازنده همان کلاس Circle مثال قبل را پیادهسازی میکند. هر کدی که داخل متد __init__ قرار میگیرد، وقتی میخواهیم یک شیء را از این کلاس بسازیم به صورت خودکار محتویات داخل آن اجرا میگردد.
تذکر: دلیل اینکه ما __init__ را یک تابع به شمار نمیبریم و به آن متد میگوئیم این است که تابعها مستقل هستند و عضو کلاسی نیستند اما متدها گروهی از توابع هستند که به یک کلاس تعلق دارند یا به عبارت دیگر از روی یک شیء فراخوانی میشوند.
۴- کلاس مخرب در پایتون
در زبان پایتون وقتی ما برنامهای را نوشتیم و در انتها زمانیکه کارمان با اشیاء به پایان رسید برای اینکه فضای مصرف شده توسط اشیاء به سیستم عامل بازگردد، آن را حذف میکنیم. در زبان برنامه نویسی پایتون برای این کار دستور del به کار برده میشود. مثلاً دستور del a، نمونه a را حذف میکند. در پایتون میتوانیم کدی را بنویسیم تا وقتی که میخواهیم نمونهای را تخریب کنیم، آن کد اجرا شود:
def __del__(self): print("object is deleted")
به دو روش میتوانیم به اعضای کلاس دست پیدا کنیم:
- از درون خود کلاس: وقتی در داخل کلاس میخواهیم به عضوی دسترسی داشته باشیم از دستور زیر استفاده میکنیم.
نام عضو .self
- از بیرون کلاس مورد نظر: این به این معناست که به اعضای عمومی کلاس دسترسی پیدا کنیم که برای این کار هم دو روش وجود دارد:
-
- با استفاده از نام کلاس: این روش برای دستیابی به اعضای static مورد استفاده قرار میگیرد.
-
- با استفاده از نام متد یا نمونه: این روش برای دستیابی به اعضای غیر static که باید برای آنها نمونهسازی انجام دهیم، مورد استفاده قرار میگیرد.
ساختار کلی کلاس در زبان برنامه نویسی پایتون به صورت زیر است:
class ClassName: statement 1 . . . statement N
به جای نام کلاس، نام دلخواه نوشته میشود، نام کلاس از قانون نامگذاری شناسهها تبعیت میکند، اول نام کلاس با حروف بزرگ نوشته شده و اگر نام کلاس دو قسمتی باشد، ابتدای هر قسمت را با حرف بزرگ نوشته مینویسیم.
همانطوریکه قبلا هم گفتیم برای استفاده از کلاس باید شیءی از آن کلاس ایجاد کنیم، برای این کار اینطور مینویسیم:
() نام کلاس = نام شیء یا نمونه
برای دسترسی به اعضای کلاسها هم به دو صورت زیر میتوانیم بنویسیم:
نام عضو . نام نمونه
نام عضو . نام کلاس
وراثت در کلاس های پایتون
حالا به قسمت وراثت در آموزش حرفه ای پایتون میرسیم. باید بگویم که مهمترین بخش در شیءگرایی، وراثت است. وراثت در کلاس به فرآیندی گفته میشود که طی آن، کلاسهای جدیدی را از کلاسهایی که موجود هستند درست کنیم. به زبان ساده وقتی یک برنامهنویس میخواهد یک کلاس جدید ایجاد کند و کلاس جدید هم همان اعضای دادهای و متدها و صفات کلاس موجود را دارا باشد، به جای اینکه اعضای دادهای، صفات و متدهای کلاس جدید را بنویسد میتواند اینها را از کلاس موجود به ارث ببرد.
اغلب کلاس پایه کوچکتر از کلاس مشتق شده است چون کلاس مشتق، به جزئیات بیشتری از اشیاء میپردازد. کلاس مشتق خودش نیز میتواند به عنوان کلاس پایه برای سایر کلاسهای مشتق شده از خودش هم باشد. کلاسهای پایه و اصلی هم دو نوع هستند:
- نوع اول که به آن مستقیم میگویند و در آن کلاس مشتق اعضا را مستقیم و بدون واسطه از کلاس اصلی به ارث میبرد.
- نوع دوم که به آن غیر مستقیم میگویند و در آن کلاس مشتق اعضا را با واسطه یا در چند سلسله مراتب از کلاس اصلی به ارث میبرد.
در شکل زیر کلاس اصلی به نام شکل را میبینیم که دو کلاس به نامهای دوبعدی و سه بعدی از آن مشتق شدهاند و ویژگیهای کلاس شکل را هم به ارث میبرند. از این کلاسهای مشتق هم مجددا کلاسهای دیگری مشتق میشوند مثلا مستطیل، دایره و مربع از کلاس دوبعدی و هرم، مکعب و استوانه از کلاس سه بعدی مشتق شدهاند.
این کلاسهای جدید که از کلاس موجود مشتق گرفته شدهاند، علاوه بر اینکه بعضی از رفتار و صفتهای کلاس اصلی را به ارث میبرند، میتوانند خودشان هم یکسری رفتار و صفات مختص به خودشان را هم داشته باشند. همچنین این کلاسهای مشتق میتوانند صفات و ویژگیهایی را که به ارث بردهاند در ادامه تغییر دهند.
دستور کلی ساخت کلاس مشتق به این صورت است:
class YourClassName(BaseClassName): statement 1 . . . statement n
حالا یک مثال کاملتر برای ارثبری میزنیم:
>>> class MyNewClass(): def print_it(): print('Pyton') print('Rezvan Akhlaghi') def __init__(self): self.name = 'Rezvan Akhlaghi' self.language = 'farsi' def getLanguage(self): return self.language >>> class DrivedClass(MyNewClass): def setLanguage(self): self.language = 'English' >>> a = DrivedClass() >>> a.getLanguage() 'farsi' >>> a.setLanguage() >>> a.getLanguage() 'English'
همانطور که در این مثال مشاهده میکنید، این برنامه یک کلاس اصلی دارد که کلاس DrivedClass از آن مشتق شده است. این کلاس علاوه بر اینکه از متدهای کلاس اصلی بهره میگیرد خود نیز دارای متدی مختص خویش میباشد. برای اینکه یادگیری زبان برنامه نویسی پایتون تکمیل شود میتوانید از آموزشهای برنامه نویسی پایتون فرادرس استفاده کنید.
سخن پایانی در مورد آموزش حرفه ای پایتون
برای آموزش حرفه ای پایتون پیشنهاد میشود، پس از آشنایی و یادگیری مقدمات زبان برنامه نویسی پایتون، به این آموزش مراجعه کنید و به طور قطع مطمئن باشید که از این مرحله به بعد میتوانید در حوزه برنامه نویسی پایتون فعالیت داشته باشید. همانطور که در ابتدا هم گفته شد این زبان درواقع مهمترین و پرکاربردترین و در عین حال سادهترین زبان برنامه نویسی عصر حاضر به شمار میرود، هر چند که سختیها و مشقتهای فراوانی به همراه دارد اما همچنان آموزش اصولی، مهمترین هدف برنامهنویسان حرفهای به شمار میرود.
زبان برنامه نویسی پایتون دارای کتابخانههای متعددی است که یکی از آنها کتابخانههای داده کاوی میباشد. برای معرفی و دانستن کاربرد این کتابخانهها میتوانید پاورپوینت کتابخانه های داده کاوی در پایتون را تهیه نمایید. تا اینجای کار ما گفتیم و شما گوش سپردید، از اینجا به بعد هم ما منتظر شما عزیزان هستیم تا مشتاقانه به نظرات و پیشنهاداتان گوش بسپاریم.