এতদিন আমরা প্রোগ্রাম লিখেছি যেটি সরলরেখায় চলে — একের পর এক লাইন execute হয়। কিন্তু বাস্তব জীবনের প্রোগ্রামে সিদ্ধান্ত নিতে হয়। যেমন — "বয়স ১৮-র বেশি হলে ভোট দিতে পারবে, না হলে পারবে না।" এই ধরনের শর্তযুক্ত কাজের জন্যই Conditional Statements।
দৈনন্দিন জীবনে আমরা সারাক্ষণ শর্তের উপর সিদ্ধান্ত নিই:
👉 "বৃষ্টি হলে ছাতা নেব, না হলে নেব না।"
👉 "পরীক্ষায় ৩৩-এর বেশি পেলে পাস, না হলে ফেল।"
👉 "ব্যালেন্স যথেষ্ট থাকলে টাকা তুলতে পারব, না হলে পারব না।"
Python-এ এই শর্তযুক্ত সিদ্ধান্তগুলো নেওয়া হয় if, elif, else কীওয়ার্ড দিয়ে।
| Statement | কাজ | কখন ব্যবহার হয় |
|---|---|---|
| if | একটি শর্ত পরীক্ষা করে | শুধু একটি শর্ত থাকলে |
| if...else | শর্ত সত্য বা মিথ্যা — দুটি পথ | দুটি বিকল্পের মধ্যে একটি বেছে নিতে |
| if...elif...else | একাধিক শর্ত পরীক্ষা করে | তিন বা তার বেশি বিকল্প থাকলে |
| nested if | if-এর ভেতরে আরেকটি if | শর্তের ভেতরে শর্ত থাকলে |
সবচেয়ে সহজ Conditional Statement। শর্ত True হলে ভেতরের কোড চলবে, False হলে skip করবে।
কাজ # ৪টি space দিয়ে indent করো
boyos = 20 if boyos >= 18: print("তুমি ভোট দিতে পারবে।") print("তুমি প্রাপ্তবয়স্ক।") print("প্রোগ্রাম শেষ।") # এটি সবসময় চলবে
তুমি ভোট দিতে পারবে। তুমি প্রাপ্তবয়স্ক। প্রোগ্রাম শেষ।
boyos = 15 if boyos >= 18: print("তুমি ভোট দিতে পারবে।") # skip হবে print("প্রোগ্রাম শেষ।") # এটি চলবে
প্রোগ্রাম শেষ।
Indentation মনে রাখো: if-এর পরে কোলন (:) এবং পরের লাইনে ৪টি Space দিয়ে indent করতে হবে। এটি না করলে IndentationError আসবে।
শর্ত সত্য হলে একটি কাজ, মিথ্যা হলে অন্য কাজ — এজন্য else ব্যবহার হয়।
শর্ত সত্য হলে এই কাজ
else:
শর্ত মিথ্যা হলে এই কাজ
boyos = int(input("তোমার বয়স কত? ")) if boyos >= 18: print("✅ তুমি ভোট দিতে পারবে।") else: baki = 18 - boyos print(f"❌ তুমি ভোট দিতে পারবে না। আরও {baki} বছর অপেক্ষা করো।")
তোমার বয়স কত? 16 ❌ তুমি ভোট দিতে পারবে না। আরও 2 বছর অপেক্ষা করো।
num = int(input("একটি সংখ্যা দাও: ")) if num % 2 == 0: print(f"{num} একটি জোড় সংখ্যা।") else: print(f"{num} একটি বিজোড় সংখ্যা।")
একটি সংখ্যা দাও: 7 7 একটি বিজোড় সংখ্যা।
দুটির বেশি বিকল্প থাকলে elif (else if) ব্যবহার করতে হয়। Python একে একে শর্তগুলো চেক করে, যেটি প্রথমে সত্য হয় সেটির কোড চলে — বাকিগুলো skip হয়।
কাজ ১
elif শর্ত ২:
কাজ ২
elif শর্ত ৩:
কাজ ৩
else:
উপরের কোনোটি না মিললে
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}")
নম্বর: 75.0 → গ্রেড: A মন্তব্য: খুব ভালো! 👍
Python শর্তগুলো উপর থেকে নিচে চেক করে। প্রথমটি সত্য হলে বাকিগুলো দেখেই না। তাই বড় থেকে ছোট ক্রমে শর্ত লেখা ভালো অভ্যাস।
একটি if-এর ভেতরে আরেকটি if রাখলে সেটিকে 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("❌ বয়সের যোগ্যতা পূরণ হয়নি (২১–৩৫ বছর)।")
বয়স: 26 CGPA: 3.5 অভিজ্ঞতা আছে? (yes/no): yes ✅ বয়সের যোগ্যতা পূরণ হয়েছে। ✅ CGPA যোগ্যতা পূরণ হয়েছে। 🎉 আপনি সব শর্ত পূরণ করেছেন। আবেদন করুন!
Nested if বেশি গভীর হলে কোড পড়তে কঠিন হয়। সাধারণত ৩ স্তরের বেশি Nested if না করাই ভালো — তখন and / or দিয়ে শর্ত একসাথে লেখা যায়।
সহজ if/else কে এক লাইনে লেখার সংক্ষিপ্ত পদ্ধতি। এটিকে Ternary Operator বা Conditional Expression বলে।
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 একটি বিজোড় সংখ্যা। পাস
Python 3.10 থেকে match...case এসেছে — এটি অনেকটা অন্যান্য ভাষার switch...case-এর মতো। একটি মানকে একাধিক প্যাটার্নের সাথে মেলানো যায়।
মনে রাখো: match...case শুধু Python 3.10 বা তার পরের সংস্করণে কাজ করে। পুরনো সংস্করণে SyntaxError আসবে।
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 লেখার সময় নতুনরা যেসব ভুল বেশি করেন:
# ❌ ভুল — কোলন নেই (SyntaxError আসবে) if x > 10 print("বড়") # ✅ সঠিক — কোলন আছে if x > 10: print("বড়")
# ❌ ভুল — = দিয়ে তুলনা করা যাবে না if naam = "রাহিম": # SyntaxError! print("হ্যালো") # ✅ সঠিক — == দিয়ে তুলনা if naam == "রাহিম": print("হ্যালো")
# ❌ ভুল — মিশ্র indentation (IndentationError) if x > 10: print("এক") print("দুই") # বেশি space # ✅ সঠিক — সব লাইনে সমান 4 space if x > 10: print("এক") print("দুই")
# ❌ ভুল — Python-এ "else if" নেই if x > 10: print("বড়") else if x == 10: # SyntaxError! print("সমান") # ✅ সঠিক — elif ব্যবহার করো if x > 10: print("বড়") elif x == 10: print("সমান")
এই পর্বের সব ধারণা ব্যবহার করে একটি সহজ ATM সিস্টেম বানাই। PIN যাচাই, ব্যালেন্স চেক এবং টাকা তোলার লজিক থাকবে।
PIN যাচাই করে ব্যালেন্স দেখানো ও টাকা তোলার সুবিধা — if/elif/else দিয়ে সম্পূর্ণ লজিক।
# 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 সিস্টেম প্রজেক্ট
- তাপমাত্রা বিশ্লেষক: তাপমাত্রা input নিয়ে — ০-এর নিচে "হিমশীতল", ০-১৫ "ঠান্ডা", ১৬-২৫ "আরামদায়ক", ২৬-৩৫ "গরম", ৩৫-এর বেশি "অসহ্য গরম" প্রিন্ট করো
- লগইন সিস্টেম: সঠিক username ও password হলে "স্বাগতম", username ঠিক কিন্তু password ভুল হলে "পাসওয়ার্ড ভুল", বাকি সব ক্ষেত্রে "ব্যবহারকারী পাওয়া যায়নি" দেখাও
- বিএমআই ক্যাটাগরি: পর্ব ২-এর BMI Calculator আপডেট করো — BMI অনুযায়ী ক্যাটাগরি দেখাও
- ক্যালকুলেটর আপগ্রেড: পর্ব ৩-এর Calculator-এ +/-/*// অপারেশন বেছে নেওয়ার সুবিধা দাও (match...case বা if/elif দিয়ে)
- বছর যাচাই: একটি বছর নিয়ে লিপ বছর কিনা বলো। শর্ত: ৪ দিয়ে বিভাজ্য, কিন্তু ১০০ দিয়ে বিভাজ্য হলে না, তবে ৪০০ দিয়ে বিভাজ্য হলে হ্যাঁ
- for loop — নির্দিষ্ট সংখ্যকবার কাজ করানো
- while loop — শর্ত সত্য থাকা পর্যন্ত চলা
- break, continue, pass — loop নিয়ন্ত্রণ
- range() ফাংশনের বিভিন্ন ব্যবহার
- Nested loops এবং বাস্তব প্রজেক্ট

0 Comments