HomeCoursesPython
Chapter 13 of 14

মডিউল ও লাইব্রেরি

import, pip, os, math, datetime & third-party libraries

Module কী?

Python-এ Module হলো একটি .py ফাইল যেখানে functions, classes ও variables থাকে। Module ব্যবহার করে code-কে ছোট ছোট ফাইলে ভাগ করা যায় এবং পুনরায় ব্যবহার করা যায়। Python-এ হাজার হাজার built-in ও third-party module আছে।

import করার উপায়

Syntaxকাজব্যবহার
import mathপুরো module importmath.sqrt(16)
from math import sqrtনির্দিষ্ট function importsqrt(16)
from math import *সব কিছু importsqrt(16) (⚠️ avoid!)
import math as mAlias দিয়ে importm.sqrt(16)
from math import sqrt as sFunction-এ aliass(16)
# পুরো module import
import math
print(math.pi)          # 3.141592653589793
print(math.sqrt(144))   # 12.0

# নির্দিষ্ট function import
from math import sqrt, pow
print(sqrt(25))         # 5.0
print(pow(2, 10))       # 1024.0

# Alias দিয়ে import
import datetime as dt
today = dt.date.today()
print(today)            # 2026-03-18

# from...import with alias
from collections import Counter as C
words = ["python", "java", "python", "python", "java"]
print(C(words))         # Counter({'python': 3, 'java': 2})
🔑 import Best Practices
  • from module import * ব্যবহার করবেন না — naming conflict হতে পারে
  • import সবসময় ফাইলের শুরুতে রাখুন
  • ক্রম: standard library → third-party → local modules
  • বহুল ব্যবহৃত alias: numpy as np, pandas as pd, matplotlib.pyplot as plt

Built-in Modules

Python-এর সাথে অনেক দরকারি module আগে থেকেই আসে — এগুলো Standard Library-র অংশ। আলাদা করে install করতে হয় না:

math Module

import math

# মৌলিক গণিত
print(math.sqrt(144))     # 12.0 — বর্গমূল
print(math.pow(2, 8))     # 256.0 — ঘাত
print(math.factorial(5))  # 120 — 5!
print(math.ceil(4.2))     # 5 — উপরে পূর্ণসংখ্যা
print(math.floor(4.9))    # 4 — নিচে পূর্ণসংখ্যা
print(math.pi)            # 3.141592653589793
print(math.e)             # 2.718281828459045

# ত্রিকোণমিতি
print(math.sin(math.radians(90)))   # 1.0
print(math.log(100, 10))           # 2.0 — log base 10

random Module

import random

# Random সংখ্যা
print(random.random())           # 0.0 থেকে 1.0 এর মধ্যে float
print(random.randint(1, 100))    # 1 থেকে 100 এর মধ্যে integer
print(random.uniform(1.5, 9.5))  # 1.5 থেকে 9.5 এর মধ্যে float

# Random পছন্দ
colors = ["লাল", "নীল", "সবুজ", "হলুদ"]
print(random.choice(colors))      # একটি random item
print(random.sample(colors, 2))   # 2টি unique random items

# List shuffle
numbers = [1, 2, 3, 4, 5]
random.shuffle(numbers)
print(numbers)                    # [3, 1, 5, 2, 4] (random order)
Moduleকাজজনপ্রিয় Functions
mathগণিত operationssqrt(), ceil(), floor(), pi
randomRandom সংখ্যা তৈরিrandint(), choice(), shuffle()
datetimeতারিখ ও সময়date.today(), now(), timedelta()
osOperating systemlistdir(), path.join(), getcwd()
jsonJSON ডেটাdumps(), loads(), load()
reRegular expressionssearch(), findall(), sub()
collectionsবিশেষ data structuresCounter(), defaultdict(), deque()

pip ও Package Management

pip হলো Python-এর package manager — এটি দিয়ে third-party library install, update ও remove করা যায়। pip packages PyPI (Python Package Index) থেকে আসে।

# Terminal/Command Prompt-এ চালান:

# Package install
pip install requests
pip install pandas numpy matplotlib

# নির্দিষ্ট version install
pip install requests==2.28.0
pip install "requests>=2.25,<3.0"

# Package update
pip install --upgrade requests

# Package remove
pip uninstall requests

# Installed packages দেখা
pip list
pip show requests     # একটি package-এর details

# requirements.txt তৈরি ও ব্যবহার
pip freeze > requirements.txt    # সব packages save
pip install -r requirements.txt  # file থেকে install
💡 pip commands মনে রাখার কৌশল

"ILUF" = Install → List → Upgrade → Freeze
pip install = নতুন package আনো, pip list = কী কী আছে দেখো, pip install --upgrade = update করো, pip freeze = সব save করো।
মনে রাখুন: requirements.txt ফাইল সবসময় project-এ রাখুন — অন্যরা এক command-এ সব install করতে পারবে!

os Module

os module দিয়ে operating system-এর সাথে interaction করা যায় — ফাইল ও directory operations, path management, environment variables ইত্যাদি:

import os

# বর্তমান directory
print(os.getcwd())             # /home/user/projects

# Directory-র ফাইল তালিকা
files = os.listdir(".")        # current directory
print(files)                   # ['main.py', 'data', 'README.md']

# Directory তৈরি
os.mkdir("new_folder")         # একটি folder তৈরি
os.makedirs("a/b/c")           # nested folders তৈরি

# ফাইল/folder আছে কিনা পরীক্ষা
print(os.path.exists("data.txt"))    # True/False
print(os.path.isfile("data.txt"))    # ফাইল কিনা?
print(os.path.isdir("my_folder"))    # folder কিনা?

# Path join — OS অনুযায়ী সঠিক separator ব্যবহার করে
path = os.path.join("data", "files", "report.csv")
print(path)   # data/files/report.csv (Linux/Mac)
              # data\files\report.csv (Windows)

# ফাইলের তথ্য
print(os.path.getsize("data.txt"))       # bytes-এ size
print(os.path.splitext("photo.jpg"))     # ('photo', '.jpg')
print(os.path.basename("/home/data.txt"))# 'data.txt'
print(os.path.dirname("/home/data.txt")) # '/home'
Functionকাজউদাহরণ
os.getcwd()বর্তমান directory'/home/user'
os.listdir(path)ফাইল তালিকা['a.py', 'b.txt']
os.mkdir(name)একটি folder তৈরিfolder তৈরি হয়
os.makedirs(path)Nested folders তৈরিa/b/c তৈরি হয়
os.remove(file)ফাইল deleteফাইল মুছে যায়
os.path.join()Path যোগ করা'data/file.csv'
os.path.exists()আছে কিনাTrue / False

datetime Module

datetime module দিয়ে তারিখ, সময়, সময়ের পার্থক্য ও formatting করা যায়:

from datetime import date, time, datetime, timedelta

# আজকের তারিখ
today = date.today()
print(today)              # 2026-03-18
print(today.year)         # 2026
print(today.month)        # 3
print(today.day)          # 18
print(today.weekday())    # 2 (0=সোম, 6=রবি)

# বর্তমান সময়
now = datetime.now()
print(now)                # 2026-03-18 14:30:25.123456

# নির্দিষ্ট তারিখ তৈরি
birthday = date(2000, 5, 15)
independence = datetime(1971, 3, 26, 0, 0, 0)

# সময়ের পার্থক্য (timedelta)
future = today + timedelta(days=30)
print(future)             # ৩০ দিন পরের তারিখ

age_days = (today - birthday).days
print(f"বয়স দিনে: {age_days}")

datetime Formatting

from datetime import datetime

now = datetime.now()

# datetime → string (strftime)
print(now.strftime("%d/%m/%Y"))         # 18/03/2026
print(now.strftime("%B %d, %Y"))        # March 18, 2026
print(now.strftime("%I:%M %p"))         # 02:30 PM
print(now.strftime("%Y-%m-%d %H:%M"))   # 2026-03-18 14:30

# string → datetime (strptime)
date_str = "25-12-2026"
parsed = datetime.strptime(date_str, "%d-%m-%Y")
print(parsed)    # 2026-12-25 00:00:00
Format Codeঅর্থউদাহরণ
%Yপূর্ণ বছর2026
%mমাস (01–12)03
%dদিন (01–31)18
%Hঘণ্টা 24-hour (00–23)14
%Iঘণ্টা 12-hour (01–12)02
%Mমিনিট (00–59)30
%Sসেকেন্ড (00–59)25
%pAM/PMPM
%Bমাসের পূর্ণ নামMarch
%Aবারের পূর্ণ নামWednesday
🔑 strftime vs strptime মনে রাখুন
  • strftime = string from time → datetime থেকে string তৈরি করে
  • strptime = string parse time → string থেকে datetime তৈরি করে
  • "f = format" (output), "p = parse" (input) — এভাবে মনে রাখুন!

Popular Third-party Libraries

Python-এর সবচেয়ে বড় শক্তি হলো এর বিশাল third-party library ecosystem। এখানে কিছু জনপ্রিয় library-র সংক্ষিপ্ত পরিচয়:

# requests — HTTP calls করা (API, web scraping)
import requests
response = requests.get("https://api.github.com")
print(response.status_code)  # 200
print(response.json())       # JSON data as dict

# pandas — Data analysis ও manipulation
import pandas as pd
df = pd.DataFrame({
    "নাম": ["রহিম", "করিম", "জামাল"],
    "বয়স": [25, 30, 22],
    "শহর": ["ঢাকা", "চট্টগ্রাম", "রাজশাহী"]
})
print(df)
print(df["বয়স"].mean())   # গড় বয়স: 25.67

# numpy — Numerical computing
import numpy as np
arr = np.array([1, 2, 3, 4, 5])
print(arr * 2)         # [2, 4, 6, 8, 10]
print(np.mean(arr))    # 3.0

# flask — Web development (micro-framework)
from flask import Flask
app = Flask(__name__)

@app.route("/")
def home():
    return "স্বাগতম!"
Libraryক্যাটাগরিকাজInstall
requestsHTTP/APIWeb API call, data fetchingpip install requests
pandasData AnalysisCSV/Excel পড়া, data manipulationpip install pandas
numpyNumericalArray operations, গণিতpip install numpy
matplotlibVisualizationChart ও graph তৈরিpip install matplotlib
flaskWeb FrameworkWeb application তৈরিpip install flask
djangoWeb FrameworkFull-stack web devpip install django
beautifulsoup4Web ScrapingHTML parse করাpip install beautifulsoup4
pillowImageছবি edit ও processpip install pillow
💡 Python Library Ecosystem মনে রাখুন

"Python-এ সব আছে!"
Data Analysis → pandas, numpy | Visualization → matplotlib, seaborn | Web → flask, django | API → requests | ML → scikit-learn, tensorflow
নিয়ম: নতুন কিছু করতে চাইলে প্রথমে PyPI-তে search করুন — সম্ভবত কেউ আগেই library তৈরি করে রেখেছে!

🧠 Quick Check
এই অধ্যায়ের মূল ধারণাগুলো যাচাই করুন — ৫টি প্রশ্নের উত্তর দিন:
Q1. from math import * ব্যবহার কেন এড়িয়ে চলা উচিত?
✅ সঠিক উত্তর: খ) Naming conflict হতে পারে এবং কোন function কোথা থেকে এসেছে বোঝা যায় নাimport * করলে module-এর সব name current namespace-এ আসে, যা অন্যান্য variable বা function-এর নামের সাথে conflict করতে পারে।
Q2. pip freeze > requirements.txt command কী করে?
✅ সঠিক উত্তর: গ) installed packages ও তাদের version requirements.txt ফাইলে save করেpip freeze বর্তমানে installed সব packages ও তাদের exact version দেখায়। > দিয়ে output ফাইলে save করা হয়।
Q3. os.path.join("data", "files", "report.csv") কেন ব্যবহার করা উচিত?
✅ সঠিক উত্তর: খ) এটি OS অনুযায়ী সঠিক path separator (/ বা \) ব্যবহার করে। Windows-এ backslash (\) এবং Linux/Mac-এ forward slash (/) ব্যবহার হয়। os.path.join() স্বয়ংক্রিয়ভাবে সঠিক separator ব্যবহার করে cross-platform code লিখতে সাহায্য করে।
Q4. strftimestrptime-এর মধ্যে পার্থক্য কী?
✅ সঠিক উত্তর: খ) strftime datetime থেকে string তৈরি করে, strptime string থেকে datetimestrftime-এর "f" মানে format (output), আর strptime-এর "p" মানে parse (input)।
Q5. Python-এ third-party library install করতে কোন tool ব্যবহার করা হয়?
✅ সঠিক উত্তর: গ) pippip হলো Python-এর official package manager যা PyPI (Python Package Index) থেকে third-party library install, update ও remove করে। npm হলো Node.js-এর, apt-get হলো Linux-এর, আর brew হলো macOS-এর package manager।
← Previous: এরর হ্যান্ডলিং Next: অবজেক্ট ওরিয়েন্টেড প্রোগ্রামিং →