DEV Community

Cover image for পাইথন ফাংশন এবং মডুলার প্রোগ্রামিং
Shafi Rayhan
Shafi Rayhan

Posted on

1

পাইথন ফাংশন এবং মডুলার প্রোগ্রামিং

ভূমিকা

পাইথন শেখার জার্নিতে আরেকটা মজার ধাপে পৌঁছে গেছি! আজ আমরা ফাংশন (Functions) নিয়ে কথা বলব। ফাংশন হলো কোডের একটা ছোট অংশ, যেটা বারবার ব্যবহার করা যায়। এই পোস্টে আপনি শিখবেন:

  • ফাংশন কীভাবে তৈরি এবং ব্যবহার করতে হয়।
  • প্যারামিটার, আর্গুমেন্ট এবং রিটার্ন ভ্যালু।
  • মডুলার প্রোগ্রামিং কেন জরুরি।
  • পাইথনের বিল্ট-ইন ফাংশন আর import ব্যবহার।
  • একটা ক্যালকুলেটর প্রজেক্ট।

ফাংশন শিখলে আপনার কোড সহজ, পরিচ্ছন্ন আর শক্তিশালী হবে। চলুন শুরু করি!


ফাংশন কী এবং কীভাবে তৈরি করবেন?

ফাংশন হলো একটা কাজের জন্য তৈরি ছোট কোড ব্লক। ধরুন, আপনি বারবার “হ্যালো” বলতে চান। প্রতিবার print("হ্যালো") না লিখে একটা ফাংশন বানিয়ে ফেলতে পারেন।

ফাংশন তৈরি ও ব্যবহার

একটা ফাংশন তৈরি করতে def কীওয়ার্ড ব্যবহার হয়। উদাহরণ:

def say_hello():
    print("হ্যালো, কেমন আছেন?")
Enter fullscreen mode Exit fullscreen mode
  • def: ফাংশন শুরু করার চিহ্ন।
  • say_hello: ফাংশনের নাম (আপনি যা চান দিতে পারেন)।
  • (): এখানে প্যারামিটার যায় (এখন খালি রাখলাম)।
  • :: ফাংশনের ভেতরের কোড শুরু।

কীভাবে ব্যবহার করবেন? ফাংশনের নাম লিখে () দিয়ে কল করুন:

say_hello()  # আউটপুট: হ্যালো, কেমন আছেন?
Enter fullscreen mode Exit fullscreen mode

প্যারামিটার, আর্গুমেন্ট এবং রিটার্ন ভ্যালু

প্যারামিটার ও আর্গুমেন্ট

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

def greet(name):
    print("হ্যালো, " + name + "!")

greet("রাহিম")  # আউটপুট: হ্যালো, রাহিম!
Enter fullscreen mode Exit fullscreen mode
  • name: প্যারামিটার।
  • "রাহিম": আর্গুমেন্ট।

একাধিক প্যারামিটারও দেওয়া যায়:

def add_numbers(a, b):
    print(a + b)

add_numbers(5, 3)  # আউটপুট: 8
Enter fullscreen mode Exit fullscreen mode

রিটার্ন ভ্যালু

return দিয়ে ফাংশন থেকে কিছু ফেরত দেওয়া যায়। উদাহরণ:

def multiply(a, b):
    return a * b

result = multiply(4, 5)
print(result)  # আউটপুট: 20
Enter fullscreen mode Exit fullscreen mode
  • return a * b: ফাংশন থেকে গুণফল ফেরত দেয়।
  • result: ফেরত আসা মান সেভ করে।

কেন দরকার? ফাংশনের ফলাফল পরে ব্যবহার করতে।


মডুলার প্রোগ্রামিং কেন জরুরি?

মডুলার প্রোগ্রামিং মানে কোডকে ছোট ছোট অংশে ভাগ করা। এর সুবিধা:

  • বোঝা সহজ: বড় কোডের বদলে ছোট ফাংশন পড়া সহজ।
  • পুন-ব্যবহার: একই ফাংশন বারবার কল করা যায়।
  • সমস্যা খুঁজতে সুবিধা: ভুল হলে শুধু একটা ফাংশন ঠিক করলেই হয়।

ধরুন, আপনি ১০০ লাইনের একটা প্রোগ্রাম লিখলেন। ফাংশন না থাকলে সব একসাথে থাকবে—বোঝা আর ঠিক করা কঠিন। ফাংশন দিয়ে ভাগ করলে জীবন সহজ!


বিল্ট-ইন ফাংশন এবং import

বিল্ট-ইন ফাংশন

পাইথনে অনেক ফাংশন আগে থেকে আছে। যেমন:

  • print(): কিছু দেখায়।
  • len(): লিস্ট বা স্ট্রিং-এর দৈর্ঘ্য দেয়।
  word = "পাইথন"
  print(len(word))  # আউটপুট: ৬
Enter fullscreen mode Exit fullscreen mode

import স্টেটমেন্ট

অতিরিক্ত ফাংশন পেতে মডিউল ইমপোর্ট করতে হয়। উদাহরণ:

import math
print(math.sqrt(16))  # আউটপুট: 4.0
Enter fullscreen mode Exit fullscreen mode
  • math: গণিতের মডিউল।
  • sqrt(): বর্গমূল বের করে।

টিপ: শুধু একটা ফাংশন ইমপোর্ট করতে চাইলে:

from math import sqrt
print(sqrt(25))  # আউটপুট: 5.0
Enter fullscreen mode Exit fullscreen mode

প্রজেক্ট: ক্যালকুলেটর প্রোগ্রাম

চলুন একটা ক্যালকুলেটর বানাই। এটা যোগ, বিয়োগ, গুণ এবং ভাগ করতে পারবে।

ধাপগুলো:

  1. নতুন ফাইল বানান, নাম দিন calculator.py
  2. এই কোড লিখুন:
   # ফাংশন তৈরি
   def add(a, b):
       return a + b

   def subtract(a, b):
       return a - b

   def multiply(a, b):
       return a * b

   def divide(a, b):
       if b != 0:
           return a / b
       else:
           return "ভাগ করা যাবে না!"

   # ইনপুট নেওয়া
   print("ক্যালকুলেটর")
   num1 = float(input("প্রথম সংখ্যা লিখুন: "))
   num2 = float(input("দ্বিতীয় সংখ্যা লিখুন: "))
   operation = input("কী করতে চান? (+, -, *, /): ")

   # ফাংশন কল করা
   if operation == "+":
       result = add(num1, num2)
   elif operation == "-":
       result = subtract(num1, num2)
   elif operation == "*":
       result = multiply(num1, num2)
   elif operation == "/":
       result = divide(num1, num2)
   else:
       result = "ভুল অপারেশন!"

   print("ফলাফল:", result)
Enter fullscreen mode Exit fullscreen mode
  1. টার্মিনালে চালান:
   python calculator.py
Enter fullscreen mode Exit fullscreen mode
  1. আউটপুট দেখুন:
   সাধারণ ক্যালকুলেটর
   প্রথম সংখ্যা লিখুন: 10
   দ্বিতীয় সংখ্যা লিখুন: 5
   কী করতে চান? (+, -, *, /): +
   ফলাফল: 15.0
Enter fullscreen mode Exit fullscreen mode

কোড ব্যাখ্যা:

  • add(), subtract(), ইত্যাদি: প্রতিটা ফাংশন একটা গণনা করে।
  • divide()-এ if: শূন্য দিয়ে ভাগ এড়ানোর জন্য।
  • float(): দশমিক সংখ্যা নেওয়ার জন্য।
  • if-elif: অপারেশনের ভিত্তিতে সঠিক ফাংশন কল করে।

এই প্রজেক্টে ফাংশনের শক্তি বোঝা যায়।


হোমওয়ার্ক: প্যালিনড্রোম চেকার

আপনার কাজ হলো একটা ফাংশন লেখা যেটা চেক করবে একটা সংখ্যা প্যালিনড্রোম কি না। প্যালিনড্রোম মানে উল্টো করে পড়লেও একই (যেমন ১২১, ৩৩৩)।

ধাপগুলো:

  1. ফাইল বানান, নাম দিন palindrome.py
  2. এই কোড লিখুন:
   def is_palindrome(number):
       # সংখ্যাকে স্ট্রিং-এ রূপান্তর
       num_str = str(number)
       # উল্টো করে তুলনা
       if num_str == num_str[::-1]:
           return True
       else:
           return False

   # ইনপুট নেওয়া
   num = int(input("একটা সংখ্যা লিখুন: "))
   if is_palindrome(num):
       print(num, "একটা প্যালিনড্রোম!")
   else:
       print(num, "প্যালিনড্রোম নয়।")
Enter fullscreen mode Exit fullscreen mode
  1. চালান:
   python palindrome.py
Enter fullscreen mode Exit fullscreen mode
  1. উদাহরণ:
    • ইনপুট: 121
    • আউটপুট: 121 একটা প্যালিনড্রোম!

কোড ব্যাখ্যা:

  • str(number): সংখ্যাকে টেক্সটে বদলায়।
  • num_str[::-1]: টেক্সটকে উল্টো করে।
  • if num_str == num_str[::-1]: একই হলে True ফেরত দেয়।
  • is_palindrome(): ফাংশন চেক করে ফলাফল দেয়।

উপসংহার

আজ আমরা শিখলাম:

  • ফাংশন তৈরি এবং কল করা।
  • প্যারামিটার, আর্গুমেন্ট আর রিটার্ন ভ্যালু।
  • মডুলার প্রোগ্রামিংয়ের গুরুত্ব।
  • বিল্ট-ইন ফাংশন আর import
  • একটা ক্যালকুলেটর বানানো।

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

প্রশ্ন:

  1. ফাংশন বোঝা কি আপনার জন্য সহজ লেগেছে?
  2. ক্যালকুলেটর প্রোগ্রামে কি কোনো নতুন ফিচার যোগ করতে চান?
  3. মডুলার প্রোগ্রামিং কি আপনার কোড লেখার স্টাইল বদলে দেবে?

Top comments (0)