আগের চ্যাপ্টারে আমরা দেখেছি কিভাবে একটি if কন্ডিশন সত্য হলে তার আওতাভুক্ত কোড ব্লকটি রান হয়। else বস্তুত if এর সাথেই সম্পর্কিত। অর্থাৎ, যদি উল্লেখিত if কন্ডিশনটি সত্য না হয় তাহলে else এর আওতাভুক্ত কোডব্লক রান বা এক্সিকিউট হয়।
x =4if x ==5:print("Its 5")else:print("Its not 5")
আউটপুট,
Its not5
if else চেইন
একটি if স্কোপের মধ্যে যেহেতু যেকোনো কোডই থাকতে পারে সেহেতু এর মধ্যে আরও এক বা একাধিক if বা else লজিক অবস্থান করতেই পারে। যেমন নিচের উদাহরণে, প্রথমেই একটি if দিয়ে চেক করা হচ্ছে যে num এর ভ্যালু 5 কিনা। যদি না হয় তাহলে প্রোগ্রাম কন্ট্রোল আরেকটি ধাপে চলে যাচ্ছে যেখানে আরও একটি if দিয়ে চেক করা হচ্ছে num এর ভ্যালু 11 কিনা। নাহলে তার সাথে সম্পর্কিত একটি else ব্লকে চলে যাচ্ছে এবং তার মধ্যে থাকা একটি if দিয়ে আবারো চেক করা হচ্ছে num এর মান 7 কিনা এবং এই কন্ডিশনটি সত্য হওয়ায় স্ক্রিনে প্রিন্ট হচ্ছে Number is 7
num =7if num ==5:print("Number is 5")else:if num ==11:print("Number is 11")else:if num ==7:print("Number is 7")else:print("Number isn't 5, 11 or 7")
আউটপুট,
মজার ব্যাপার হচ্ছে এরকম if else if এর চেইনকে একটু সংক্ষেপে elif দিয়েও লেখা যায়। উপরের প্রোগ্রামটি নিচের মত করেও লেখা যায়,
আউটপুট,
টারনারি অপারেটর
টারনারি শব্দের স্বাভাবিক অর্থ তিন সম্বন্ধীয়। এর নাম শুনেই বোঝা যাচ্ছে এই অপারেটরটি তিনটি আর্গুমেন্ট নিয়ে কাজ করে। ওদিকে, আমরা ইতোমধ্যে জেনেছি if এবং else সম্পর্কে। তো, এই if, else এবং সাথে একটি ভ্যালু এই তিনটি বিষয়কে নিয়ে খুব সহজে কন্ডিশনাল এক্সপ্রেশন লেখা যায় টারনারি অপারেটর এর কনসেপ্ট ইমপ্লিমেন্ট করে।
উদাহরণ,
ধরে নেই, প্রথমেই a এর মান 100 অ্যাসাইন করা হয়েছে। এরপর b এর জন্য একটি মান অ্যাসাইন করতে চাচ্ছি। সেটা হতে পারে 200 অথবা 300. তো, আসলে কোনটা হবে সেটি নির্ধারণ করার জন্য একটি কন্ডিশন বসিয়েছি।
কন্ডিশনটি হচ্ছে - if (a >= 100 and a < 200) অর্থাৎ a এর মান ১০০ থেকে বড় বা সমান এবং ২০০ থেকে ছোট হলে এই কন্ডিশনটি সত্য হবে আর তখন b এর মান হিসেবে 200 অ্যাসাইন হবে। কন্ডিশনটি মিথ্যা হলে b এর মধ্যে 300 ঢুকবে। ঠিক এগুলোই এক লাইনে লেখা হয়েছে যা বস্তুত টারনারি অপারেটর এর একটা প্রয়োগ।
আউটপুট,
আরেকটি উদাহরণ দেখি,
আউটপুট,
else এর আরও ব্যবহার
শুধুমাত্র if এর সাথে ব্যবহার বাদেও else কে ব্যবহার করা যায় for এবং while লুপের সাথেও। উদাহরণ সরূপ, যখন কোন ফর লুপের কাজ স্বাভাবিক ভাবে শেষ হয় তখন এর সাথে যুক্ত else ব্লকের কোড এক্সিকিউট হয়। নিচের উদাহরণটি দেখি,
num = 7
if num == 5:
print("Number is 5")
elif num == 11:
print("Number is 11")
elif num == 7:
print("Number is 7")
else:
print("Number isn't 5, 11 or 7")
Number is 7
a = 100
b = 200 if (a >= 100 and a < 200) else 300
print(b)
200
status = 1
msg = "Logout" if status == 1 else "Login"
print(msg)