تعریف توابع و انواع آن در پایتون
آشنایی با توابع در پایتون: انواع، نحوه تعریف و کاربردها
توابع در پایتون به شما این امکان را میدهند که بخشهایی از کد را که چندین بار استفاده میشوند، در قالب یک بلاک تعریف کنید و با یک نام مشخص آن را فراخوانی کنید. این کار باعث کاهش کدهای تکراری، افزایش خوانایی و قابلیت نگهداری بهتر برنامه میشود.
۱. تعریف تابع با def برای ایجاد یک تابع، از کلمه کلیدی def استفاده میکنیم.
ساختار کلی:
# بدنه تابع
return مقدار_برگشتی # (اختیاری)
اگر return نباشد، تابع مقدار None برمیگرداند.
مثال ساده:
return f"سلام {name}!"
print(greet("علی"))
۲. انواع توابع در پایتون
1.2. توابع بدون مقدار بازگشتی (void function) این توابع فقط عملیاتی را انجام میدهند ولی مقدار خاصی برنمیگردانند.
مثال:
با تهیه یک اشتراک ماهانه در پلتفرم Elimi|علیمی، بدون محدودیت به تمام دورهها، پروژهها و مسیرهای یادگیری دسترسی پیدا کنید.
print("سلام!")
say_hello()
این تابع فقط پیام "سلام!" را چاپ میکند و مقدار خاصی برنمیگرداند.
۲.۲. توابع با مقدار بازگشتی (return function) این توابع پس از پردازش، یک مقدار را برمیگردانند که میتوان آن را ذخیره یا استفاده کرد.
مثال:
return a + b
result = add(5, 3)
print(result) # خروجی: 8
3.2. توابع با مقدار پیشفرض برای پارامترها میتوان برای پارامترها مقدار پیشفرض تعیین کرد تا در صورت عدم ارسال مقدار، از مقدار پیشفرض استفاده شود.
مثال:
return f"سلام {name}!"
print(greet()) # خروجی: سلام مهمان!
print(greet("علی")) # خروجی: سلام علی!
4.2. توابع با تعداد پارامتر نامشخص (*args) اگر بخواهیم تابعی تعداد نامشخصی از پارامترها را بپذیرد، از *args استفاده میکنیم.
مثال:
return sum(numbers)
print(sum_all(1, 2, 3, 4, 5)) # خروجی: 15
در اینجا، *numbers تمام آرگومانهای ورودی را بهصورت یک tuple دریافت میکند.
5.2. توابع با پارامترهای نامگذاریشده (**kwargs) برای ارسال آرگومانها بهصورت کلید=مقدار و دریافت آنها در قالب dictionary، از **kwargs استفاده میکنیم.
مثال:
for key, value in info.items():
print(f"{key}: {value}")
show_info(name="علی", age=25, city="تهران")
خروجی:
age: 25
city: تهران
6.2. توابع بازگشتی (Recursive Functions) توابع بازگشتی، توابعی هستند که خودشان را فراخوانی میکنند.
مثال (محاسبه فاکتوریل عدد):
if n == 1:
return 1
return n * factorial(n - 1)
print(factorial(5)) # خروجی: 120
در اینجا، تابع factorial خودش را تا زمانی که n == 1 شود، صدا میزند.
۳. تابعهای lambda (توابع ناشناس یا یکخطی) توابع lambda برای ایجاد توابع ساده و کوتاه بدون نیاز به def استفاده میشوند.
ساختار کلی:
مثال:
print(add(3, 5)) # خروجی: 8
مثال دیگر:
print(square(4)) # خروجی: 16
۴. توابع درون توابع (Nested Functions) میتوان درون یک تابع، تابع دیگری تعریف کرد.
مثال:
def inner_function():
return "تابع داخلی اجرا شد"
return inner_function()
print(outer_function())
۵. توابع بهعنوان آرگومان در پایتون، توابع را میتوان بهعنوان آرگومان به توابع دیگر ارسال کرد.
مثال:
return func(value)
def double(x):
return x * 2
print(apply_function(double, 5)) # خروجی: 10
۶. توابع با مقدار بازگشتی چندگانه در پایتون، میتوان چند مقدار را از یک تابع بازگرداند.
مثال:
return 1, 2, 3
a, b, c = get_numbers()
print(a, b, c) # خروجی: 1 2 3
در اینجا، تابع سه مقدار را بهصورت tuple برمیگرداند که در متغیرهای جداگانه ذخیره میشوند.
آشنایی با توابع در پایتون: انواع، نحوه تعریف و کاربردها
توابع در پایتون به شما این امکان را میدهند که بخشهایی از کد را که چندین بار استفاده میشوند، در قالب یک بلاک تعریف کنید و با یک نام مشخص آن را فراخوانی کنید. این کار باعث کاهش کدهای تکراری، افزایش خوانایی و قابلیت نگهداری بهتر برنامه میشود.
۱. تعریف تابع با def برای ایجاد یک تابع، از کلمه کلیدی def استفاده میکنیم.
ساختار کلی:
# بدنه تابع
return مقدار_برگشتی # (اختیاری)
اگر return نباشد، تابع مقدار None برمیگرداند.
مثال ساده:
return f"سلام {name}!"
print(greet("علی"))
۲. انواع توابع در پایتون
1.2. توابع بدون مقدار بازگشتی (void function) این توابع فقط عملیاتی را انجام میدهند ولی مقدار خاصی برنمیگردانند.
مثال:
print("سلام!")
say_hello()
این تابع فقط پیام "سلام!" را چاپ میکند و مقدار خاصی برنمیگرداند.
۲.۲. توابع با مقدار بازگشتی (return function) این توابع پس از پردازش، یک مقدار را برمیگردانند که میتوان آن را ذخیره یا استفاده کرد.
مثال:
return a + b
result = add(5, 3)
print(result) # خروجی: 8
3.2. توابع با مقدار پیشفرض برای پارامترها میتوان برای پارامترها مقدار پیشفرض تعیین کرد تا در صورت عدم ارسال مقدار، از مقدار پیشفرض استفاده شود.
مثال:
return f"سلام {name}!"
print(greet()) # خروجی: سلام مهمان!
print(greet("علی")) # خروجی: سلام علی!
4.2. توابع با تعداد پارامتر نامشخص (*args) اگر بخواهیم تابعی تعداد نامشخصی از پارامترها را بپذیرد، از *args استفاده میکنیم.
مثال:
return sum(numbers)
print(sum_all(1, 2, 3, 4, 5)) # خروجی: 15
در اینجا، *numbers تمام آرگومانهای ورودی را بهصورت یک tuple دریافت میکند.
5.2. توابع با پارامترهای نامگذاریشده (**kwargs) برای ارسال آرگومانها بهصورت کلید=مقدار و دریافت آنها در قالب dictionary، از **kwargs استفاده میکنیم.
مثال:
for key, value in info.items():
print(f"{key}: {value}")
show_info(name="علی", age=25, city="تهران")
خروجی:
age: 25
city: تهران
6.2. توابع بازگشتی (Recursive Functions) توابع بازگشتی، توابعی هستند که خودشان را فراخوانی میکنند.
مثال (محاسبه فاکتوریل عدد):
if n == 1:
return 1
return n * factorial(n - 1)
print(factorial(5)) # خروجی: 120
در اینجا، تابع factorial خودش را تا زمانی که n == 1 شود، صدا میزند.
۳. تابعهای lambda (توابع ناشناس یا یکخطی) توابع lambda برای ایجاد توابع ساده و کوتاه بدون نیاز به def استفاده میشوند.
ساختار کلی:
مثال:
print(add(3, 5)) # خروجی: 8
مثال دیگر:
print(square(4)) # خروجی: 16
۴. توابع درون توابع (Nested Functions) میتوان درون یک تابع، تابع دیگری تعریف کرد.
مثال:
def inner_function():
return "تابع داخلی اجرا شد"
return inner_function()
print(outer_function())
۵. توابع بهعنوان آرگومان در پایتون، توابع را میتوان بهعنوان آرگومان به توابع دیگر ارسال کرد.
مثال:
return func(value)
def double(x):
return x * 2
print(apply_function(double, 5)) # خروجی: 10
۶. توابع با مقدار بازگشتی چندگانه در پایتون، میتوان چند مقدار را از یک تابع بازگرداند.
مثال:
return 1, 2, 3
a, b, c = get_numbers()
print(a, b, c) # خروجی: 1 2 3
در اینجا، تابع سه مقدار را بهصورت tuple برمیگرداند که در متغیرهای جداگانه ذخیره میشوند.
با تهیه یک اشتراک ماهانه در پلتفرم Elimi|علیمی، بدون محدودیت به تمام دورهها، پروژهها و مسیرهای یادگیری دسترسی پیدا کنید.