جلسه چهل و یکم

انواع توابع و لامبدا

در زبان پایتون، انواع توابع مختلفی وجود دارند که به شما امکان انجام عملیات مختلف را می‌دهند. برخی از انواع توابع معمول در پایتون عبارتند از:

  1. توابع تعریف شده توسط کاربر (User-defined functions):

توابعی که توسط کاربران تعریف می‌شوند و می‌توانند توابع سفارشی با عملکرد مورد نظر باشند.

– مثال ۱: تابعی برای محاسبه میانگین یک لیست اعداد.

				
					def calculate_average(numbers):
    total = sum(numbers)
    avg = total / len(numbers)
    return avg
numbers = [10, 20, 30, 40, 50]
print(calculate_average(numbers))  # Output: 30.0
				
			

– مثال ۲: تابعی برای تبدیل یک رشته به حروف بزرگ.

				
					def convert_to_uppercase(text):
    return text.upper()
text = "hello, world!"
print(convert_to_uppercase(text))  # Output: HELLO, WORLD!
				
			

2. توابع داخلی (Built-in ​_functions):

توابعی که پیش‌فرض در پایتون وجود دارند و می‌توانید بدون نیاز به تعریف اضافی از آن‌ها استفاده کنید، مانند print() یا len().

– مثال ۱: استفاده از تابع len() برای محاسبه طول یک لیست.

				
					numbers = [1, 2, 3, 4, 5]
print(len(numbers))  # Output: 5
				
			

– مثال ۲: استفاده از تابع max() برای یافتن بزرگترین عنصر در یک لیست اعداد.

				
					numbers = [10, 20, 30, 40, 50]
print(max(numbers))  # Output: 50
				
			

3. توابع لامبدا یا تابع‌های بی‌نام (Lambda functions): توابع کوچک و بدون نام که معمولاً برای استفاده‌های کوتاه و ساده به کار می‌روند.

جلسه چهل`if __name__ == “__main__”:` یک عبارت شرطی است که برای مشخص کردن نقطه ورود به برنامه استفاده می‌شود. این عبارت اجازه می‌دهد تا بخش‌هایی از کد فقط زمانی اجرا شوند که برنامه به عنوان یک برنامه اصلی (main program) اجرا شود، نه به عنوان یک ماژول که توسط برنامه دیگری وارد شده است. به عبارت دیگر، `if __name__ == “__main__”:` یک راه برای تشخیص اینکه آیا یک ماژول به عنوان برنامه اصلی اجرا می‌شود یا به عنوان یک ماژول وارد شده است. – مثال ۱: استفاده از تابع لامبدا برای محاسبه مربع یک عدد.

				
					square = lambda x: x**2
print(square(5))  # Output: 25

				
			

– مثال 3: استفاده از تابع لامبدا برای جمع دو عدد.

				
					add = lambda a, b: a + b
print(add(3, 4))  # Output: 7
				
			

– مثال 4: تابع لامبدا برای تبدیل یک رشته به حروف بزرگ:

				
					uppercase = lambda text: text.upper()
print(uppercase("hello, world!"))  # خروجی: HELLO, WORLD!
				
			

4. توابع بازگشتی (Recursive functions):

توابعی که خود را در داخل خود صدا می‌زنند و از آن‌ها برای حل مسائل بازگشتی استفاده می‌شود.

– مثال ۱: تابع بازگشتی برای محاسبه فاکتوریل یک عدد.

				
					def factorial(n):
    if n == 0:
        return 1
    else:
        return n * factorial(n-1)
print(factorial(5))  # Output: 120
				
			

– مثال ۲: تابع بازگشتی برای محاسبه جمع اعداد تا یک عدد خاص.

				
					def sum_numbers(n):
    if n == 1:
        return 1
    else:
        return n + sum_numbers(n-1)
print(sum_numbers(5))  # Output: 15
				
			

5. توابع محافظت شده (Anonymous functions):

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

– مثال: استفاده از تابع محافظت شده برای ضرب دو عدد.

				
					multiply = lambda x, y: x * y
print(multiply(3, 4))  # Output: 12
				
			

این انواع توابع به شما امکان انجام عملیات‌های مختلف را در پایتون فراهم می‌کنند.