Hot Post

6/recent/ticker-posts

Header Ads Widget

Python শেখার সিরিজ — পর্ব ৪ / ২০ (Conditional Statements)

🐍 Python শেখার সিরিজ — পর্ব ৪ / ২০
python learning serise

Conditional Statements
if, elif, else দিয়ে শর্ত অনুযায়ী সিদ্ধান্ত নেওয়া — Nested if, Ternary Operator এবং বাস্তব প্রজেক্ট সহ
⏱ পড়তে সময় ~১৬ মিনিট 🎯 Beginner Friendly 🐍 Python 3.x

এতদিন আমরা প্রোগ্রাম লিখেছি যেটি সরলরেখায় চলে — একের পর এক লাইন execute হয়। কিন্তু বাস্তব জীবনের প্রোগ্রামে সিদ্ধান্ত নিতে হয়। যেমন — "বয়স ১৮-র বেশি হলে ভোট দিতে পারবে, না হলে পারবে না।" এই ধরনের শর্তযুক্ত কাজের জন্যই Conditional Statements

🤔 Conditional Statement কী?

দৈনন্দিন জীবনে আমরা সারাক্ষণ শর্তের উপর সিদ্ধান্ত নিই:

👉 "বৃষ্টি হলে ছাতা নেব, না হলে নেব না।"
👉 "পরীক্ষায় ৩৩-এর বেশি পেলে পাস, না হলে ফেল।"
👉 "ব্যালেন্স যথেষ্ট থাকলে টাকা তুলতে পারব, না হলে পারব না।"

Python-এ এই শর্তযুক্ত সিদ্ধান্তগুলো নেওয়া হয় if, elif, else কীওয়ার্ড দিয়ে।

Statementকাজকখন ব্যবহার হয়
ifএকটি শর্ত পরীক্ষা করেশুধু একটি শর্ত থাকলে
if...elseশর্ত সত্য বা মিথ্যা — দুটি পথদুটি বিকল্পের মধ্যে একটি বেছে নিতে
if...elif...elseএকাধিক শর্ত পরীক্ষা করেতিন বা তার বেশি বিকল্প থাকলে
nested ifif-এর ভেতরে আরেকটি ifশর্তের ভেতরে শর্ত থাকলে
1️⃣ if Statement — একটি শর্ত

সবচেয়ে সহজ Conditional Statement। শর্ত True হলে ভেতরের কোড চলবে, False হলে skip করবে।

if শর্ত:
    কাজ   # ৪টি space দিয়ে indent করো
শুরু
শর্ত সত্য?
হ্যাঁ
কাজটি করো
না
শেষ
Python — if Statement
boyos = 20

if boyos >= 18:
    print("তুমি ভোট দিতে পারবে।")
    print("তুমি প্রাপ্তবয়স্ক।")

print("প্রোগ্রাম শেষ।")   # এটি সবসময় চলবে
✔ আউটপুট (boyos = 20)
তুমি ভোট দিতে পারবে।
তুমি প্রাপ্তবয়স্ক।
প্রোগ্রাম শেষ।
Python — boyos = 15 হলে
boyos = 15

if boyos >= 18:
    print("তুমি ভোট দিতে পারবে।")   # skip হবে

print("প্রোগ্রাম শেষ।")              # এটি চলবে
✔ আউটপুট (boyos = 15)
প্রোগ্রাম শেষ।
⚠️

Indentation মনে রাখো: if-এর পরে কোলন (:) এবং পরের লাইনে ৪টি Space দিয়ে indent করতে হবে। এটি না করলে IndentationError আসবে।

2️⃣ if...else — দুটি পথ

শর্ত সত্য হলে একটি কাজ, মিথ্যা হলে অন্য কাজ — এজন্য else ব্যবহার হয়।

if শর্ত:
    শর্ত সত্য হলে এই কাজ
else:
    শর্ত মিথ্যা হলে এই কাজ
Python — if...else
boyos = int(input("তোমার বয়স কত? "))

if boyos >= 18:
    print("✅ তুমি ভোট দিতে পারবে।")
else:
    baki = 18 - boyos
    print(f"❌ তুমি ভোট দিতে পারবে না। আরও {baki} বছর অপেক্ষা করো।")
✔ আউটপুট (boyos = 16)
তোমার বয়স কত? 16
❌ তুমি ভোট দিতে পারবে না। আরও 2 বছর অপেক্ষা করো।
আরও একটি উদাহরণ — জোড় না বিজোড়
Python
num = int(input("একটি সংখ্যা দাও: "))

if num % 2 == 0:
    print(f"{num} একটি জোড় সংখ্যা।")
else:
    print(f"{num} একটি বিজোড় সংখ্যা।")
✔ আউটপুট
একটি সংখ্যা দাও: 7
7 একটি বিজোড় সংখ্যা।
3️⃣ if...elif...else — একাধিক শর্ত

দুটির বেশি বিকল্প থাকলে elif (else if) ব্যবহার করতে হয়। Python একে একে শর্তগুলো চেক করে, যেটি প্রথমে সত্য হয় সেটির কোড চলে — বাকিগুলো skip হয়।

if শর্ত ১:
    কাজ ১
elif শর্ত ২:
    কাজ ২
elif শর্ত ৩:
    কাজ ৩
else:
    উপরের কোনোটি না মিললে
উদাহরণ — পরীক্ষার গ্রেড
Python — Grade System
marks = float(input("নম্বর দাও (০-১০০): "))

if marks >= 80:
    grade = "A+"
    result = "অসাধারণ! 🌟"
elif marks >= 70:
    grade = "A"
    result = "খুব ভালো! 👍"
elif marks >= 60:
    grade = "B"
    result = "ভালো! 😊"
elif marks >= 50:
    grade = "C"
    result = "মোটামুটি। আরও চেষ্টা করো।"
elif marks >= 33:
    grade = "D"
    result = "পাস, কিন্তু আরও ভালো করতে হবে।"
else:
    grade = "F"
    result = "ফেল। হাল ছেড়ো না! 💪"

print(f"নম্বর: {marks} → গ্রেড: {grade}")
print(f"মন্তব্য: {result}")
✔ আউটপুট (marks = 75)
নম্বর: 75.0 → গ্রেড: A
মন্তব্য: খুব ভালো! 👍

Python শর্তগুলো উপর থেকে নিচে চেক করে। প্রথমটি সত্য হলে বাকিগুলো দেখেই না। তাই বড় থেকে ছোট ক্রমে শর্ত লেখা ভালো অভ্যাস।

4️⃣ Nested if — if-এর ভেতরে if

একটি if-এর ভেতরে আরেকটি if রাখলে সেটিকে Nested if বলে। জটিল শর্তের ক্ষেত্রে এটি দরকার হয়।

Python — Nested if (চাকরির আবেদন)
boyos     = int(input("বয়স: "))
cgpa      = float(input("CGPA: "))
has_exp   = input("অভিজ্ঞতা আছে? (yes/no): ")

if boyos >= 21 and boyos <= 35:
    print("✅ বয়সের যোগ্যতা পূরণ হয়েছে।")

    if cgpa >= 3.0:
        print("✅ CGPA যোগ্যতা পূরণ হয়েছে।")

        if has_exp == "yes":
            print("🎉 আপনি সব শর্ত পূরণ করেছেন। আবেদন করুন!")
        else:
            print("⚠️ অভিজ্ঞতা নেই, তবু আবেদন করতে পারবেন।")
    else:
        print("❌ CGPA কম। ন্যূনতম 3.0 দরকার।")
else:
    print("❌ বয়সের যোগ্যতা পূরণ হয়নি (২১–৩৫ বছর)।")
✔ আউটপুট (boyos=26, cgpa=3.5, has_exp=yes)
বয়স: 26
CGPA: 3.5
অভিজ্ঞতা আছে? (yes/no): yes
✅ বয়সের যোগ্যতা পূরণ হয়েছে।
✅ CGPA যোগ্যতা পূরণ হয়েছে।
🎉 আপনি সব শর্ত পূরণ করেছেন। আবেদন করুন!
💡

Nested if বেশি গভীর হলে কোড পড়তে কঠিন হয়। সাধারণত ৩ স্তরের বেশি Nested if না করাই ভালো — তখন and / or দিয়ে শর্ত একসাথে লেখা যায়।

⚡ Ternary Operator — এক লাইনে if/else

সহজ if/else কে এক লাইনে লেখার সংক্ষিপ্ত পদ্ধতি। এটিকে Ternary Operator বা Conditional Expression বলে।

মান_১ if শর্ত else মান_২
Python — Ternary Operator
boyos = 20

# সাধারণ if/else
if boyos >= 18:
    status = "প্রাপ্তবয়স্ক"
else:
    status = "অপ্রাপ্তবয়স্ক"

# Ternary দিয়ে একলাইনে
status = "প্রাপ্তবয়স্ক" if boyos >= 18 else "অপ্রাপ্তবয়স্ক"

print(f"বয়স {boyos}: {status}")

# আরও উদাহরণ
num = 15
jorvijor = "জোড়" if num % 2 == 0 else "বিজোড়"
print(f"{num} একটি {jorvijor} সংখ্যা।")

# সরাসরি print-এ ব্যবহার
score = 45
print("পাস" if score >= 33 else "ফেল")
✔ আউটপুট
বয়স 20: প্রাপ্তবয়স্ক
15 একটি বিজোড় সংখ্যা।
পাস
🆕 match...case — Python 3.10-এর নতুন ফিচার

Python 3.10 থেকে match...case এসেছে — এটি অনেকটা অন্যান্য ভাষার switch...case-এর মতো। একটি মানকে একাধিক প্যাটার্নের সাথে মেলানো যায়।

⚠️

মনে রাখো: match...case শুধু Python 3.10 বা তার পরের সংস্করণে কাজ করে। পুরনো সংস্করণে SyntaxError আসবে।

Python 3.10+ — match...case
day = input("সপ্তাহের দিন (ইংরেজিতে): ").lower()

match day:
    case "saturday" | "sunday":
        print("🎉 সাপ্তাহিক ছুটি!")
    case "friday":
        print("🕌 জুমার দিন।")
    case "monday" | "tuesday" | "wednesday" | "thursday":
        print("💼 কর্মদিবস।")
    case _:          # default (কোনোটি না মিললে)
        print("❓ অচেনা দিন।")
✔ আউটপুট
সপ্তাহের দিন (ইংরেজিতে): friday
🕌 জুমার দিন।

case _: হলো default case — উপরের কোনো প্যাটার্ন না মিললে এটি চলে। এটি else-এর মতো কাজ করে।

🐛 সাধারণ ভুল ও সমাধান

Conditional Statement লেখার সময় নতুনরা যেসব ভুল বেশি করেন:

ভুল ১ — কোলন ভুলে যাওয়া
Python — ভুল vs সঠিক
# ❌ ভুল — কোলন নেই (SyntaxError আসবে)
if x > 10
    print("বড়")

# ✅ সঠিক — কোলন আছে
if x > 10:
    print("বড়")
ভুল ২ — = বনাম == গুলিয়ে ফেলা
Python
# ❌ ভুল — = দিয়ে তুলনা করা যাবে না
if naam = "রাহিম":    # SyntaxError!
    print("হ্যালো")

# ✅ সঠিক — == দিয়ে তুলনা
if naam == "রাহিম":
    print("হ্যালো")
ভুল ৩ — Indentation সমান না রাখা
Python
# ❌ ভুল — মিশ্র indentation (IndentationError)
if x > 10:
    print("এক")
       print("দুই")   # বেশি space

# ✅ সঠিক — সব লাইনে সমান 4 space
if x > 10:
    print("এক")
    print("দুই")
ভুল ৪ — elif না লিখে else if লেখা
Python
# ❌ ভুল — Python-এ "else if" নেই
if x > 10:
    print("বড়")
else if x == 10:   # SyntaxError!
    print("সমান")

# ✅ সঠিক — elif ব্যবহার করো
if x > 10:
    print("বড়")
elif x == 10:
    print("সমান")
🏧 প্র্যাকটিক্যাল প্রজেক্ট — ATM সিস্টেম

এই পর্বের সব ধারণা ব্যবহার করে একটি সহজ ATM সিস্টেম বানাই। PIN যাচাই, ব্যালেন্স চেক এবং টাকা তোলার লজিক থাকবে।

💻 প্রজেক্ট: সহজ ATM সিস্টেম

PIN যাচাই করে ব্যালেন্স দেখানো ও টাকা তোলার সুবিধা — if/elif/else দিয়ে সম্পূর্ণ লজিক।

Python — atm.py
# ATM সিস্টেম
CORRECT_PIN = "1234"      # সঠিক PIN
balance     = 15000       # বর্তমান ব্যালেন্স

print("╔══════════════════════════╗")
print("║       ATM সিস্টেম        ║")
print("╚══════════════════════════╝")

# ধাপ ১: PIN যাচাই
pin = input("PIN দিন: ")

if pin != CORRECT_PIN:
    print("❌ ভুল PIN! লেনদেন বাতিল।")

else:
    print("✅ PIN সঠিক! স্বাগতম।")
    print(f"\nবর্তমান ব্যালেন্স: {balance} টাকা")

    # ধাপ ২: সেবা বেছে নেওয়া
    print("\n1. ব্যালেন্স দেখুন")
    print("2. টাকা তুলুন")
    print("3. বের হন")
    choice = input("বিকল্প বেছে নিন (1/2/3): ")

    if choice == "1":
        print(f"\n💰 আপনার ব্যালেন্স: {balance} টাকা")

    elif choice == "2":
        amount = int(input("কত টাকা তুলবেন? "))

        if amount <= 0:
            print("❌ পরিমাণ শূন্যের বেশি হতে হবে।")
        elif amount > balance:
            print("❌ পর্যাপ্ত ব্যালেন্স নেই!")
            print(f"   সর্বোচ্চ {balance} টাকা তুলতে পারবেন।")
        elif amount % 500 != 0:
            print("❌ ৫০০ টাকার গুণিতক পরিমাণ দিন।")
        else:
            balance -= amount
            print(f"\n✅ {amount} টাকা সফলভাবে উত্তোলন হয়েছে।")
            print(f"💰 বাকি ব্যালেন্স: {balance} টাকা")

    elif choice == "3":
        print("\n👋 ধন্যবাদ। আবার আসবেন!")

    else:
        print("❌ ভুল বিকল্প!")
✔ নমুনা আউটপুট (টাকা তোলার ক্ষেত্রে)
╔══════════════════════════╗
║       ATM সিস্টেম        ║
╚══════════════════════════╝
PIN দিন: 1234
✅ PIN সঠিক! স্বাগতম।

বর্তমান ব্যালেন্স: 15000 টাকা

1. ব্যালেন্স দেখুন
2. টাকা তুলুন
3. বের হন
বিকল্প বেছে নিন (1/2/3): 2
কত টাকা তুলবেন? 3000

✅ 3000 টাকা সফলভাবে উত্তোলন হয়েছে।
💰 বাকি ব্যালেন্স: 12000 টাকা
💡

এই প্রজেক্টে if/elif/else, Nested if, Comparison ও Logical Operator — সব একসাথে ব্যবহার হয়েছে। নিজে চেষ্টা করো এবং আরও ফিচার যোগ করো — যেমন ডিপোজিট বা মিনি স্টেটমেন্ট।

📚 এই পর্বে আমরা যা শিখলাম
  • Conditional Statement কেন দরকার
  • if Statement — একটি শর্ত পরীক্ষা
  • if...else — দুটি পথের মধ্যে সিদ্ধান্ত
  • if...elif...else — একাধিক শর্ত পরীক্ষা
  • Nested if — if-এর ভেতরে if
  • Ternary Operator — এক লাইনে if/else
  • match...case — Python 3.10-এর নতুন ফিচার
  • সাধারণ ভুল — কোলন, ==, indentation, elif
  • ATM সিস্টেম প্রজেক্ট
🏋️ নিজে চেষ্টা করো
  1. তাপমাত্রা বিশ্লেষক: তাপমাত্রা input নিয়ে — ০-এর নিচে "হিমশীতল", ০-১৫ "ঠান্ডা", ১৬-২৫ "আরামদায়ক", ২৬-৩৫ "গরম", ৩৫-এর বেশি "অসহ্য গরম" প্রিন্ট করো
  2. লগইন সিস্টেম: সঠিক username ও password হলে "স্বাগতম", username ঠিক কিন্তু password ভুল হলে "পাসওয়ার্ড ভুল", বাকি সব ক্ষেত্রে "ব্যবহারকারী পাওয়া যায়নি" দেখাও
  3. বিএমআই ক্যাটাগরি: পর্ব ২-এর BMI Calculator আপডেট করো — BMI অনুযায়ী ক্যাটাগরি দেখাও
  4. ক্যালকুলেটর আপগ্রেড: পর্ব ৩-এর Calculator-এ +/-/*// অপারেশন বেছে নেওয়ার সুবিধা দাও (match...case বা if/elif দিয়ে)
  5. বছর যাচাই: একটি বছর নিয়ে লিপ বছর কিনা বলো। শর্ত: ৪ দিয়ে বিভাজ্য, কিন্তু ১০০ দিয়ে বিভাজ্য হলে না, তবে ৪০০ দিয়ে বিভাজ্য হলে হ্যাঁ
⏭️ পরের পর্বে কী থাকছে? — পর্ব ৫: Loops (for ও while)
  • for loop — নির্দিষ্ট সংখ্যকবার কাজ করানো
  • while loop — শর্ত সত্য থাকা পর্যন্ত চলা
  • break, continue, pass — loop নিয়ন্ত্রণ
  • range() ফাংশনের বিভিন্ন ব্যবহার
  • Nested loops এবং বাস্তব প্রজেক্ট

Post a Comment

0 Comments