ভ্যারিয়েবল কী? (What are Variables?)
ভ্যারিয়েবল হলো কম্পিউটার মেমোরিতে ডেটা সংরক্ষণের একটি নামযুক্ত জায়গা। Python-এ ভ্যারিয়েবল তৈরি করতে আলাদা কোনো keyword (যেমন int, var) লাগে না — সরাসরি একটি নাম দিয়ে মান assign করলেই হয়।
# ভ্যারিয়েবল তৈরি name = "রহিম" age = 25 height = 5.8 is_student = True print(name) # Output: রহিম print(age) # Output: 25
Python একটি dynamically typed ভাষা — অর্থাৎ আপনি ভ্যারিয়েবল ঘোষণার সময় টাইপ উল্লেখ করেন না। Python নিজেই মানের উপর ভিত্তি করে টাইপ নির্ধারণ করে। একই ভ্যারিয়েবলে পরে ভিন্ন টাইপের মান রাখা যায়:
x = 10 # x এখন int print(type(x)) # <class 'int'> x = "hello" # x এখন str print(type(x)) # <class 'str'>
Multiple Assignment
Python-এ এক লাইনে একাধিক ভ্যারিয়েবলে মান দেওয়া যায়:
# একাধিক ভ্যারিয়েবলে আলাদা মান a, b, c = 10, 20, 30 # একই মান সবগুলোতে x = y = z = 0
ভ্যারিয়েবল নামকরণের নিয়ম (Naming Rules)
Python-এ ভ্যারিয়েবলের নাম দেওয়ার কিছু কঠোর নিয়ম আছে। এগুলো না মানলে SyntaxError হবে:
| নিয়ম | সঠিক উদাহরণ ✅ | ভুল উদাহরণ ❌ |
|---|---|---|
| অক্ষর বা underscore দিয়ে শুরু | name, _count | 1name, @value |
| সংখ্যা দিয়ে শুরু করা যাবে না | item2, x1 | 2item, 99x |
| শুধু অক্ষর, সংখ্যা ও underscore | total_price | total-price, total price |
| Case-sensitive | Name ≠ name ≠ NAME | — |
| Reserved word ব্যবহার করা যাবে না | my_class | class, for, if |
নামকরণ Convention
Python-এ snake_case convention ব্যবহার করা হয় — অর্থাৎ শব্দগুলো underscore দিয়ে যুক্ত করা হয়:
# ভালো নাম (snake_case) ✅ student_name = "করিম" total_price = 150.50 is_active = True # খারাপ নাম ❌ (Python-এ camelCase ব্যবহার করবেন না) studentName = "করিম" # কাজ করবে, কিন্তু Pythonic নয় TOTALPRICE = 150.50 # CONSTANT না হলে এভাবে লিখবেন না
Python Reserved Keywords
নিচের শব্দগুলো ভ্যারিয়েবলের নাম হিসেবে ব্যবহার করা নিষিদ্ধ:
False True None and as assert async await break class continue def del elif else except finally for from global if import in is lambda not or pass raise return try while with yield
- Python হলো dynamically typed — ভ্যারিয়েবল তৈরিতে টাইপ ঘোষণা লাগে না
- নামকরণে snake_case ব্যবহার করুন (যেমন
user_name) - Reserved keywords ভ্যারিয়েবল নাম হিসেবে ব্যবহার করলে
SyntaxErrorহবে =হলো assignment operator — "সমান" নয়, বরং "মান রাখো" অর্থে
সংখ্যা টাইপ (Numeric Types)
Python-এ তিন ধরনের সংখ্যা টাইপ আছে:
| টাইপ | বিবরণ | উদাহরণ | মেমোরি |
|---|---|---|---|
int | পূর্ণ সংখ্যা (দশমিক ছাড়া) | 10, -5, 0 | Arbitrary precision |
float | দশমিক সংখ্যা | 3.14, -0.5, 2.0 | 64-bit (double) |
complex | জটিল সংখ্যা (বাস্তব + কাল্পনিক) | 3+4j, 2-1j | 128-bit |
# int — পূর্ণ সংখ্যা age = 25 negative = -100 big_number = 1_000_000 # readability-র জন্য underscore ব্যবহার # float — দশমিক সংখ্যা pi = 3.14159 temperature = -40.5 scientific = 2.5e4 # 2.5 × 10⁴ = 25000.0 # complex — জটিল সংখ্যা z = 3 + 4j print(z.real) # 3.0 print(z.imag) # 4.0
int ও float-এর পার্থক্য
Python-এ int-এর কোনো সীমা নেই — যত বড় সংখ্যা দরকার রাখতে পারবেন। কিন্তু float-এ precision সীমিত:
# int — কোনো সীমা নেই huge = 10 ** 100 # ১ এর পরে ১০০টি শূন্য — কোনো সমস্যা নেই! # float — precision সীমিত print(0.1 + 0.2) # Output: 0.30000000000000004 (সঠিক 0.3 নয়!) # int ↔ float রূপান্তর print(int(3.7)) # Output: 3 (দশমিক কেটে যায়) print(float(5)) # Output: 5.0
স্ট্রিং (Strings)
String হলো অক্ষরের (character) একটি ক্রম। Python-এ string তৈরি করতে single quote ('...') বা double quote ("...") ব্যবহার করা যায়:
# String তৈরির বিভিন্ন উপায় name = 'রহিম' greeting = "Hello, World!" mixed = "It's a beautiful day" # single quote-সহ string quote = 'He said "Python is great"' # double quote-সহ string # Multiline string — triple quotes address = """বাড়ি নং ১২ রোড নং ৫ ঢাকা-১২০৫""" print(address)
Escape Characters
| Escape Sequence | অর্থ | উদাহরণ | Output |
|---|---|---|---|
\n | New line (নতুন লাইন) | "Hello\nWorld" | Hello World |
\t | Tab space | "Name:\tRahim" | Name: Rahim |
\\ | Backslash | "C:\\Users" | C:\Users |
\' | Single quote | 'It\'s ok' | It's ok |
\" | Double quote | "Say \"Hi\"" | Say "Hi" |
String Concatenation ও Repetition
# Concatenation (+)
first = "Hello"
second = "World"
result = first + " " + second
print(result) # Output: Hello World
# Repetition (*)
line = "-" * 30
print(line) # Output: ------------------------------
# f-string (Python 3.6+) — সবচেয়ে সুবিধাজনক
name = "করিম"
age = 22
print(f"আমার নাম {name}, বয়স {age} বছর")
বুলিয়ান ও None (Boolean & None)
bool টাইপে মাত্র দুটি মান আছে: True এবং False। এগুলো condition checking এবং logical operation-এ ব্যবহৃত হয়।
# Boolean values
is_active = True
is_deleted = False
# Comparison থেকে bool পাওয়া
print(10 > 5) # True
print(3 == 7) # False
print("a" != "b") # True
Truthiness — কোন মান True, কোনটা False?
Python-এ প্রতিটি মানকে bool() দিয়ে True বা False-এ রূপান্তর করা যায়:
| Falsy মান (False হয়) | Truthy মান (True হয়) |
|---|---|
False | True |
0, 0.0 | যেকোনো non-zero সংখ্যা (1, -5, 3.14) |
"" (খালি string) | যেকোনো non-empty string ("hello") |
[], (), {} (খালি collection) | non-empty collection ([1,2]) |
None | অন্য সবকিছু |
None কী?
None হলো Python-এর "কিছুই না" মান। এটি একটি বিশেষ টাইপ (NoneType)।
result = None
print(result) # Output: None
print(type(result)) # <class 'NoneType'>
# None চেক করতে == নয়, is ব্যবহার করুন
if result is None:
print("কোনো মান নেই")
Python-এর ৫টি মৌলিক ডেটা টাইপ: Float, Int, String, Bool, None = FISBN (ফিশবন — মাছের কাঁটা মনে করুন!)
টাইপ চেকিং ও কনভার্শন (Type Checking)
Python-এ ভ্যারিয়েবলের টাইপ জানতে এবং পরীক্ষা করতে তিনটি গুরুত্বপূর্ণ built-in function আছে:
| Function | কাজ | উদাহরণ | Output |
|---|---|---|---|
type() | ভ্যারিয়েবলের টাইপ দেখায় | type(42) | <class 'int'> |
isinstance() | নির্দিষ্ট টাইপ কিনা পরীক্ষা করে | isinstance(42, int) | True |
id() | মেমোরি address দেখায় | id(42) | 140234866... |
# type() — টাইপ জানা
print(type(42)) # <class 'int'>
print(type(3.14)) # <class 'float'>
print(type("hello")) # <class 'str'>
print(type(True)) # <class 'bool'>
# isinstance() — টাইপ পরীক্ষা (True/False)
x = 100
print(isinstance(x, int)) # True
print(isinstance(x, float)) # False
print(isinstance(x, (int, float))) # True (একাধিক টাইপ চেক)
# id() — মেমোরি address
a = 10
b = 10
print(id(a) == id(b)) # True (Python ছোট int cache করে)
Type Conversion (টাইপ রূপান্তর)
# str → int
num = int("42") # 42
# str → float
price = float("19.99") # 19.99
# int → str
text = str(100) # "100"
# float → int (দশমিক কেটে যায়)
whole = int(9.8) # 9
# bool রূপান্তর
print(bool(0)) # False
print(bool(1)) # True
print(bool("")) # False
print(bool("hello")) # True
type(x) == int— শুধু সেই exact টাইপ চেক করেisinstance(x, int)— subclass-ও ধরে (যেমনboolহলোint-এর subclass)- বাস্তবে
isinstance()বেশি ব্যবহৃত কারণ এটি inheritance-friendly