HomeCoursesPython
Chapter 5 of 14

শর্তমূলক স্টেটমেন্ট

if, elif, else — controlling program flow with conditions

if Statement

Python-এ শর্ত পরীক্ষা করতে if statement ব্যবহার করা হয়। যখন কোনো condition True হয়, তখন indented block-এর কোড execute হয়। Python-এ curly braces {} নেই — indentation (সাধারণত 4 spaces) দিয়ে code block নির্ধারণ করা হয়:

# বেসিক if statement
age = 20

if age >= 18:
    print("আপনি প্রাপ্তবয়স্ক")    # condition True হলে execute হবে
    print("আপনি ভোট দিতে পারবেন")  # এটিও if block-এর অংশ

print("প্রোগ্রাম শেষ")  # এটি সবসময় execute হবে (if-এর বাইরে)

Indentation-এর গুরুত্ব

Python-এ indentation হলো syntax-এর অংশ, শুধু style নয়। ভুল indentation দিলে IndentationError হবে:

# সঠিক ✅
if True:
    print("Hello")
    print("World")

# ভুল ❌ — IndentationError!
if True:
print("Hello")      # indentation নেই!

# ভুল ❌ — অসমান indentation
if True:
    print("Hello")
      print("World")  # extra space!
Comparison Operatorঅর্থউদাহরণফলাফল
==সমান5 == 5True
!=সমান নয়5 != 3True
>বড়10 > 5True
<ছোট3 < 7True
>=বড় বা সমান5 >= 5True
<=ছোট বা সমান3 <= 2False

if-else Statement

if-else ব্যবহার করলে দুটি পথের মধ্যে একটি বেছে নেওয়া যায় — condition True হলে if block চলে, False হলে else block চলে:

# if-else: দুই পথের সিদ্ধান্ত
temperature = 38

if temperature > 37:
    print("⚠️ জ্বর আছে!")
    print("ডাক্তার দেখান")
else:
    print("✅ তাপমাত্রা স্বাভাবিক")
    print("চিন্তার কিছু নেই")

Logical Operators দিয়ে একাধিক শর্ত

একাধিক condition মিলিয়ে পরীক্ষা করতে and, or, not ব্যবহার করা হয়:

Operatorঅর্থউদাহরণফলাফল
andদুটোই True হলে TrueTrue and FalseFalse
orযেকোনো একটি True হলে TrueTrue or FalseTrue
notউল্টো করে দেয়not TrueFalse
# and — দুটো শর্তই পূরণ হতে হবে
age = 25
has_id = True

if age >= 18 and has_id:
    print("ভোট দিতে পারবেন ✅")

# or — যেকোনো একটি পূরণ হলেই চলবে
day = "শনিবার"
if day == "শনিবার" or day == "রবিবার":
    print("আজ ছুটির দিন! 🎉")

# not — শর্ত উল্টো করা
is_raining = False
if not is_raining:
    print("বাইরে যেতে পারবেন ☀️")

if-elif-else Statement

দুইয়ের বেশি condition পরীক্ষা করতে elif (else if-এর সংক্ষিপ্ত রূপ) ব্যবহার করা হয়। Python উপর থেকে নিচে পরীক্ষা করে — প্রথম যেটি True পায়, সেটির block execute করে:

# গ্রেডিং সিস্টেম
marks = 78

if marks >= 80:
    grade = "A+"
elif marks >= 70:
    grade = "A"
elif marks >= 60:
    grade = "A-"
elif marks >= 50:
    grade = "B"
elif marks >= 40:
    grade = "C"
elif marks >= 33:
    grade = "D"
else:
    grade = "F (ফেল)"

print(f"নম্বর: {marks}, গ্রেড: {grade}")
# Output: নম্বর: 78, গ্রেড: A
🔑 if-elif-else মূল নিয়ম
  • if — শুধু একটি থাকে, প্রথমে
  • elifশূন্য বা একাধিক থাকতে পারে, মাঝে
  • elseশূন্য বা একটি থাকে, সবশেষে
  • Python উপর থেকে নিচে পরীক্ষা করে — প্রথম True পেলেই থামে
  • else-এ কোনো condition নেই — বাকি সবকিছু catch করে

Nested Conditions

একটি if-এর ভিতরে আরেকটি if থাকলে তাকে Nested Condition বলে। জটিল সিদ্ধান্তের জন্য এটি প্রয়োজন হয়:

# ATM মেশিন সিমুলেশন
has_card = True
pin = 1234
balance = 5000
withdraw = 3000

if has_card:
    entered_pin = 1234
    if entered_pin == pin:
        if withdraw <= balance:
            balance -= withdraw
            print(f"✅ {withdraw} টাকা উত্তোলন সফল!")
            print(f"বাকি ব্যালেন্স: {balance} টাকা")
        else:
            print("❌ পর্যাপ্ত ব্যালেন্স নেই!")
    else:
        print("❌ ভুল PIN!")
else:
    print("❌ কার্ড প্রবেশ করান")

Nested Condition এড়ানোর কৌশল

অতিরিক্ত nesting কোড পড়তে কঠিন করে। and ব্যবহার করে flatten করা যায়:

# Nested (কঠিন পড়তে) ❌
if has_card:
    if entered_pin == pin:
        if withdraw <= balance:
            print("সফল!")

# Flattened (সহজ পড়তে) ✅
if has_card and entered_pin == pin and withdraw <= balance:
    print("সফল!")

Ternary Operator

Python-এ এক লাইনে if-else লেখার সংক্ষিপ্ত পদ্ধতি হলো Ternary Operator বা Conditional Expression:

# সিনট্যাক্স: value_if_true if condition else value_if_false

# সাধারণ if-else (৪ লাইন)
age = 20
if age >= 18:
    status = "প্রাপ্তবয়স্ক"
else:
    status = "অপ্রাপ্তবয়স্ক"

# Ternary — একই কাজ এক লাইনে! ✅
status = "প্রাপ্তবয়স্ক" if age >= 18 else "অপ্রাপ্তবয়স্ক"
print(status)  # প্রাপ্তবয়স্ক
ব্যবহারTernary উদাহরণফলাফল
Min/Max নির্ণয়smaller = a if a < b else bছোটটি পাবে
জোড়/বিজোড় চেক"জোড়" if n % 2 == 0 else "বিজোড়"জোড় বা বিজোড়
Pass/Fail"পাস" if marks >= 33 else "ফেল"পাস বা ফেল
Absolute valuex if x >= 0 else -xধনাত্মক মান
# Nested ternary (ব্যবহার কম করুন — পড়তে কঠিন)
marks = 85
result = "A+" if marks >= 80 else "A" if marks >= 70 else "B" if marks >= 60 else "F"
print(result)  # A+
💡 মনে রাখার কৌশল — "IEN"

Python-এ condition-এর তিনটি মূল অংশ মনে রাখুন: If (যদি), Elif (নাহলে যদি), Not-else-but-else (অন্যথায়)। IEN — "যিন" বলে মনে রাখুন! আর মনে রাখবেন: : (colon) আর indentation ছাড়া Python কাজ করে না!

ব্যবহারিক প্রোগ্রাম

নিচে কিছু বাস্তব প্রোগ্রাম দেওয়া হলো যেখানে conditional statements ব্যবহার করা হয়েছে:

গ্রেড ক্যালকুলেটর

# পরীক্ষার গ্রেড ক্যালকুলেটর
bangla = int(input("বাংলা নম্বর: "))
english = int(input("ইংরেজি নম্বর: "))
math = int(input("গণিত নম্বর: "))

total = bangla + english + math
average = total / 3

print(f"\nমোট: {total}, গড়: {average:.2f}")

if average >= 80:
    print("গ্রেড: A+ (অসাধারণ! 🌟)")
elif average >= 70:
    print("গ্রেড: A (খুব ভালো!)")
elif average >= 60:
    print("গ্রেড: A- (ভালো)")
elif average >= 50:
    print("গ্রেড: B (মোটামুটি)")
elif average >= 33:
    print("গ্রেড: D (পাস)")
else:
    print("গ্রেড: F (ফেল ❌)")

অধিবর্ষ পরীক্ষক (Leap Year Checker)

# অধিবর্ষ চেক করার প্রোগ্রাম
year = int(input("সাল দিন: "))

if year % 400 == 0:
    print(f"{year} একটি অধিবর্ষ ✅")
elif year % 100 == 0:
    print(f"{year} অধিবর্ষ নয় ❌")
elif year % 4 == 0:
    print(f"{year} একটি অধিবর্ষ ✅")
else:
    print(f"{year} অধিবর্ষ নয় ❌")

# এক লাইনে:
is_leap = (year % 4 == 0 and year % 100 != 0) or (year % 400 == 0)
print(f"{year}: {'অধিবর্ষ' if is_leap else 'সাধারণ বছর'}")

সাধারণ লগইন সিস্টেম

# সাধারণ লগইন সিস্টেম
correct_user = "admin"
correct_pass = "python123"
max_attempts = 3

for attempt in range(1, max_attempts + 1):
    username = input(f"চেষ্টা {attempt}/{max_attempts} — ইউজারনেম: ")
    password = input("পাসওয়ার্ড: ")

    if username == correct_user and password == correct_pass:
        print("✅ লগইন সফল! স্বাগতম!")
        break
    elif username != correct_user:
        print("❌ ভুল ইউজারনেম!")
    else:
        print("❌ ভুল পাসওয়ার্ড!")
else:
    print("🔒 অনেক চেষ্টা! অ্যাকাউন্ট লক হয়ে গেছে।")
🧠 Quick Check
এই অধ্যায়ের উপর ৫টি প্রশ্নের উত্তর দিন
Q1. Python-এ code block নির্ধারণ করা হয় কীভাবে?
✅ সঠিক উত্তর: খ) Indentation দিয়ে। Python-এ curly braces নেই — indentation (সাধারণত 4 spaces) দিয়ে code block নির্ধারণ করা হয়। ভুল indentation দিলে IndentationError হয়।
Q2. নিচের কোডের output কী? x = 15; print("A" if x > 10 else "B")
✅ সঠিক উত্তর: ক) A। এটি একটি ternary expression। x = 15 এবং 15 > 10 True, তাই "A" রিটার্ন হয়।
Q3. if-elif-else chain-এ কতটি elif থাকতে পারে?
✅ সঠিক উত্তর: গ) যতগুলো খুশি। Python-এ elif-এর সংখ্যায় কোনো সীমাবদ্ধতা নেই। তবে অনেকগুলো elif থাকলে dictionary mapping বা match-case (Python 3.10+) ব্যবহার করা ভালো।
Q4. not (True and False) এর ফলাফল কী?
✅ সঠিক উত্তর: ক) True। প্রথমে True and False = False। তারপর not False = True
Q5. ২০০০ সাল কি অধিবর্ষ (leap year)?
✅ সঠিক উত্তর: গ) হ্যাঁ, কারণ ৪০০ দিয়ে ভাগ যায়। অধিবর্ষের নিয়ম: ৪ দিয়ে ভাগ যায় → অধিবর্ষ, কিন্তু ১০০ দিয়ে ভাগ গেলে → অধিবর্ষ নয়, তবে ৪০০ দিয়ে ভাগ গেলে → অধিবর্ষ। ২০০০ ÷ ৪০০ = ৫, তাই অধিবর্ষ।
← Previous: ইনপুট আউটপুট ও টাইপ কনভার্শন Next: লুপ →