পাইথন প্রোগ্রামিং এ ফাংশন

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

প্রোগ্রামে আমরা এটা কিভাবে লিখব তা দেখিঃ

সম্পুর্ন সুতো= ফু(ছেড়া সুতো);

অর্থাৎ যাকে ফু দিব তা ব্র্যাকেটে লিখতে হয় তাহলে ফু দেওয়ার ফলে কি হয় তা পাওয়া যায়।

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

টাকা = ফু(কাগজ);

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

পাইথনে একটা ফাংশন নিচের মত করে লেখা হয়ঃ


def function-name(Parameters):
    statements
    return
  • def দিয়ে ফাংশন শুরু করা হয়।
  • ফাংশানের তো একটা নাম থাকতে হবে তাই না? যে নাম দিয়ে ফাংশনটিকে ডাকতে হবে। function-name
    হচ্ছে ফাংশানের নাম।
  • Parameters হচ্ছে ফাংশন দিয়ে কি কি ডেটা পাস করবে। এখানে এক বা একাদিক Parameter পাস করা যেতে পারে। কোন কোন ফাংশানে কোন Parameter নাও থাকতে পারে। এটা নির্ভর করে কি ধরনের ফাংশন লিখা হচ্ছে তার উপর। একের অধিক Parameter থাকলে তাদেরকে কমা দিয়ে লিখতে হয়।
  • কাজ শেষে ফাংশনটি কি রিটার্ন করবে তাই return দিয়ে পাস করা হয়। ফাংশন যদি কোন কিছু রিটার্ন না করে, তাহলে return 0 বা না লিখলেও হবে।

যেমন আমরা hello নামে একটা ফাংশন লিখব, যেটাকে কল করলে Hello World! প্রিন্ট করবে।

def hello():
    print ("Hello world!")

উপরের ফাংশনে কোন প্যারামিটার নেই, এবং ফাংশনটি কোন কিছু রিটার্ণ ও করবে না। শুধু Hello World! প্রিন্ট করবে। ফাংশন লেখার পর তা ব্যবহার করার জন্য কল করতে হয়।

hello()

কল করলে ফাংশনটি এক্সিকিউট হবে। সম্পুর্ণ প্রোগ্রামঃ

def hello():
    print ("Hello world!")
hello()

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

def hello():
 print ("Hello world!")
hello()
hello()
hello()

এবার আমরা add নামে একটা ফাংশন লিখব। যেটা প্যারামিটার হিসেবে দুইটা নাম্বার নিবে এবং রিটার্ন করবে নাম্বার দুটির যোগফলঃ

def add(a,b):
    return (a+b)
print (add(4,7))

এখানে add ফাংশানে আমরা দুইটা সংখ্যা প্যারামিটার হিসেবে দিচ্ছি। ফাংশনটি আমাদের ফেরত দিচ্ছে সংখ্যা দুইটির যোগফল।
যখন আমরা ফাংশনটি কল করেছি, তখন সংখ্যা দুটি পাস করে দিয়েছি, যে সংখ্যা দুইটির যোগ ফল আমরা পেতে চাই, add(4,7) দিয়ে। ফাংশনটি আমাদের ঐ সংখ্যা দুটি নিয়ে তা যোগ করে তা ফেরত দিয়েছে, return (a+b) দিয়ে। পরে তা প্রিন্ট করেছি।
এখন আমরা যতবার ইচ্ছে ততবার add ফাংশনটি কল করতে পারি। যাতে দুইটি সংখ্যা প্যারামিটার হিসেবে দিলে তা যোগ করে আমাদের পাঠিয়ে দিবে। যেন আমরা তা প্রিন্ট করতে পারি।


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

print (add(4,7))
print (add(89,732))
print (add(55,999))

আমরা আরেকটা ফাংশন লিখব। যেটা ব্যবহারকারী কে তার নাম জিজ্ঞেস করবে। এবং তা ফাংশনে পাস করব। ফাংশন পরে ব্যবহার কারীকে হ্যালো জানাবেঃ

def hello(name):
    print ("Hello " + name)

your_name = input("Enter  your Name: ")
hello(your_name)

উপরের প্রোগ্রামে আমরা hello নামে একটা ফাংশন লিখেছি। ব্যবহারকারী থেকে আমরা তার নাম ইনপুট নিয়েছি। এরপর hello ফাংশনে তা পাস করেছি, hello(your_name) দিয়ে। hello ফাংশন আমাদের দেওয়া নামকে হ্যালো জানিয়েছে।

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

def checkNumber(n):
    if n%2 == 0:
        print ("It's Even number")
    else: print ("It's Odd number")    

number = int (input("Enter  a  number to check: "))
checkNumber(number)

এভাবে আমরা আমাদের প্রয়োজন মত যে কোন ফাংশন লিখে ফেলতে পারি।

Leave a Reply