هر چه می خوانم می فهمم بیشتر نمی دانم - دانش آموخته برق و کامپیوتر سابق
پایتون کلید ورود به دنیای هوش مصنوعی! (قسمت ششم: ماژول خودتو بساز)
سلام رفقا
آموزش پایتون رو به عنوام مقدمه ای برای ورود به دنیای هوش مصنوعی شروع کردیم.پایتون زبان راحت و قدرمندی هست و بسیاری از قوی ترین کتابخانه های هوش مصنوعی به زبان پایتون نوشته شده. اگر اولین باره این نوشته رو می خونید و می خواهید پایتون یاد بگیرید به لینک زیر برید و از اول بیاین جلو.
توی این قسمت از آموزش پایتون که قسمت ششم هست در مورد ماژول صحبت می کنیم. اول اینکه تابع چیه ، ماژول چیه و در نهایت هم اینکه ماژول خودتون بساز.
توابع درونی و ماژول های پایتون
اول با مفهوم تابع آشنا بشیم . تابع کارش اینه که یه کار مشخصیرو برای ما انجام می ده مثلا می خواهیم دوتا عدد رو باهم جمع کنیم یک تابع می نویسیم عددهامونو بهش می دیم باهم جمع می کنه و بهمون تحویل می ده. حالا چون براساس متغیر ها تابع خودمون رو نوشتیم هر عدد جدیدی هم بهش بدیم باز هم می تونه جمع کنه و بهمون تحویل بده.
دوم با مفهوم ماژول آشنا می شیم. مثلا یخچال رو در نظر بگیرین کارایی مثل سرد کردن مواد غذایی ، دادن آب خنک و درست کردن یخ رو انجام می ده. این کارایی که گفتم مثل همون تابع ها هست و خود یخچال که مجموعه از این کارهارو برامون انجام می ده ماژول میشه.
مثلا ماژول Math توی پایتون کارش اینه که یک سری توابع ریاضی داره مثل sqrt که جذر می گیره یا sin که سینوس حساب می کنه.
حالا که ماژول و تابع رو یادگرفتین چیه بریم سر وقت توابع و ماژول های درونی پایتون. این درونی یعنی اینکه برنامه نویسای خود پایتون زحمت کشیدن اینارو برامون نوشتن. برای اینکه ببینید چیارو برامون نوشتن دستور زیر را توی پایتون بزنید:
>>> dir(__builtins__)
قبل از builtins دو تا زیر خط پشت سر هم هست که ویرگول به هم می چسبونش. پس یاد گرفتیم که با دستور dir میشه کارایی که اون ماژول برامون انجام میده رو ببینیم.
مثلا یکی از این دستورها pow هست که توان ریاضی رو انجام می ده مثال :
>>> pow(2,3) #8
که همون 2 به توان 3 هست که می شه 8. استفاده از توابع درونی پایتون راحته فقط باید بدونید برای چیه و چطوری ازش استفاده کنید. هر جا هم گیر کردید کافیه اون تابع رو بزارید داخل help مثل :
1. >>> help(max)
2. Help on built-in function max in module __builtin__:
3. max(...)
4. max(iterable[, key=func]) -> value
5. max(a, b, c, ...[, key=func]) -> value
6. With a single iterable argument, return its largest item.
7. With two or more arguments, return the largest argument.
توی این مثل تابع max رو می خوام ببینیم چه کار می کنه . خط دوم بهمون می گه که این تابع درونی پایتون هست و داخل ماژول __builtin__ هست. خط های 3و4و5 بهمون می گه چطوری از تابع max استفاده کنیم و خط 6و7 هم بهمون می گه خروجی این تابع چیه مثلا اگر چند تا عدد وارد تابع کردیم این بزرگترینشو بهمون می ده.
حالا یکسری ماژول ها هستن که همین جوری نمی تونیم ازشون استفاده کنیم و باید صداشون بزنیم. مثلا می خواهیم شیرینی درست کنیم میریم همزن رو صدا می زنیم بیاد کمک!
این صدا زدن ماژول ها با دستور import انجام می شه . مثل :
>>> import math
>>> math.sqrt(16) # 4.0
ما برای اینکه جذر عدد 16 رو بگیریم نیازه اول ماژول ریاضی رو صدا بزنیم بعدش از ماژول ریاضی تابع Sqrt رو استفاده کنیم.
حواستون باشه که بجز توابع داخلی پایتون باید ماژول هایی که می خواهیم رو صدا بزنیم حتی وقتی که می خواهیم از help استفاده کنیم. مثال زیر اروری هست که بدون اینکه ماژول math رو صدا بزنم از تابع درونش استفاده کردم.
>>> help(sin)
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
NameError: name 'sin' is not defined
که درستش به صورت زیر هست.
>>> import math
>>> help(math.sin)
Help on built-in function sin in module math:
sin(...)
sin(x)
Return the sine of x (measured in radians).
ماژول خودتو بساز
بعد از اینکه یاد گرفتین ماژول و تابع چیه حالا وقتشه ماژول خودتون رو بسازید. کافیه یک فایل متنی درست کنید اسمش رو همون اسم ماژولتون بزارید. مثال من اسمشو می زارم speak.py که اون .py نشون دهنده اینکه این فایل برای پایتونه . حالا کافیه توی فایل بنویسیم:
def say_hello():
print("Hello!")
تابع say_hello کارش اینکه که بگه سلام. این تابع توی ماژول speak خودمون هست. حالا برای اینکه ازش استفاده کنیم قرار شد کنار همون فایلی که درست کردیم شیفت و کلیک راست رو بگیریم و وارد محیط powershell بشیم. همین که بنویسیم python وارد محیط ویرایش پایتون میشیم ماژول خودمون رو صدا می زنیم و تابع Say_hello رو به کار می گیریم.
python
>>> import speak
>>> speak.say_hello()
به همین راحتی شما هم تونستید ماژول بسازید.
چند تا نکته هم به عنوان بخش پایانی بگم اول اینکه توی ماژول خودتون هم می تونیم یک ماژول دیگه رو صدا بزنید مثلا همون Math.
دوم اینکه اگر ماژول چندین تابع داشته باشه و شما بخواهید فقط یک تابع خاص رو باهاش کار کنید به صورت زیر می تونید ازش ا ستفاده کنید.
from speak import say_hello
say_hello()
یعنی اینکه از ماژول speak فقط تابع say_hello رو بیار دقت کنید وقتی اینکارو می کنید دیگه برای استفاده تابع نیاز نیست speak.say_hello قبلش ماژول رو هم بیارید همون Say_hello خالی کافیه.
و نکته آخر اینه که اگر دوست دارید اسم ماژول رو عوض کنید و از اسم جدید توی برنامتون استفاده کنید می تونید این کارو انجام بدین :
import hello as ai
ai.say_hello()
یعنی ماژول hello تبدیل به ماژول ai شده (اسمش عوض شده)
این بخش هم به پایان رسید. سعی می کنیم با مفاهیم پایتون آشنا بشید و به مرور عمیق تر به مباحث بپردازیم. اگر سوالی داشتید کامنت کنید.
قسمت بعدی در مورد کامنت و داکیومنت گذاری هست که از لینک زیر می تونید بخونید.
مطلبی دیگر از این انتشارات
اولین پروژه یادگیری ماشین
مطلبی دیگر از این انتشارات
پایتون کلید ورود به دنیای هوش مصنوعی! (گام دوم- قسمت سیزدهم: تاپل ها)
مطلبی دیگر از این انتشارات
پایتون کلید ورود به دنیای هوش مصنوعی! (قسمت هفتم: کامنت و داکیومنت)