تبلیغات
قطره (ای از زندگی یک درگیر کامپیوتر) - نکاتی درمورد توابع
 
اگر قادر نیستی خود را بالا ببری ،همانند سیب باش تا با افتادنت اندیشه ای بالا برود.

نکاتی درمورد توابع

نوشته شده توسط :سعید كلانتری
سه شنبه 28 آذر 1396-06:42 ب.ظ


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

1.      هیچ ورودی ندارد، هیچ خروجی ندارد.

2.      هیچ ورودی ندارد، خروجی دارد.

3.      ورودی دارد، هیچ خروجی ندارد.

4.      ورودی دارد، خروجی دارد.

1.    هیچ ورودی ندارد، هیچ خروجی ندارد.

گاهی اوقات نیاز داریم برخی کارها را بارها و بارها انجام دهیم و این کار هیچ گاه تغییر نمی کند. در این مورد، تابع نیاز به هیچ ورودی (پارامتری) ندارد و نیازی به برگرداندن هیچ خروجی هم ندارد.

def display_message():
   
print("****   PYTHON IS GREAT   ****")
   
print("=============================")
   
# Main Program #
radius = 5
print("The radius of the circle is: ", radius)
display_message()    # The function call

circumference = 2*3.14*radius
print("The circumference of the circle is:", circumference)
display_message()    # The function call

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

حاصل این برنامه:

The radius of the circle is:  5

****   PYTHON IS GREAT   ****

=============================

The circumference of the circle is: 31.400000000000002

****   PYTHON IS GREAT   ****

=============================

2.   هیچ ورودی ندارد، خروجی دارد.

یک مثال بارز از یک تابع که هیچ ورودی ندارد اما خروجی برمیگرداند، به شکل زیر است.

import random

def report_random():
    my_number = random.randint(20, 100)
    
return my_number

# Main Program #
a = report_random()    # return a random int and assign it to a
print("a is equal to ", a)
b = report_random()    # return a random int and assign it to b

print("b is equal to ", b)
c = report_random()    # return a random int and assign it to c

print("c is equal to ", c)

توجه داشته باشید که این تابع هیچگونه آرگومانی دریافت نمی کند اما هر زمانی که این تابع را فراخوانی کنیم، یک عدد صحیح تصادفی بین 20 و 100 برمی گرداند و مقدار برگشتی را به متغیری که برابر با فراخوان تابع بود اختصاص می دهد.

خروجی بصورت زیر است:

a is equal to  82

b is equal to  75

c is equal to  94

3.     ورودی دارد، هیچ خروجی ندارد.

در این حالت،  تابع آرگومانهایی نیاز دارد تا عملیاتی را انجام دهد اما نیاز به برگرداندن هیچ چیزی ندارد.

def calculate_area(length, breadth):
    area = length * breadth
    perimeter = 2*length + 2*breadth
   
print("area is equal to", area)
   
print("perimeter is equal to", perimeter)

# Main Program #
calculate_area(10, 20)

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

نمونه اجرا شده از این برنامه بصورت زیر است:

area is equal to 200

perimeter is equal to 60

4.     ورودی دارد، خروجی دارد.

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

def calculate_area(length, breadth):

    area = length * breadth

    perimeter = 2*length + 2*breadth
    my_result = [area, perimeter]    # put results in a list

    return my_result                 # return the list

 

# Main Program #

my_list = calculate_area(10, 20) # two arguments are supplied
print("The resulting list looks like:", my_list)

اجرای نمونۀ این برنامه بصورت زیر است:

The resulting list looks like: [200, 60]

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

return area, perimeter

در این وضعیت، پایتون دو مقدار را بعنوان یک "چندتایی" برگردانده است، که می تواند مشابه زیر باشد:

(200, 60)

ما چندتایی ها (tuples) را بعدا در این دوره بحث خواهیم کرد.






درباره وبلاگ:



آرشیو:


طبقه بندی:


آخرین پستها:


پیوندها:


پیوندهای روزانه:


صفحات جانبی:


نویسندگان:


ابر برچسبها:


آمار وبلاگ:







The Theme Being Used Is MihanBlog Created By ThemeBox