🐍 Python সিনট্যাক্স রেফারেন্স গাইড

বাংলা ভাষায় সম্পূর্ণ প্রোগ্রামিং সিনট্যাক্স

📥 ১. ইনপুট ও আউটপুট (Input/Output)

ইনপুট নেওয়া

name = input("আপনার নাম লিখুন: ") # স্ট্রিং হিসেবে ইনপুট নেয় age = int(input("বয়স: ")) # সংখ্যা হিসেবে নিতে টাইপ কাস্টিং price = float(input("মূল্য: ")) # দশমিক সংখ্যা হিসেবে
ব্যাখ্যা: input() সবসময় স্ট্রিং রিটার্ন করে। সংখ্যা হিসেবে ব্যবহার করতে int() বা float() দিয়ে রূপান্তর করতে হবে।

আউটপুট দেখানো

print("হ্যালো বিশ্ব") print("নাম:", name, "বয়স:", age) print(f"আমার নাম {name} এবং বয়স {age}") # f-string (সবচেয়ে সহজ) print("নাম: {} বয়স: {}".format(name, age)) # format() পদ্ধতি print("পাই এর মান %.2f" % 3.14159) # পুরনো % পদ্ধতি
💡 পরামর্শ: Python 3.6+ এ f-string সবচেয়ে দ্রুত ও পড়তে সহজ।

ভিডিও টাইটেল

ভিডিওর বিবরণ এখানে দিতে হবে। এই টেক্সট যত বড় হবে, বক্সের সাইজ তত বাড়বে। ভিডিওর সাথে সম্পর্কিত তথ্য এখানে দেখানো হবে।

📦 ২. ভেরিয়েবল ও ডেটা টাইপ

# ভেরিয়েবল ঘোষণা (টাইপ উল্লেখ করতে হয় না) name = "রাহুল" # স্ট্রিং (str) age = 25 # ইন্টিজার (int) price = 99.99 # ফ্লোট (float) is_valid = True # বুলিয়ান (bool) # কালেকশন টাইপ fruits = ["আপেল", "কমলা", "আম"] # লিস্ট (পরিবর্তনযোগ্য) coordinates = (10, 20) # টিউপল (অপরিবর্তনযোগ্য) unique_nums = {1, 2, 3} # সেট (ইউনিক মান) person = {"name": "রাহুল", "age": 25} # ডিকশনারি
ডেটা টাইপ উদাহরণ বৈশিষ্ট্য
int x = 10 পূর্ণসংখ্যা, সীমা নেই
float x = 10.5 দশমিক সংখ্যা
str x = "হ্যালো" ইউনিকোড স্ট্রিং
bool x = True True বা False
list [1, 2, 3] অর্ডার্ড, পরিবর্তনযোগ্য
tuple (1, 2, 3) অর্ডার্ড, অপরিবর্তনযোগ্য
dict {"a": 1} কী-ভ্যালু পেয়ার
set {1, 2, 3} ইউনিক, অনর্ডার্ড

🔀 ৩. অপারেটর (Operators)

গাণিতিক অপারেটর

অপারেটরনামউদাহরণফলাফল
+যোগ5 + 38
-বিয়োগ5 - 32
*গুণ5 * 315
/ভাগ (ফ্লোট)5 / 22.5
//ভাগ (পূর্ণসংখ্যা)5 // 22
%ভাগশেষ5 % 21
**ঘাত2 ** 38

তুলনামূলক অপারেটর

x == y # সমান কিনা x != y # অসমান কিনা x > y # বড় কিনা x < y # ছোট কিনা x >= y # বড় বা সমান x <= y # ছোট বা সমান

লজিক্যাল অপারেটর

x > 0 and x < 10 # দুটোই সত্য হতে হবে x < 0 or x > 10 # যেকোনো একটি সত্য হলেই চলবে not (x > 0) # উল্টো করে দেয়

অ্যাসাইনমেন্ট অপারেটর

x = 5 # সাধারণ অ্যাসাইনমেন্ট x += 3 # x = x + 3 (যোগ করে অ্যাসাইন) x -= 3 # x = x - 3 (বিয়োগ করে অ্যাসাইন) x *= 3 # x = x * 3 x /= 3 # x = x / 3 x //= 3 # x = x // 3 x %= 3 # x = x % 3 x **= 3 # x = x ** 3

🛤️ ৪. শর্তসাপেক্ষ বিবৃতি (Conditional Statements)

if-elif-else

if age >= 18: print("প্রাপ্তবয়স্ক") elif age == 18: print("ঠিক ১৮") else: print("অপ্রাপ্তবয়স্ক") # সংক্ষিপ্ত if-else (Ternary Operator) status = "প্রাপ্তবয়স্ক" if age >= 18 else "অপ্রাপ্তবয়স্ক"

নেস্টেড শর্ত

if age >= 18: if has_id: print("প্রবেশাধিকার আছে") else: print("আইডি প্রয়োজন") else: print("প্রবেশ নিষেধ")
⚠️ Indentation : Python-এ ইন্ডেন্টেশন (4টি স্পেস বা ট্যাব) বাধ্যতামূলক। ভুল ইন্ডেন্টেশনে এরর হবে।

🔄 ৫. লুপ (Loops)

for লুপ

# range() ব্যবহার করে for i in range(5): # 0 থেকে 4 পর্যন্ত (5 বার) print(i) for i in range(1, 6): # 1 থেকে 5 পর্যন্ত print(i) for i in range(0, 10, 2): # 0 থেকে 8 পর্যন্ত, ২ করে বাড়িয়ে print(i) # আউটপুট: 0, 2, 4, 6, 8 # লিস্টে ইটারেট করা fruits = ["আপেল", "কমলা", "আম"] for fruit in fruits: print(fruit) # enumerate ব্যবহার করে ইনডেক্স ও মান for index, fruit in enumerate(fruits, 1): print(f"{index}. {fruit}")

while লুপ

count = 0 while count < 5: print(count) count += 1 # অবশ্যই আপডেট করতে হবে, নাহলে ইনফিনিটি লুপ # else ব্লক (ঐচ্ছিক, লুপ সফলভাবে শেষ হলে চলে) while count < 3: print(count) count += 1 else: print("লুপ শেষ")

লুপ নিয়ন্ত্রণ

for num in range(10): if num == 5: break # লুপ থেকে বেরিয়ে আসা if num == 2: continue # এই ধাপটি এড়িয়ে পরবর্তীতে যাওয়া print(num) # pass স্টেটমেন্ট (কিছু না করে স্কিপ করা) for i in range(5): if i == 3: pass # পরে কোড লেখা হবে print(i)

⚙️ ৬. ফাংশন (Functions)

সাধারণ ফাংশন

# ফাংশন ডিফাইন করা def greet(name): """এটি একটি ডকস্ট্রিং - ফাংশনের বর্ণনা""" return f"হ্যালো {name}!" # ফাংশন কল করা message = greet("রাহুল") print(message) # হ্যালো রাহুল!

ডিফল্ট প্যারামিটার

def power(base, exponent=2): return base ** exponent print(power(3)) # 9 (3²) print(power(2, 3)) # 8 (2³)

*args ও **kwargs

# অজানা সংখ্যক পজিশনাল আর্গুমেন্ট def total(*numbers): return sum(numbers) print(total(1, 2, 3, 4)) # 10 # অজানা সংখ্যক কীওয়ার্ড আর্গুমেন্ট def info(**kwargs): for key, value in kwargs.items(): print(f"{key}: {value}") info(name="রাহুল", age=25, city="ঢাকা")

ল্যাম্বডা ফাংশন

# এক লাইনের ছোট ফাংশন square = lambda x: x ** 2 print(square(5)) # 25 # map() এর সাথে ব্যবহার numbers = [1, 2, 3, 4] squared = list(map(lambda x: x ** 2, numbers)) # [1, 4, 9, 16]

📋 ৭. লিস্ট কম্প্রিহেনশন (List Comprehension)

# সাধারণ উপায় squares = [] for x in range(5): squares.append(x ** 2) # লিস্ট কম্প্রিহেনশন (সংক্ষিপ্ত) squares = [x ** 2 for x in range(5)] # [0, 1, 4, 9, 16] # শর্তসাপেক্ষ evens = [x for x in range(10) if x % 2 == 0] # [0, 2, 4, 6, 8] # if-else সহ labels = ["জোড়" if x % 2 == 0 else "বিজোড়" for x in range(5)] # ['জোড়', 'বিজোড়', 'জোড়', 'বিজোড়', 'জোড়'] # নেস্টেড লুপ matrix = [[i*j for j in range(1, 4)] for i in range(1, 4)] # [[1, 2, 3], [2, 4, 6], [3, 6, 9]]

📁 ৮. ফাইল হ্যান্ডলিং

ফাইল পড়া

# সম্পূর্ণ ফাইল একবারে পড়া with open("file.txt", "r", encoding="utf-8") as f: content = f.read() # লাইন অনুযায়ী পড়া with open("file.txt", "r", encoding="utf-8") as f: for line in f: print(line.strip()) # লিস্ট হিসেবে পড়া with open("file.txt", "r", encoding="utf-8") as f: lines = f.readlines()

ফাইল লেখা

# নতুন ফাইল লেখা (পুরনো মুছে যাবে) with open("file.txt", "w", encoding="utf-8") as f: f.write("হ্যালো বিশ্ব!\n") f.write("দ্বিতীয় লাইন") # ফাইলের শেষে যোগ করা (Append) with open("file.txt", "a", encoding="utf-8") as f: f.write("\nনতুন লাইন")
মোড বর্ণনা
"r" পড়া (ডিফল্ট), ফাইল না থাকলে এরর
"w" লেখা, ফাইল থাকলে মুছে নতুন করে
"a" যোগ করা, ফাইল না থাকলে তৈরি করে
"x" এক্সক্লুসিভ তৈরি, ফাইল থাকলে এরর
"b" বাইনারি মোড (ছবি, ভিডিও ইত্যাদি)
💡 পরামর্শ: সবসময় with স্টেটমেন্ট ব্যবহার করুন। এটি ফাইল স্বয়ংক্রিয়ভাবে বন্ধ করে দেয়, এমনকি এরর হলেও।

⚠️ ৯. ত্রুটি হ্যান্ডলিং (Error Handling)

try: num = int(input("সংখ্যা দিন: ")) result = 10 / num print(result) except ValueError: print("ভুল! সংখ্যা দিন।") except ZeroDivisionError: print("ভুল! শূন্য দিয়ে ভাগ করা যায় না।") except Exception as e: print(f"অজানা ত্রুটি: {e}") else: print("সফলভাবে সম্পন্ন!") # কোনো এরর না হলে চলে finally: print("এটি সবসময় চলবে") # এরর হোক বা না হোক

নিজের Exceptioন তৈরি

class InsufficientBalanceError(Exception): pass def withdraw(amount): if amount > balance: raise InsufficientBalanceError("অপর্যাপ্ত টাকা") return balance - amount

🏗️ ১০. ক্লাস ও অবজেক্ট (OOP)

বেসিক ক্লাস

class Person: # ক্লাস ভেরিয়েবল (সব অবজেক্টের জন্য একই) species = "Homo sapiens" # কনস্ট্রাক্টর (অবজেক্ট তৈরি হলে কল হয়) def __init__(self, name, age): self.name = name # ইনস্ট্যান্স ভেরিয়েবল self._age = age # প্রোটেক্টেড (সংকেত) # মেথড def introduce(self): return f"আমি {self.name}, বয়স {self._age}" # স্ট্রিং রিপ্রেজেন্টেশন def __str__(self): return self.introduce() # অবজেক্ট তৈরি p1 = Person("রাহুল", 25) print(p1.introduce()) print(p1) # __str__ কল হয়

ইনহেরিটেন্স (উত্তরাধিকার)

class Student(Person): def __init__(self, name, age, student_id): super().__init__(name, age) # প্যারেন্ট ক্লাস কল self.student_id = student_id # মেথড ওভাররাইড def introduce(self): return f"{super().introduce()}, আইডি: {self.student_id}" s1 = Student("সুমন", 20, "S001") print(s1.introduce())

📦 ১১. মডিউল ও প্যাকেজ

# সম্পূর্ণ মডিউল ইমপোর্ট import math print(math.sqrt(16)) # নির্দিষ্ট ফাংশন ইমপোর্ট from math import sqrt, pow print(sqrt(16)) # অ্যালিয়াস দিয়ে import numpy as np import pandas as pd # সব ইমপোর্ট (সুপারিশ নয়) from math import * # নিজের মডিউল import mymodule from mypackage import submodule

🔤 ১২. স্ট্রিং ফরম্যাটিং

name = "রাহুল" age = 25 pi = 3.14159 # f-string (সবচেয়ে ভালো) print(f"নাম: {name}, বয়স: {age}") print(f"পাই: {pi:.2f}") # ২ দশমিক: 3.14 print(f"বড় হাতে: {name.upper()}") # format() পদ্ধতি print("নাম: {}, বয়স: {}".format(name, age)) print("নাম: {n}, বয়স: {a}".format(n=name, a=age)) # পুরনো % পদ্ধতি print("নাম: %s, বয়স: %d" % (name, age))

🛠️ ১৩. ইউটিলিটি সিনট্যাক্স

টার্নারি অপারেটর

status = "পাস" if marks >= 40 else "ফেল"

মাল্টিপল অ্যাসাইনমেন্ট

a, b, c = 1, 2, 3 # সোয়াপিং a, b = b, a # আনপ্যাকিং first, *rest = [1, 2, 3, 4, 5] # first=1, rest=[2,3,4,5]

জেনারেটর এক্সপ্রেশন

# লিস্ট কম্প্রিহেনশন (সব মেমোরিতে রাখে) squares = [x**2 for x in range(1000000)] # জেনারেটর এক্সপ্রেশন (একটা করে দেয়) squares_gen = (x**2 for x in range(1000000)) for num in squares_gen: print(num)

ডিকশনারি কম্প্রিহেনশন

squares_dict = {x: x**2 for x in range(5)} # {0: 0, 1: 1, 2: 4, 3: 9, 4: 16}

সেট কম্প্রিহেনশন

squares_set = {x**2 for x in range(10)} # {0, 1, 4, 9, 16, 25, 36, 49, 64, 81}
📌 মনে রাখুন:

শুভ কোডিং! 🚀

এই গাইডটি Python 3.x এর জন্য প্রযোজ্য

© ২০২৫ | বাংলা Python রেফারেন্স