Function in Python | Easy Bengali 2024

হ্যালো বন্ধুরা, আজকে আমরা PYTHON-এর একটা ইন্টারেস্টিং ও গুরুত্বপূর্ণ বিষয় FUNCTION পড়বো। চলুন গল্পে গল্পে শুরু করা যাক।

চলুন একটি সহজ গল্পের সাহায্যে ফাংশন বোঝার চেষ্টা করি :
মনির একটি ছোট্ট দোকান রয়েছে। কিন্তু সে রশিদ না দেবার জন্য কাস্টমারের সাথে তার বেশিরভাগ সময়ে মনমালিন্য হতো এবং কখনো কখনো কাস্টমার তার পন্যের ন্যায্য মূল্য দিত না। এই সমস্যা দূর করার জন্য সে ‘purchase_item’ নামক একটি ফাংশন তৈরি করে।


কেউ যখন কোনও জিনিসপত্র কিনবে, তখন তারা ফাংশনটি কল করবে। ফাংশনটি ক্রেতার নাম, ঠিকানা, পণ্যের/জিনিসটির নাম , মূল্য এবং পরিমাণ নিয়ে একটি রসিদ/ তৈরি করবে এবং মোট মূল্য হিসাব করবে। এবং সবশেষে একটি রসিদ তৈরি করবে যা দেখে কাস্টমার মূল্য পরিশোধ করতে পারবে।
এই উপায়ে, মনি তার কাস্টমারদের জন্য একটি সহজ এবং কার্যকর সমাধান তৈরি করছে যা তার দৈনন্দিন জীবনকে সহজ ও ঝঞ্ঝাট মুক্ত করতে সাহায্য করেছে।

ফাংশান পড়ার আগে আমাদের জানতে হবে আমরা ফাংশন কেন করব? কোথায় / কখন কাজে লাগাবো? কিভাবে ব্যবহার করব? এবং সর্বশেষ ফাংশন কি?

প্রথম হল ফাংশন, কেন করব মূলত ফাংশন আমরা পড়বো পড়বো প্রোগ্রামিং এ, কোড সংগঠিত এবং পুনরায় ব্যবহার করার জন্য। আমাদের‌ প্রধান প্রোগ্রামের মধ্যে একটি মিনি-প্রোগ্রাম। 

  1.  ফাংশনগুলি একটি বড় প্রোগ্রামকে ছোট, পরিচালনাযোগ্য অংশে বিভক্ত করতে সহায়তা করে।
  2. এটি একটি বড় কাজকে ছোট সাব-টাস্কে ভাগ করতে সহায়তা করে।
  3. এটি আপনার কোডকে আরও সংগঠিত করে এবং বোঝার উপযোগী করে তোলে৷ 

দ্বিতীয়তঃ আমরা ফাংশনকে কোথায় / কখন কাজে লাগাবো?  

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

এবং সর্বশেষ ফাংশন হল পুনঃব্যবহারযোগ্য কোডের একটি অংশ যেটাকে বারংবার ব্যবহার করে আমাদের প্রোগ্রামকে সুন্দরভাবে লিখতে পারি।

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

আশাকরি ফাংশন বোঝা গেল এবারে আমরা ফাংশনের কোড লিখব|

Creating a Function:

পাইথনে ফাংশন তৈরি করতে def কীওয়ার্ড ব্যবহার করা হয়:

# function defination
def myfunction() :
    #function body
    print("Hello from a function")
Python

Calling a Function:

একটি ফাংশন কলিং একটি ফাংশন কল করতে, বন্ধনী দ্বারা অনুসরণ ফাংশন নাম ব্যবহার করুন|

# function defination
def myfunction() :
    #function body
    print("Hello from a function")

# function call
myfunction()
Python

Argument:

ফাংশন কলের সময় যেই ভেরিয়েবলগুলোকে আমরা ফাংশানে পাঠাই তাদেরকে আর্গুমেন্ট বলে।

# Calling the 'Addition' function with arguments 5 and 3
Addition(5,3)
Python

Parameter

ফাংশান ডেফিনেশনের মধ্যে যে সমস্ত ভেরিয়েবল গুলো ফাংশন কলের ভেরিএবেল গুলো রিসিভ করে তো তাদেরকে প্যারামিটার বলে।

# function defination
def Addition(a,b): # here a and b is called parameter.
    return a+b
    
Addition(5,3) # function call
Python

সঠিকটি হল আমরা ফাংশন কলের সময় যতগুলো আর্গুমেন্ট পাঠাবো ফাংশন definition এ ঠিক ততগুলোই প্যারামিটার থাকবে।

আর্গুমেন্টের সংখ্যা = প্যারামিটার এর সংখ্যা
awKbq79vbkhUo 56quswByi q0ei0EcO0irm8AJmIpf4LHXx1DL6j7jMUnU3leRFkp7zQcyrzxyvmIDJo258PVDsHCAM kcMUhLUBB8sZLOVV2nyO aC6f8sKtWaxdjskd nKCAbbOWFl8eX4 Gbbqg TechinBengali.com

Positional Parameter and Argument: পজিশনাল প্যারামিটার হল সবচেয়ে সাধারণ ধরনের প্যারামিটার, যেখানে ফাংশন call এর সময় পাস করা আর্গুমেন্টের order = function definition এ  প্যারামিটারের order.

def greet(name): # name is positional parameter
    print('Hello ',name)
greet('suvo') # suvo is positional Argument

# OUTPUT ---
# HeLLo, Suvo
Python

Key-word Parameter and Argument: কীওয়ার্ড প্যারামিটারগুলি প্যারামিটার নাম ব্যবহার করে আর্গুমেন্ট এবং প্যারামিটারের মধ্যে সম্পর্ক স্থাপন করে।

def greet(name,age): # name and age are keyword parameter
    print('Hello'name,"! you are",age, ' years old.')
greet(name='suvo',age=20) #name = suvo and age = 20 are keyword Argument

## OUTPUT --
# HeLLo, Suvo ! you are 20 years old
Python

Default Parameter and Argument: ডিফল্ট প্যারামিটারগুলি, প্যারামিটারগুলির জন্য ডিফল্ট value প্রদান করে যদি ফাংশন কলের সময় কোনও value পাস না হয়। 

def greet(name,age=20): # age is default parameter with default vaLue 20
    print('Hello',name,"! you are",age,' years old.')
greet('suvo') # no argument is provide for age , default value is use
## OUTPUT
# HeLLo, Suvo ! you are 20 years old
Python

Arbitary Positional Parameter and Argument: আরবিট্রারি পজিশনাল প্যারামিটার, যা *args দ্বারা চিহ্নিত করা হয়, যদি আমরা ফাংশানের আরগুমেন্টে এক বা একাধিক ভ্যালু পাস করি তখন *args tuple আকারে ভ্যালু গুলোকে সংগ্রহ করে।

def sum_of_numbers(*args):
    total=0
    for i in args: # here args is actually contains a tuple
        total+=i
    print(total)
        
sum_of_numbers(1,2,3,4,5,6) # we send some arbitary numbers

## OUTPUT sum_of_numbers
# 21
Python

Arbitary Keyword Parameter and Argument : আরবিট্রারি কীওয়ার্ড প্যারামিটার, **kargs দ্বারা চিহ্নিত, ফাংশনে একবার একাধিক সংখ্যক কীওয়ার্ড আর্গুমেন্ট পাঠানো হয় তাহলে **kargs এগুলোকে dictionary হিসেবে সংগ্রহ করে।

def print_info(**kargs):
    # here kargs contains a dictionary
    for key,value in kargs.items():
        print(key," : ",value)
print_info(name="Subhankar",city="Naihati",age=20) #we send some arbitary values

## output --
# name : Subhankar
# city : Naihati
# age : 20
Python

Also Read :- Learn Python Free for Beginners in Bengali 2023

Return statement

পাইথনে return স্টেটমেন্ট ব্যবহার করে আমরা যে কোন ধরনের ভ্যালু রিটার্ন করতে পারি। যখন রিটার্ন স্টেটমেন্টটা execute হয় তখন ফাংশানের execution থেমে যায় এবং রিটার্ন স্টেটমেন্ট  কিছু ভ্যালু রিটার্ন করে যেখান থেকে ফাংশন কে কল করা হয়েছিল। যদি আমরা কিছু রিটার্ন না করি পাইথন অটোমেটিকালি implicitly ভাবে none রিটার্ন করে।

Example-1 : Returning a value from a function

def add(x,y):
    c=x+y
    return c # return the value of c

result=add(5,5) # return value is stored in result variable
print(result)
Python

Example-2 : Returning Multiple values from a function

def calculation(data):
    # calculation minimum , maximum and average
    max_cal=max(data)
    min_cal=min(data)
    avg_cal=sum(data)/len(data)
    # here we return multiple values
    return max_cal,min_cal,avg_cal

max_res, min_res, avg_res=calculation( [5,4,58,4,0,7,8,9] )

print("Maximun : ",max_res)
print("Minimun ",min_res)
print("Average : ",avg_res)
Python

Example-3 : Returning None

def greet(name):
    print("hello, ",name)
    return None # when there is no explicitly value is returned , python implicitly       return None

greet("subhankar")
Python
1. কোনো ভ্যালু রিটার্ন করতে পাইথনে কোন কিওয়ার্ড ব্যবহার করব?

return keyword.

2. পাইথন কি কি ভ্যালু রিটার্ন করতে পারে?

none , list ,tuple , dictionary  , Boolean values (true / false ) , integer, string ,object and multiple value.
যদি আমরা কোন কিছু রিটার্ন না করি পাইথন implicitly none রিটার্ন করে।

3. কখন রিটার্ন স্টেটমেন্ট ব্যবহার করব ?

সবথেকে ভালো হচ্ছে ফাংশানের সমস্ত কাজ শেষ করার পরে শেষ লাইনে আমরা রিটার্ন স্টেটমেন্ট ব্যবহার করব। 
যদি আমরা রিটার্ন স্টেটমেন্ট আগে ব্যবহার করি তাহলে ফাংশানের execution স্টপ হয়ে যায়। এবং আমরা আশা পূর্বক রেজাল্ট পাইনা।

Types of function: 

পাইথনে ফাংশনের মূলত চার রকমের।

  1. BUILT-IN
  2. USER DEFINED
  3. LAMBDA
  4. RECURSIVE

1. BUILT-IN FUNCTION : 

পাইথনে কিছু ফাংশান অলরেডি আছে যেগুলোকে ব্যবহার করার জন্য আমাদের আলাদা করে ফাংশন লিখতে হবে না শুধুমাত্র ওই ফাংশনটাকে কল করে আমরা কাজ করতে পারব। এমন কিছু built-in ফাংশান নিচে আলোচনা করা হলো।

১. print () : প্রিন্ট ফাংশন মূলত যে কোন object কে Console এ প্রিন্ট করতে সাহায্য করে।

২. type () : টাইপ ফাংশানের সাহায্যে আমরা যে কোন Object এর Data-type জানতে পারি।

৩. input () : ইনপুট ফাংশনের সাহায্যে আমরা সিস্টেমকে যেকোনো ধরনের ইনপুট দিতে পারি।

Also Read :- File Handling in Python | Easy Bengali 2023

2. User-Defined Function:

User-Defined ফাংশন হল নরমাল ফাংশন যেগুলো User তৈরি করে তাদের নিজেদের কাজের জন্য।

যেমন – যোগ করার জন্য add() ফাংশন।

def add(x,y):
    c=x+y
    return c # return the value of c

result=add(5,5) # return value is stored in result variable
print(result)
Python

User-Define ফাংশন মূলত চার রকমের হয়ে থাকে।

1. Function without Argument and without Return type: 
## 1️⃣✅ function without Argument and without Return type

def Welcome() :
    print("Hello, user Welcome to Python Programming!")
    
Welcome()
## OUTPUT
## Hello, user Welcome to Python Programming!
Python
2. Function with Argument and without Return type: 
## 2️⃣✅ with Argument and without Return type

def Welcome(user) :
    print("Hello,",user," user Welcome to Python Programming!")
    
Welcome("SUBHANKAR")
## OUTPUT
## Hello, SUBHANKAR Welcome to Python Programming!
Python
3. Function without Argument and with Return type: 
## 3️⃣✅ without Argument and with Return type
def Welcome() :
    return "Hello, user Welcome to Python Programming!"
    
result=Welcome()
print(result)
## OUTPUT
## Hello, user Welcome to Python Programming!
Python
4.Function with Argument and with Return type: 
## 4️⃣✅ with Argument and with Return type

def Welcome(user) :
    str="Hello, {} Welcome to Python Programming!".format(user)
    return str
    
result=Welcome("Subhankar")
print(result)
## OUTPUT
## Hello, Subhankar Welcome to Python Programming!
Python

3. Lambda function:

lambda ফাংশন হল একটি ছোট, নামহীন ফাংশন যা সাধারণত একটি single expression র সাথে ব্যবহার করা হয়। এটি ‘lambda’ কীওয়ার্ড ব্যবহার করে define করা হয়।

# Lambda function 

square=lambda x: x*x # we dont need ro write return statement
print(square(4) )

## OUTPUT
#   16
Python

4. RECURSIVE Function

recursive ফাংশন হলো এমন একটি ফাংশন যা নিজেকে কল করে। এটি একটি সাধারণ প্রোগ্রামিং কৌশল যা বিভিন্ন সমস্যার সমাধান করতে ব্যবহার করা যেতে পারে। পাইথনে, রিকারসিভ ফাংশনগুলি def কীওয়ার্ড ব্যবহার করে define করা হয়, ঠিক অন্যান্য ফাংশনের মতো। যাইহোক, recursive ফাংশনগুলির একটি বিশেষ বৈশিষ্ট্য রয়েছে: তারা তাদের নিজস্ব definition / Scope মধ্যে নিজেদেরকে কল করে।

এখানে একটি recursive ফাংশনের একটি উদাহরণ দেওয়া হল যা একটি সংখ্যার ফ্যাক্টরিয়াল গণনা করে।

# Recursive function

def factorial(n):
    if(n<=1):
        return 1
    else:
        return n*factorial(n-1) # here factorial(n) function call itself
        
print(factorial(5))

# OUTPUT
#   120
Python

Also Read :- What is Module in Python | Learn in Easy Bengali 2024

2 thoughts on “Function in Python | Easy Bengali 2024”

  1. What an insightful article! Your ability to break down complex topics into easily understandable points is truly commendable. I appreciate the thorough research and the engaging writing style that keeps readers hooked from start to finish.

    Reply

Leave a Comment