ফাংশন

প্রোগ্রামিং ফাংশন কি ?

প্রোগ্রামারদের ম্যাজিক হচ্ছে ফাংশন। এখন আবার আপনার মনে হতে পারে এটা আবার কি? তাই না। মনে করেন আপনি একটা ম্যাজিক শোতে গিয়েছেন। আপনি এখন একটা ম্যাজিক দেখাবেন যেখানে একটা ছেড়া সুতোকে ফু দিলে তা জোড়ালেগে যাবে। এমনই তো দেখেন তাই না? এই ফু টাই হচ্ছে ফাংশন।

আচ্ছা, ফাংশন কি তা আগে জানি। ফাংশন হচ্ছে পুনরায় ব্যবহার যোগ্য কোড ব্লক। যা একটি নির্দিষ্ট কাজ করতে পারে। ফাংশন ভালো ভাবে জানলেই প্রোগ্রামিং এর একটা বিশাল অংশ শেখা শেষ হয়ে যায়। তা জানলেই নিজের ইচ্ছে মত কোড লেখা যায়।

পাইথনে বিভিন্ন প্রকারের ফাংশন রয়েছে:

সাধারণ ফাংশন (User-defined Function):

(User-defined Function): এই ফাংশনগুলি একটি কাজ করে এবং তার ফলাফল রিটার্ন করে। এই ধরনের ফাংশনে প্যারামিটার পাস করা হয় এবং ফাংশন ব্যবহার করে অপর অংশে ব্যবহার করা হয়।

def add(a, b):
    return a + b

result = add(5, 3)
print("যোগফল:", result)

ল্যাম্বডা ফাংশন (Lambda Function):

ল্যামডা ফাংশনকে এক কথায় বেনামী বা অজ্ঞাত ফাংশন বলা হয়। পূর্বের ফাংশন পর্বে আমরা দেখেছি যে ফাংশন ডিফাইন করার জন্য def কিওয়ার্ড ব্যবহার করতে হয়। কিন্তু ল্যামডা ফাংশনের জন্য এগুলোর প্রয়োজন নেই।

ল্যাম্বডার ব্যবহার খুব ফলপ্রসূ হয় যখন খুব সিম্পল যেমন এক লাইনের একটি ফাংশনকে আরেকটি ফাংশনের আর্গুমেন্ট হিসেবে পাঠানোর দরকার পরে। অর্থাৎ যখন সেই এক লাইনের কাজ করা ফাংশনকে আলাদা ভাবে def দিয়ে ডিফাইন/তৈরি করা অনর্থক মনে হয়।

সিনটেক্সট

প্রথমে lambda কিওয়ার্ড লিখে এর আর্গুমেন্ট গুলোকে লেখা হয় এবং একটি কোলন দেয়ার পর এই ল্যাম্বডা তথা ফাংশনের কর্মকাণ্ড লেখা হয়।

#এখানে lambda ফাংশন একটি আর্গুমেন্ট x নেয় এবং তার বর্গ রিটার্ন করে।
square = lambda x: x ** 2
num = 4
squared_num = square(num)
print("বর্গ:", squared_num)

প্রতিটি লাইনের ব্যাখ্যা

  1. square = lambda x: x ** 2: এই লাইনে একটি ল্যাম্বডা ফাংশন ডিফাইন করা হয়, যার নাম square। এই ফাংশনে একটি আর্গুমেন্ট x নেয় এবং তার বর্গ ক্যালকুলেট করে x ** 2 ফর্মুলার মাধ্যমে। ফাংশনটি ক্যালকুলেশন সম্পন্ন করে এবং সংজ্ঞায়িত নাম square দিয়ে রাখা হয়।

  2. num = 4: এই লাইনে একটি ভেরিয়েবল num তৈরি করা হয় এবং এটির মান ৪ দিয়ে সেট করা হয়। এটি বর্গ ক্যালকুলেশনে ব্যবহার হবে।

  3. squared_num = square(num): এই লাইনে, square() ল্যাম্বডা ফাংশনটি কল করা হয়, যেখানে আর্গুমেন্ট হিসেবে num এর মান ৪ পাস করা হয়। ফাংশনটি ৪ এর বর্গ ক্যালকুলেট করে এবং সেটি রিটার্ন করে। এই রিটার্ন মানটি squared_num ভেরিয়েবলে সংরক্ষিত হয়।

  4. print("বর্গ:", squared_num): এই লাইনে print() ফাংশন ব্যবহার হয়, যেটি "বর্গ:" টেক্সট প্রিন্ট করে এবং squared_num ভেরিয়েবলে সংরক্ষিত বর্গ মান প্রিন্ট করে।

এখানে উল্লেখ্য –

  • ল্যামডা ফাংশন শুধুমাত্র একটা স্টেটমেন্টের হবে।

  • ল্যামডা ফাংশন যেকোন সংখ্যক আর্গুমেন্ট গ্রহণ করতে পারে।

বিল্ট-ইন ফাংশন (Built-in Functions):

পাইথনে অনেকগুলি বিল্ট-ইন ফাংশন রয়েছে যা পাইথন ভাষার নিজস্ব অংশ। এগুলি ব্যবহার করে সাধারণ কাজ সহজে সম্পাদন করা যায়।

প্রিন্ট ফাংশন (Built-in Function):

এটি সাধারণভাবে একটি ম্যাসেজ প্রিন্ট করতে ব্যবহৃত হয়।

def greet(name):
    print("Hello,", name)

greet("Alice")
greet("Bob")

আরও অনেকটি Built-in Function ফাংশন রয়েছে যেমন

  • len(): একটি সিকোয়েন্সের দৈর্ঘ্য (উপাদানের সংখ্যা) নির্ণয় করে।

  • max() এবং min(): একটি সিকোয়েন্সের সর্বোচ্চ এবং সর্বনিম্ন মান রিটার্ন করে।

  • sum(): একটি সিকোয়েন্সের সব উপাদানগুলির যোগফল রিটার্ন করে।

রিকার্সিভ ফাংশন (Recursive Function):

এটি নিজেই নিজেকে আবার কল করতে থাকে। এটি ছোট কাজগুলি পরিস্থিতির অনুযায়ী বাড়ানোর জন্য ব্যবহৃত হয়।

def factorial(n):
#যদি n এর মান ০ হয় তাহলে ফ্যাক্টোরিয়াল গণনা হয়ে গেছে এবং ১ রিটার্ন করা হবে
    if n == 0:
        return 1
#যদি n এর মান ০ না হয়, তাহলে        
    else:
        return n * factorial(n - 1)

num = 5
fact = factorial(num)
print("Factorial of", num, "is", fact)

Last updated