توابع پایتون: فراخوانی ، تورفتگی ، آرگومان ها و مقادیر بازگشتی

رتبه: 5 ار 1 رای SSSSS
توابع پایتون
نویسنده: میلاد حیدری زمان مطالعه 7 دقیقه
Banner Image

توابع در پایتون برای استفاده کد در بیش از یک مکان در برنامه استفاده می شود که گاهی به آن متد یا پروسیجر گفته می شود. پایتون بسیاری از توابع داخلی مانند ()print را در اختیارتان می گذارد ، اما می توانید توابع مورد نیاز خود را نیز ایجاد کنید.

در این آموزش یاد خواهیم گرفت:

  • نحوه تعریف و فراخوانی تابع در پایتون
  • اهمیت تورفتگی (فاصله) در پایتون
  • مقدار بازگشتی تابع چگونه است؟
  • آرگومان ها در توابع

نحوه تعریف و فراخوانی تابع در پایتون

تابع در پایتون با عبارت “def” تعریف شده و به دنبال آن نام تابع و پرانتز (()) .

مثال:

با استفاده از دستور “()def function1” یک تابع را تعریف و فراخوانی می کنیم. خروجی این تابع “I am learning Python function” خواهد بود.

تابع در پایتون با عبارت "def" تعریف شده و به دنبال آن نام تابع و پرانتز

print func1 ()، func1()

را فرا می خواند و دستور را چاپ می کند ” I am learning Python function “.

مجموعه ای از قوانین برای تعریف یک تابع در پایتون وجود دارد.

  • هر پارامتر یا آرگومان ورودی باید درون پرانتز قرار گیرد.
  • اولین دستور تابع می تواند یک دستور اختیاری باشد.
  • کد در هر تابع با (:) شروع می شود و باید تو رفتگی داشته باشند.
  • بیانیه (عبارت) return تابع را پایان می دهد، و به صورت اختیاری یک مقدار را به فراخواننده بر می گرداند. دستور return بدون آرگومان همان None return است.

اهمیت تورفتگی (فاصله) در پایتون

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

پایتون برای تعریف کد از سبک خاصی برای تورفتگی پیروی می کند ، از آنجا که توابع پایتون هیچگونه شروع یا پایان صریح مانند {} برای نشان دادن شروع و پایان تابع ندارند ، از تورفتگی استفاده می شود. در اینجا یک مثال ساده با دستور “print” بیان می کنیم. هنگامی که تابع “print” را درست در زیر :()def func1 می نویسیم: ” خطای تورفتگی را نشان می دهد: انتظار یک بلوک تو رفتگی دارد “.

پایتون برای تعریف کد از سبک خاصی برای تورفتگی پیروی می کند

حال ، هنگامی که تو رفتگی (فاصله) را مقابل تابع “print” اضافه می کنید ، برنامه بدون خطا اجرا می شود.

پایتون برای تعریف کد از سبک خاصی برای تورفتگی پیروی می کند حداقل ، یک فاصله برای اجرای با موفقیت کد کافی است. اما به عنوان بهترین روش ، توصیه می شود حدود ۳-۴ تا فاصله بگذارید تا تابع را فراخوانی کند.

همچنین لازم است که ضمن ایجاد تورفتگی ، بقیه کد خود را هم با همان تو رفتگی بنویسید. به عنوان مثال ، در تصویر زیر هنگامی که دستور دیگری را اضافه می کنیم”هنوز در func1″ و درست زیر اولین دستور print آن را ننویسیم، خطای تورفتگی نشان می دهد ” تورفتگی با دیگر تو رفتگی ها مطابقت ندارد.”

تورفتگی با دیگر تو رفتگی ها مطابقت ندارد.

حال ، هنگامی که برای هر دو دستور، توافقی را اعمال می کنیم و آن ها را در یک خط تراز می کنیم، نتیجه مورد انتظار را می دهد.

نتیجه مورد انتظار را می دهد.

مقدار بازگشتی تابع چگونه است؟

دستور Return در پایتون مشخص می کند که چه مقدار بازگشتی به فراخواننده تابع استفاده شود.

بیایید این را با مثال زیر درک کنیم:

مرحله ۱) در اینجا – تابع “بازگشتی” نیست. به عنوان مثال ، ما توان دو ۴ را می خواهیم و هنگام اجرای کد باید جواب “۱۶” بدهد. هنگامی که به سادگی از کد “print x * x” استفاده می کنیم، نتیجه را می بینیم اما وقتی تابع

” print (square(4))”

را فرا می خوانید، خروجی “Nope” می دهد. زیرا وقتی تابع را صدا می کنید ، بازگشت اتفاق نمی افتد و از انتهای تابع بر نمی گردد. پایتون به دلیل عدم موفقیت در به پایان رساندن تابع “Nope” برمی گرداند.

دستور Return در پایتون مشخص می کند که چه مقدار بازگشتی به فراخواننده تابع استفاده شود.

مرحله ۲) برای روشن تر شدن این موضوع ، دستور print را با دستور انتساب جایگزین می کنیم. بیایید خروجی را بررسی کنیم.

بررسی خروجی

هنگامی که دستور ” (print square (4″ را اجرا می کنید ، در واقع مقدار شی را برمی گرداند ، زیرا هیچ تابع خاصی برای اجرا نداریم ، “Nope” برمی گرداند.

مرحله ۳) اکنون ، خواهیم دید که چگونه با استفاده از دستور “Return” خروجی را بازیابی کنیم. وقتی از تابع “Return” استفاده می کنید و کد را اجرا می کنید ، خروجی “۱۶” را می دهد.

با استفاده از دستور "Return" خروجی را بازیابی کنیم.

مرحله ۴) توابع در پایتون خود یک شیء هستند و یک شی مقدار دارد. در اینجا خواهیم دید که چگونه پایتون با شی برخورد می کند. هنگامی که دستور ” print square” را اجرا می کنید ، مقدار شی را برمی گرداند. از آنجا که هیچ آرگومانی ارسال نکرده ایم ، هیچ کارکرد خاصی هم برای اجرا نداریم پس مقدار پیش فرض (۰x021B2D30) را که محل شیء است ، برمی گرداند. در برنامه عملی پایتون ، احتمالاً دیگر نیازی به انجام این کار نخواهید داشت.

هنگامی که دستور " print square" را اجرا می کنید ، مقدار شی را برمی گرداند

آرگومان ها در توابع

آرگومان مقداری است که هنگام فراخوانی تابع به آن ارسال می شود. به عبارت دیگر از طرف فراخوانی ، یک آرگومان است و در طرف تابع یک پارامتر است. بگذارید ببینیم که آرگومان پایتون چگونه کار می کند –

مرحله ۱) آرگومان ها در تعریف تابع اعلام می شوند. هنگام فراخوانی تابع ، می توانید مقادیر آرگومان را همانطور که در شکل زیر نشان داده شده است ، ارسال کنید.

آرگومان ها در توابع

مرحله ۲) برای مشخص کردن مقدار پیش فرض آرگومان ، مقدار را در تعریف تابع به آن اختصاص دهید.

C:UsersMrDesktopPython10.11.png

مثال: x مقدار پیش فرض ندارد اما y مقدار پیش فرض ۰ دارد. زمانی که تابع را با یک آرگومان صدا می زنیم، پایتون آرگومان را به x اختصاص می دهد و y=0 است. در نتیجه x*y=0 می شود.

 زمانی که تابع را با یک آرگومان صدا می زنیم.

مرحله ی ۳) در این مرحله به جای مقدار پیش فرض ۰ مقدار ۲ را به y اختصاص می دهیم. خروجی برابر خواهد بود با : ۴*۲=۸ .

خروجی برابر خواهد بود با : ۴*۲=۸ .

مرحله ی ۴) می توان ترتیب ارسال آرگومان به توابع را جا به جا کرد.

می توان ترتیب ارسال آرگومان به توابع را جا به جا کرد

مرحله ی ۵) آرگومان های متعدد می توانند به عنوان آرایه ارسال شوند. در اینجا با فراخوانی (args(1,2,3,4,5 تابع (*args) را صدا می زنیم.

مثال: آرگومان های عددی مختلف (۱,۲,۳,۴,۵) را تعریف کرده ایم. زمانی که تابع (*args) را صدا می زنیم، خروجی (۱,۲,۳,۴,۵) چاپ می شود.

خروجی (۱,۲,۳,۴,۵) چاپ می شود.

نکات:

  • در پایتون ۲٫۷ overloading تابع پشتیبانی نمی شود. overloading تابع توانایی ایجاد چندین متد هم نام با اجرای متفاوت است. overloading تابع به طور کامل در پایتون ۳ پشتیبانی می شود.
  • بین مفهوم متد ها و توابع پیچیدگی وجود دارد. متد ها در پایتون با شی مرتبطند در حالی که در توابع اینگونه نیست. یک تابع مستقل در پایتون یک “تابع” ​​است ، در حالی که تابعی که یک ویژگی از کلاس یا نمونه است ” متد” است.

کد پایتون ۳

#define a function

def func1():

print (“I am learning Python function”)

print (“still in func1”)

func1()

def square(x):

return x*x

print(square(4))

def multiply(x,y=0):

print(“value of x=”,x)

print(“value of y=”,y)

return x*y

print(multiply(y=2,x=4))

کد پایتون ۲

#define a function

def func1():

print ” I am learning Python function”

print ” still in func1″

func1()

def square(x):

return x*x

print square(4)

def multiply(x,y=0):

print”value of x=”,x

print”value of y=”,y

return x*y

print multiply(y=2,x=4)

خلاصه

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

  • تابع توسط عبارت def تعریف می شود.
  • بلوک کد در هر تابع با (:)شروع می شود و باید تو رفتگی داشته باشد.
  • هر آرگومان یا پارامتر ورودی باید داخل پرانتزها قرار بگیرد.
  • حداقل یک فاصله بعد از تعریف تابع برای نوشتن کد باید ایجاد کنیم.
  • سبک تورفتگی باید در تابع حفظ شود.
  • بهترین روش این است که سه یا چهار فاصله قبل از دستورات در نظر گرفته شود.
  • می توانید از دستور “Return” برای بازگشت مقادیر به فراخواننده استفاده کنید.
  • هنگامی که آرگومان به تابع فراخوان ارسال نشده باشد ، پایتون مقدار تصادفی مانند (۰x021B2D30) را چاپ می کند. به عنوان مثال “print function “
  • آرگومان در طرف فراخوانی ، یک آرگومان است و در طرف تابع یک پارامتر.
  • مقدار پیش فرض در آرگومان – هنگامی که در حین فراخوانی تابع ضرب یا هر تابع دیگر، فقط یک آرگومان ارسال می کنیم، پایتون به آرگومان دیگر بطور پیش فرض مقدار اختصاص می دهد.
  • پایتون شما را قادر می سازد ترتیب ارسال آرگومان را معکوس کنید.
profile name
میلاد حیدری

بخندید کتاب بخونید و خوب باشید تا جامعه مون به آرامش برسه. لطفا ! هر سوالی دارید در بخش نظرات مطرح کنید. ما یا سایر هموطنان عزیز پاسخ خواهیم داد. برای کمک به سایت ما و گسترش آموزش در بین هموطنان، در سایتها، وبلاگ ها و شبکه های اجتماعی لینک سایت ما را درج کنید.

مطالب پیشنهادی برای شما

دیدگاهتان را بنویسید

1 2 3 4 5

1 نظر درباره «توابع پایتون: فراخوانی ، تورفتگی ، آرگومان ها و مقادیر بازگشتی»

  • سام
    سام آیا این دیدگاه مفید بود ؟

    سلام جناب حيدري عزيز
    ارجاع دادن به يك بخش از يك ليست در پايتون چجوري انجام ميشه؟ مثلا يك ليست يا يك ماترس شامل تعدادي زير ليست يا زير ماتريس است حال ميخواهيم با دادن انديس هايي به هر يك در ابتدا آنها را در حافظه داشته و سپس فراخواني كنيم. در متلب با ‍‌‍‌{} انجام ميشه. مثلا براي {i}data و دادن عدد به انديس i مجمموعه هاي 1 تا n را فراخواني مي كنيم.
    ممنون

    پاسخ
مشاهده همه نظرات
سبد خرید
سبد خرید شما خالی است
× جهت نصب روی دکمه زیر در گوشی کلیک نمائید
آی او اس
سپس در مرحله بعد برروی دکمه "Add To Home Screen" کلیک نمائید