HomeCoursesPython
Chapter 2 of 14

ভ্যারিয়েবল ও ডেটা টাইপ

Variables, naming rules, int, float, string, bool & type checking

ভ্যারিয়েবল কী? (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, _count1name, @value
সংখ্যা দিয়ে শুরু করা যাবে নাitem2, x12item, 99x
শুধু অক্ষর, সংখ্যা ও underscoretotal_pricetotal-price, total price
Case-sensitiveNamenameNAME
Reserved word ব্যবহার করা যাবে নাmy_classclass, 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, 0Arbitrary precision
floatদশমিক সংখ্যা3.14, -0.5, 2.064-bit (double)
complexজটিল সংখ্যা (বাস্তব + কাল্পনিক)3+4j, 2-1j128-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
\nNew line (নতুন লাইন)"Hello\nWorld"Hello
World
\tTab 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 হয়)
FalseTrue
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("কোনো মান নেই")
💡 মনে রাখার কৌশল — "FISBN"

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
🧠 Quick Check
এই অধ্যায়ের উপর ৫টি প্রশ্নের উত্তর দিন
Q1. Python-এ ভ্যারিয়েবল নামকরণে কোন convention ব্যবহার করা উচিত?
✅ সঠিক উত্তর: গ) snake_case। Python-এ PEP 8 অনুযায়ী ভ্যারিয়েবল ও ফাংশনের নাম snake_case-এ লেখা হয় (যেমন user_name, total_price)। camelCase Java/JavaScript-এ ব্যবহৃত হয়।
Q2. type(3.14) এর output কী হবে?
✅ সঠিক উত্তর: খ) <class 'float'>3.14 একটি দশমিক সংখ্যা তাই এর টাইপ float। Python-এ double নামে কোনো টাইপ নেই — সব দশমিক সংখ্যা float
Q3. নিচের কোনটি Python-এ Falsy মান?
✅ সঠিক উত্তর: গ) []। খালি list [] হলো Falsy। "False" একটি non-empty string তাই Truthy। [0] একটি non-empty list তাই Truthy। 1 একটি non-zero সংখ্যা তাই Truthy।
Q4. int("19.5") চালালে কী হবে?
✅ সঠিক উত্তর: ঘ) ValueError হবেint() function সরাসরি দশমিকযুক্ত string কে int-এ রূপান্তর করতে পারে না। আগে float() দিয়ে রূপান্তর করতে হবে: int(float("19.5")) = 19
Q5. নিচের কোনটি সঠিক ভ্যারিয়েবল নাম?
✅ সঠিক উত্তর: গ) _total_price। Underscore দিয়ে শুরু করা যায়। 2nd_name সংখ্যা দিয়ে শুরু — ভুল। class reserved keyword। total-price-এ hyphen আছে — শুধু underscore অনুমোদিত।
← Previous: পাইথন পরিচিতি Next: অপারেটর ও এক্সপ্রেশন →